如何清除csv文件中的非单词字符并删除python中包含这些字符的单词?

2024-04-28 10:55:52 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在尝试从LDA模型的所有非word字符中清除.csv文件,但是在我使用以下方法清理后:

words = [re.sub(r'\W+','', st) for st in words]

我得到了一些可能影响模型的“垃圾”

我试着这样做:

words = [re.sub(r'\W+',',', st) for st in words]

但这似乎并不能解决问题。有没有办法删除这些非单词字符之前或之后的所有字符

如果我在没有re.sub行的情况下运行代码,我得到的是:

>>>'set', 'editorial//a/aeaf-e', '-bd-frd/afac,,', 'photo', 'ab-ddf,', 'recording', 'record', 'belief', 'institution', 'change'

使用re.sub行运行后,我得到以下结果:

>>>'set', 'editorialaaeafe', 'bdfrdafac', 'photo', 'abddf', 'recording', 'record', 'belief', 'institution', 'change'

我想得到的是:

 >>>'set', 'photo', 'recording', 'record', 'belief', 'institution', 'change'

Tags: in模型reforinstitutionrecordchange字符
1条回答
网友
1楼 · 发布于 2024-04-28 10:55:52

您必须根据正则表达式测试列表中的每个单词。由于表达式将被多次使用,因此最好先编译它:

reject = re.compile(r'\W+')
[w for w in words if not reject.search(w)]

您也可以使用正面版本:

clean = re.compile(r'\w+$')
[w for w in words if clean.match(w)]

从示例输入中,两个代码段都给出了预期的结果:

['set', 'photo', 'recording', 'record', 'belief', 'institution', 'change']

相关问题 更多 >