标题非常不言自明:在我的语言中,大多数“三个或更少”字母单词不会为文本增加价值,除了“否”一词可能会完全改变句子的含义。
我可以删除所有少于3个字母的单词,具体操作如下:
shortword = re.compile(r'\W*\b\w{1,3}\b')
df.text=df.text.apply(lambda x: shortword.sub('', x) )
我只需要输入一些条件语句以将“否”一词排除在外,但我不确定如何进行。
有什么想法吗?
答案 0 :(得分:2)
您可以使用
r'\W*\b(?!no)\w{1,2}\b'
^^^^^^
详细信息
\W*
-0+个非单词字符\b
-单词边界(?!no)
-当前位置右侧,不能有no
个char序列\w{1,2}
-1个或2个字符的字符(如果您只需要匹配字母个字符,请改用[^\W\d_]{1,2}
)\b
-单词边界此外,您可以使用df['text'] = df['text'].str.replace(r'\W*\b(?!no)\w{1,2}\b', '')
对单个列执行搜索和替换操作。