Повышение точности настроений с помощью StanfordCoreNLP
Поэтому я пытаюсь предсказать настроение отзывов как можно точнее. Я переключился на Stanford Core NLP, считая его более точным. Так что для предложения,
Staff were very helpful in store when I wanted to return the product and promptly processed the refund.
Для этого предложения выше, я получаю оценку отрицательного значения 1.
Затем я использовал senti_wordnet для того же предложения, и я получил положительный результат, который является правильным. Мне было интересно, что я делаю что-то не так, потому что, если я правильно читаю в разных источниках, в нем упоминается, что StanfordCoreNLP более точный, но это не так. Поэтому мне было интересно, делаю ли я что-то не так. Я также написал свои программы на python для StanfordCoreNLP (используя класс-оболочку) Код, который я использую для senti_wordnet.
def classifySentence(sen):
wn_lem = WordNetLemmatizer()
pos = 0
neg = 0
for token in nltk.word_tokenize(sen):
lemma = wn_lem.lemmatize(token)
if len(wn.synsets(lemma))>0:
synset = wn.synsets(lemma)[0]
sent = swn.senti_synset(synset.name())
print("Sentiment of "+token+" "+str(sent))
pos = pos + sent.pos_score()
neg = neg + sent.neg_score()
return [pos, neg]
Код для stanfordCoreNLP
for Review in filtered_ReviewsAfterProcess1:
res = nlp.annotate(Review,operations)
for s in res["sentences"]:
for token in s["tokens"]:
print("Sentiment of sentence: "+s["sentiment"]+' value: '+s["sentimentValue"])