无法移除停止词; NLP
我有一个包含2柱csv文件“投诉详细”和“DispositionCode'.I要的complaintDetails分为8不同类别dispostionCode的如‘门反锁’ ,'供应商错误','缺少密钥或锁'... 数据集显示在图像中。 enter image description here无法移除停止词; NLP
什么是很好的方法来分类和找到准确性。
起初我试图从ComplaintDetails去除停用词然后用naivebayes分类
的代码如下:
import csv
from nltk.corpus import stopwords
from nltk.tokenize import word_tokenize
your_list=[]
with open('H:/Project/rash.csv', 'r') as f:
reader = csv.reader(f)
your_list = list(reader)
print(your_list)
stop_words=set(stopwords.words("english"))
words= word_tokenize(your_list)
filteredSent=[]
for w in words:
if w not in stop_words:
filteredSent.append()
print(filteredSent)
但我得到以下错误: -
for self in.self._lang_vars.period_context_re()。finditer(text): TypeError:期望的字符串或类似字节的对象
您的代码永远不会访问停用词,因为错误是由于错误使用word_tokenize()
造成的。它需要在单个字符串上调用,而不是在整个数据集上调用。您可以像这样标记数据:
for row in your_list:
row[0] = word_tokenize(row[0])
您现在需要重新考虑其余代码。你有一整套句子,而不仅仅是一个。使用类似上面的循环,以便一次检查一个句子的单词。
谢谢!它为我工作@ @ alexis。但你能告诉我我用来分类的方法,即naiveBayes分类器将在这里工作吗? –
我不行。您必须尝试一下,衡量性能,然后决定下一步该做什么。 – alexis
'word_tokenize'将一个字符串作为参数,而不是一串字符串。在'your_list'中的每个元素上调用'word_tokenize',而不是'your_list'本身。 – bunji
这是一个列表(csv文件行)的列表,所以它需要双重解包。 – alexis