无法删除停用词;NLP
unable to remove stopwords;NLP
我有包含 2 列 'Complaint Details' 和 'DispositionCode' 的 csv 文件。我想 将投诉详细信息分类 为 8 个不同的 类 dispostionCode 如'Door locked from inside','Vendor error','Missing key or lock'...
数据集如图所示。
enter image description here
有什么好的分类方法和求准确率的方法。
最初我尝试从 ComplaintDetails 中删除 stopwords 然后使用 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) 中的匹配:
类型错误:预期的字符串或类似字节的对象
您的代码永远不会到达停用词,因为错误是由于误用 word_tokenize()
。它需要在单个字符串上调用,而不是在整个数据集上调用。您可以像这样标记您的数据:
for row in your_list:
row[0] = word_tokenize(row[0])
您现在需要重新考虑其余代码。你有一个完整的句子列表,而不仅仅是一个。使用像上面这样的循环,这样您就可以一次检查一个句子中的单词。
我有包含 2 列 'Complaint Details' 和 'DispositionCode' 的 csv 文件。我想 将投诉详细信息分类 为 8 个不同的 类 dispostionCode 如'Door locked from inside','Vendor error','Missing key or lock'... 数据集如图所示。 enter image description here
有什么好的分类方法和求准确率的方法。
最初我尝试从 ComplaintDetails 中删除 stopwords 然后使用 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) 中的匹配: 类型错误:预期的字符串或类似字节的对象
您的代码永远不会到达停用词,因为错误是由于误用 word_tokenize()
。它需要在单个字符串上调用,而不是在整个数据集上调用。您可以像这样标记您的数据:
for row in your_list:
row[0] = word_tokenize(row[0])
您现在需要重新考虑其余代码。你有一个完整的句子列表,而不仅仅是一个。使用像上面这样的循环,这样您就可以一次检查一个句子中的单词。