2016-04-13 28 views
0

Sentiment Analysis'i yazmak için kod yazdım, bu yüzden cümlelerin negatif oder pozitif olarak etiketlendiği iki farklı sözlük kullanıyorum. Benim kod parçacığı şimdiye kadar bu gibi görünüyor: Ben sözlükte cümle tüm Stopwords elimate için kod istiyorumBu koddaki stopwords'ler nasıl seçilir?

Şimdi
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) 

ama ben bir acemi olarak benim koduna o nasıl uygulanacağı bilmiyorum Python programlamasında. bu

+0

"Stopword" nedir ve "eleme" yi nasıl tanımlarsınız? – th3an0maly

+0

stopwords 've', 'ama' ve benzeri kelimelerdir. Sınıflandırıcının, eğitim verisi içerisindeki bu tür kelimeleri içermemesini istiyorum – Tommy5

+0

[NLTK ile sözcük kaldırma] 'nın olası kopyası (http://stackoverflow.com/questions/19130512/stopword-removal-with-nltk) – alvas

cevap

0

:) olan herkes sadece piton listelerini kullanıyorsanız, silinen engellenecek kelime ile yeni bir liste oluşturur bu kod şablonu, denemek bana yardımcı olabilir, ben çok memnun olurum:

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

görünüyor NLTK’daki Naive Bayes Classifier uygulamasını kullanıyorsunuz. NLTK ayrıca bazı diller için durdurma listeleri oluşturmuştur.

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}