2017-10-21 187 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