我有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:期望的字符串或类似字节的对象
答案 0 :(得分:0)
您的代码永远不会使用停用词,因为错误是由于误用了word_tokenize()
。它需要在单个字符串上调用,而不是在整个数据集上调用。您可以像这样标记数据:
for row in your_list:
row[0] = word_tokenize(row[0])
您现在需要重新考虑其余的代码。你有一整套句子,而不仅仅是一个。使用如上所述的循环,这样你就可以一次检查一个句子的单词。