无法删除停用词; NLP

时间:2017-10-21 18:19:47

标签: python nlp nltk stop-words multiclass-classification

我有csv文件,其中包含2列'投诉详情'和' DispositionCode'。我想将分类投诉详细信息分配到 8个不同类的dispostionCode,例如'从内部锁定的门', '供应商错误','缺少密钥或锁定' ... 数据集显示在图像中。 enter image description here

分类和找到准确性的好方法。

我最初尝试从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)

但我收到以下错误: -

匹配self._lang_vars.period_context_re()。finditer(text): TypeError:期望的字符串或类似字节的对象

1 个答案:

答案 0 :(得分:0)

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

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

您现在需要重新考虑其余的代码。你有一整套句子,而不仅仅是一个。使用如上所述的循环,这样你就可以一次检查一个句子的单词。