首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何转换具有相同重复字母的否定和单个单词

如何转换具有相同重复字母的否定和单个单词
EN

Stack Overflow用户
提问于 2019-03-30 22:56:30
回答 2查看 29关注 0票数 1

我有一个数据框,其中有一个包含文本数据的列。我想从文本数据中删除没有任何意义的单词,并将"is‘t“之类的否定转换为”is not“。因为当我删除标点符号时,“I‘t”变成了“I t”,当我删除长度小于2个字母的单词时,"t“将被完全删除。所以,我想做以下3个任务- 1)将否定转换为"is not“to”is not“2)删除没有意义的单词3)删除长度小于2的字母例如,df列看起来像这样-

代码语言:javascript
运行
复制
user_id     text data column
    1        it's the coldest day
    2        they aren't going
    3        aa
    4        how are you jkhf
    5        v
    6        ps
    7       jkhf

输出应为-

代码语言:javascript
运行
复制
user_id     text data column
    1        it is the coldest day
    2        they are not going
    3        
    4        how are you 
    5        
    6       
    7      

如何实现这个目标?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2019-03-31 00:59:26

代码语言:javascript
运行
复制
def is_repetitive(w):
    """Predicate, true for words like jj or aaaaa."""
    w = str(w)  # caller should have provided a single word as input
    return len(w) > 1 and all((c == w[0]  for c in w[1:]))

将语料库中的所有单词输入到该函数,以累积重复单词的列表。然后将这样的词添加到你的停用词列表中。

票数 1
EN

Stack Overflow用户

发布于 2019-03-31 00:32:55

1)使用SpaCy或NLTK的词法化工具来转换字符串(尽管它们也会做其他事情,比如将复数转换为单数-因此您可能最终需要编写自己的代码来完成此操作)。

2)使用NLTK或spacy中的停用词删除明显的停用词。或者,给他们提供你自己的停用词列表(他们默认的停用词是is,a,the)。

3)如果len<2删除行,则使用基本过滤器

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55432642

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档