2017-10-21 188 views
1

我有一个包含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:期望的字符串或类似字节的对象

+1

'word_tokenize'将一个字符串作为参数,而不是一串字符串。在'your_list'中的每个元素上调用'word_tokenize',而不是'your_list'本身。 – bunji

+0

这是一个列表(csv文件行)的列表,所以它需要双重解包。 – alexis

回答

0

您的代码永远不会访问停用词,因为错误是由于错误使用word_tokenize()造成的。它需要在单个字符串上调用,而不是在整个数据集上调用。您可以像这样标记数据:

for row in your_list: 
    row[0] = word_tokenize(row[0]) 

您现在需要重新考虑其余代码。你有一整套句子,而不仅仅是一个。使用类似上面的循环,以便一次检查一个句子的单词。

+0

谢谢!它为我工作@ @ alexis。但你能告诉我我用来分类的方法,即naiveBayes分类器将在这里工作吗? –

+0

我不行。您必须尝试一下,衡量性能,然后决定下一步该做什么。 – alexis