所以我在这里有这个代码搜索一个名为"声明"的csv文件。查看它是否包含csv文件中的任何单词" sexualHarassment"并将这些结果打印到新的csv文件中。这部分效果很好。
我遇到问题的部分是删除停用词。我有第三个csv文件,其中包含一列停用词。我无法弄清楚如何在没有停用词的情况下输出这些信息。感谢。
这是我的代码:
import csv
with open("claims.csv") as file1, open("sexualHarassment.csv") as file2,
open("stopwords.csv") as file3, open("output.csv", "wb+") as file4:
writer = csv.writer(file4)
key_words = [word.strip() for word in file2.readlines()]
stop_words = [stop.strip() for stop in file3.readlines()]
for row in file1:
row = row.strip()
for key in key_words:
if key in row:
writer.writerow([key, row])
答案 0 :(得分:2)
是的,你可以。
关于问题正文。您可以使用replace功能删除行中的所有关键字:
for key in keywords:
row = row.replace(key, "")
编辑:
for key in stopwords:
row = row.replace(key, "")
编辑结束
我不知道这是否是您的意图,但除非您想重复添加相同的行(如果每行存在多个关键字),您可能需要执行类似
的操作 for key in key_words:
if key in row:
writer.writerow([key, row])
break # would not recommend using breaks but that's more personal taste
或
flag = False;
for key in key_words:
if key in row:
flag = True;
if flag:
writer.writerow([key, row])
LG
答案 1 :(得分:1)
如果要从较长的字符串中删除单词列表,可以使用replace
函数,如下所示:
row = "stop go stop stop2 yellow stop3 hi"
stop_list = ["stop","stop2","stop3"] # You'd get this from the file.
for stop_word in stop_list:
row = row.replace(stop_word,"")
print row # Output: " go yellow hi"
这基本上会迭代每个停用词并将其替换为行中的""
,从而有效地删除它们。
不要问我在哪里提出示例词,因为我不知道。