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

如何从非单词字符中清除csv文件并删除python中包含这些字符的单词?,python,regex,python-3.x,Python,Regex,Python 3.x,我正在尝试从LDA模型的所有非word字符中清除.csv文件,但是在我使用以下方法清理后: words=[re.sub(r'\W+','',st)表示单词中的st] 我得到了一些可能影响模型的“垃圾” 我试着这样做: words=[re.sub(r'\W+',',',st)表示单词中的st] 但这似乎并不能解决问题。有没有办法删除这些非单词字符之前或之后的所有字符 如果我在没有re.sub行的情况下运行代码,我得到的是: >>>'set', 'editorial//a/ae

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

words=[re.sub(r'\W+','',st)表示单词中的st]
我得到了一些可能影响模型的“垃圾”

我试着这样做:

words=[re.sub(r'\W+',',',st)表示单词中的st]
但这似乎并不能解决问题。有没有办法删除这些非单词字符之前或之后的所有字符

如果我在没有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'

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

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']

请提供包括示例输入和示例输出的示例,以显示您所说的“垃圾”是遗留的。如果您可以从CSV文件中筛选非单词字符,那么它可能不是逗号分隔值文件。。。所以我想这不是你想要做的,但是如果没有更多的信息,我无法猜测你想要实现什么…。@G.Anderson,因此,例如,使用我的代码,我从这个-site///usscihoneybees~到这个-siteusscihoneybees,它在我的LDA模型中显示为一个标记,我不想这样做。这有意义吗?@SergeBallesta这是一个csv文件,它只包含很多URL和数字,出于某种原因,当我尝试将其标记为lda时,它将所有这些都作为标记。我的意思是,您想要清理的可能不是文件本身,而是提取的字段。但是,如果您不显示一些输入数据和预期输出,并解释更改的基本原理,那么您将几乎得不到帮助,甚至得不到任何帮助。并不是说我们不想帮助你,而是没有这些信息我们就不能。