1

我有 csv 文件,其中包含 2 列“投诉详细信息”和“处置代码”。我想投诉详细信息分类为8 个不同类别的处置代码,例如“门从内部锁定”、“供应商错误”、“缺少钥匙或锁”。 .. 数据集如图所示。 在此处输入图像描述

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

最初我尝试从 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: expected string or bytes-like object

4

1 回答 1

0

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

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

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

于 2017-10-21T21:14:53.550 回答