首页 > 解决方案 > 如何将用户输入完全转换为用于训练分类器的处理数据?我想对用户输入文本进行情感分析

问题描述

我想在 python 中使用 NLTK 对作为语音输入或文本的用户输入的句子执行情感分析,但我不明白如何执行情感分析。我搜索过,但大多数搜索结果显示电影评论数据或 Twitter 情绪分析。请帮忙。我用来训练分类器的代码如下:

import nltk
import random
from nltk.corpus import movie_reviews
import pickle

documents = [(list(movie_reviews.words(fileid)), category) for category in movie_reviews.categories() for fileid in movie_reviews.fileids(category)]

random.shuffle(documents)

# print(len(documents))

all_words = []

for word in movie_reviews.words():
    all_words.append(word.lower())

# print(len(all_words))
all_words = nltk.FreqDist(all_words)
# print("First 20 Most Repeated Words are: ", all_words.most_common(20))
# word_in = input("Enter a word to find out how many times it appears in the reveiws:   ")
# print(f"Number of Times the Word {0} Appeared : ".format(word_in), all_words[word_in])

word_features = list(all_words.keys())[:3000]




def find_features(document):
    words = set(document)
    featurs = {}
    for w in word_features:
        featurs[w] = (w in words)
    return featurs

# print(find_features(movie_reviews.words('neg/cv000_29416.txt')))
featuresets = [(find_features(rev), category) for (rev, category) in documents]

train_set = featuresets[:1900]

test_set = featuresets[1900:]

# print(test_set[0])


classifier = nltk.NaiveBayesClassifier.train(train_set)

print("Classifier Accuracy: ", (nltk.classify.accuracy(classifier, test_set))*100

而不是test_set我想用我自己的句子

标签: pythonpython-3.xnlpnltksentiment-analysis

解决方案


因此,在训练完模型后,您需要使用模型的预测功能来获取输入句子的情绪。此外,您还必须确保在处理训练数据时完全转换了输入数据。我知道很难从评论中理解,所以这是一篇展示如何预测用户输入的中型文章。情绪分析


推荐阅读