我有一个数据框,其中有一个包含文本数据的列。我想从文本数据中删除没有任何意义的单词,并将"is‘t“之类的否定转换为”is not“。因为当我删除标点符号时,“I‘t”变成了“I t”,当我删除长度小于2个字母的单词时,"t“将被完全删除。所以,我想做以下3个任务- 1)将否定转换为"is not“to”is not“2)删除没有意义的单词3)删除长度小于2的字母例如,df列看起来像这样-
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输出应为-
user_id text data column
1 it is the coldest day
2 they are not going
3
4 how are you
5
6
7 如何实现这个目标?
发布于 2019-03-31 00:59:26
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:]))将语料库中的所有单词输入到该函数,以累积重复单词的列表。然后将这样的词添加到你的停用词列表中。
发布于 2019-03-31 00:32:55
1)使用SpaCy或NLTK的词法化工具来转换字符串(尽管它们也会做其他事情,比如将复数转换为单数-因此您可能最终需要编写自己的代码来完成此操作)。
2)使用NLTK或spacy中的停用词删除明显的停用词。或者,给他们提供你自己的停用词列表(他们默认的停用词是is,a,the)。
3)如果len<2删除行,则使用基本过滤器
https://stackoverflow.com/questions/55432642
复制相似问题