python - 如何将用户输入完全转换为用于训练分类器的处理数据?我想对用户输入文本进行情感分析
问题描述
我想在 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
我想用我自己的句子
解决方案
因此,在训练完模型后,您需要使用模型的预测功能来获取输入句子的情绪。此外,您还必须确保在处理训练数据时完全转换了输入数据。我知道很难从评论中理解,所以这是一篇展示如何预测用户输入的中型文章。情绪分析
推荐阅读
- python - 如何在没有 Numpy 函数的 python 中显示 3 * 3 矩阵
- javascript - gql和styled.div后面的反引号是什么意思
- ios - 在真实设备上选择 PDF 时 iOS 文档选择器崩溃
- typescript - 无法设置threejs MeshBasicMaterial 实例的userData 属性
- docker - 当我在 kafka 中运行消费者脚本时,我收到错误 1 分区有领导代理没有匹配的侦听器
- python - 在字符串末尾增加一个数字
- python - 在 Python 中使用正则表达式从文本中提取列表
- javascript - 如何隐藏底部Css
- docker - 通过 Wireguard 将 Docker 上的 Nextcloud 与 NAS 连接
- javascript - 如何用承诺占据点击事件?