Найти мнение предложения как положительное или отрицательное

Мне нужно узнать мнение некоторых отзывов на веб-сайтах. Я использую Sentiwordnet для этого. Сначала я отправляю файл, содержащий все отзывы, в POS Tagger.

tokens=nltk.word_tokenize(line) #tokenization for line in file
tagged=nltk.pos_tag(tokens) #for POSTagging
print tagged

Есть ли какой-либо другой точный способ токенизации, который рассматривает не хорошо как 1 слово, кроме как рассматривать его как 2 отдельных слова.

Теперь я должен дать положительную и отрицательную оценку токенизированным словам, а затем вычислить общую оценку. Есть ли какая-нибудь функция в sentiwordnet для этого. пожалуйста помоги.

1 ответ

Решение

См. Первый Извлечь наречия и прилагательные из обзора, например:

import nltk
from nltk.tokenize import sent_tokenize, word_tokenize
import csv

para = "What can I say about this place. The staff of the restaurant is nice and the eggplant is not bad. Apart from that, very uninspired food, lack of atmosphere and too expensive. I am a staunch vegetarian and was sorely dissapointed with the veggie options on the menu. Will be the last time I visit, I recommend others to avoid"

sentense = word_tokenize(para)
word_features = []

for i,j in nltk.pos_tag(sentense):
    if j in ['JJ', 'JJR', 'JJS', 'RB', 'RBR', 'RBS']: 
        word_features.append(i)

rating = 0

for i in word_features:
    with open('words.txt', 'rt') as f:
        reader = csv.reader(f, delimiter=',')
        for row in reader:
            if i == row[0]:
                print i, row[1]
                if row[1] == 'pos':
                    rating = rating + 1
                elif row[1] == 'neg':
                    rating = rating - 1
print  rating

Теперь у вас должен быть внешний CSV-файл, в котором должны быть положительные и отрицательные слова.

как: морщины, негритянские морщины, негритянские морщины, негритянское мастерство, шедевр pos, шедевры pos, pos

Работа вышеуказанного скрипта выглядит следующим образом:

1 прочитайте предложение 2 . извлечь наречие и прилагательные 3 . сравнить с CVS для положительных и отрицательных слов 4 . а затем оценить предложение

Результат приведенного выше сценария:

nice pos  
bad neg  
expensive neg  
sorely neg  
-2

изменить результат в соответствии с вашими потребностями. и извините за мой английский:P

Другие вопросы по тегам