2017-10-21 4 views
1

Ich habe csv-Datei, die 2 Spalte ‚Complaint Details‘ enthält und ‚DispositionCode'.I wollen die complaintDetails in 8 verschiedenen Klassen von dispostionCode klassifizieren wie‚Tür von innen verriegelt‘ , 'Lieferantenfehler', 'Fehlender Schlüssel oder Sperre' ... Der Datensatz wird im Bild angezeigt. nicht entfernen Stoppwörter, NLP

Was wäre eine gute Methode zu klassifizieren und Genauigkeit zu finden.

zunächst mit Ich versuche Stoppwörter von den ComplaintDetails zu entfernen und dann naivebayes Klassifikator

Der Code verwenden ist, wie folgt:

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) 

Aber ich bin immer folgende Fehlermeldung: -

für die Übereinstimmung in self._lang_vars.period_context_re(). Finderiter (Text): TypeError: erwartete Zeichenfolge oder bytesähnliches Objekt

+1

'word_tokenize' nimmt eine Zeichenfolge als Argument und keine Liste von Zeichenfolgen. Rufen Sie 'word_tokenize' für jedes Element in' your_list' auf, nicht in 'your_list' selbst. – bunji

+0

Es ist eine Liste von Listen (CSV-Dateizeilen), so dass es doppelt entpackt werden muss. – alexis

Antwort

0

Ihr Code wird nie an die Stoppwörter gesendet, da der Fehler auf einen Missbrauch zurückzuführen ist word_tokenize(). Es muss in einer einzigen Zeichenfolge aufgerufen werden, nicht in Ihrem gesamten Dataset.

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

Sie werden jetzt müssen überdenken, den Rest Ihres Code: Sie können Ihre Daten wie diese tokenize. Sie haben eine ganze Liste von Sätzen, nicht nur eine. Verwenden Sie eine Schleife wie oben, um die Wörter eines Satzes zu untersuchen.

+0

danke !! es funktionierte für mich. @ alexis. Aber Können Sie mir sagen, die Methode, die ich zu klassifizieren, d. h. naiveBayes Klassifikator wird hier arbeiten? –

+0

kann ich nicht. Sie müssen es versuchen, die Leistung messen und entscheiden, was als nächstes zu tun ist. – alexis

Verwandte Themen