2016-04-13 3 views
0

Ich habe einen Code geschrieben, um die Stimmungsanalyse zu machen, deshalb benutze ich zwei verschiedene Wörterbücher, in denen die Sätze taggen als negativ oder positiv sind. Mein Code-Schnipsel Sieht so weit wie folgt aus:Wie Stoppwörter in diesem Code zu elimieren?

def format_sentence(sentence): 
    return {word: True for word in word_tokenize(satz) } 

pos_data = [] 
with open('Positiv.txt') as f: 
    for line in f: 
     pos_data.append([format_sentence(line), 'pos']) 

neg_data = [] 
with open('Negativ.txt') as f: 
    for line in f: 
     neg_data.append([format_sentence(line), 'neg']) 

training_data = pos_data[:3] + neg_data[:3] 
test_data = pos_data[3:] + neg_data[3:] 

model = NaiveBayesClassifier.train(training_data) 

Jetzt habe ich den Code möchte alle Stoppwörter aus den Sätzen im Wörterbuch elimate aber ich weiß nicht, wie das in meinen Code zu implementieren, wie ich ein Anfänger bin in Python Programmierung. Ich wäre sehr dankbar, wenn mir jemand helfen könnte, mit diesem

+0

Was ist ein "Stoppwort", und wie definieren Sie "Beseitigung"? – th3an0maly

+0

Stoppwörter sind Wörter wie 'und', 'aber' und so weiter. Ich möchte, dass der Classifier diese Wörter nicht in die Trainingsdaten einfügt. – Tommy5

+0

Mögliches Duplikat von [Stopword removal with NLTK] (http://stackoverflow.com/questions/19130512/stopword-removal-with-nltk) – alvas

Antwort

0

:) Wenn Sie nur Python-Listen verwenden, versuchen Sie diese Vorlage von Code, der mit gelöschten Stoppwörtern eine neue Liste erstellt:

list_without_stopwords = [word for word in original_list if word not in stopword_list] 
0

Es sieht wie Sie die Naive Bayes Classifier-Implementierung in NLTK verwenden. NLTK hat auch Stoppwortlisten für einige Sprachen eingebaut.

from nltk.corpus import stopwords 
stops = stopwords.words('english') 

def format_sentence(sentence): 
    return {word: True for word in word_tokenize(sentence) if word not in stops}