- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
textblob 中的内置分类器非常愚蠢。它是根据电影评论进行训练的,因此我在我的上下文中创建了大量示例(57,000 个故事,分为正面或负面),然后使用 nltk 对其进行训练。
我尝试使用 textblob 来训练它,但它总是失败:
with open('train.json', 'r') as fp:
cl = NaiveBayesClassifier(fp, format="json")
这将运行几个小时并以内存错误结束。
我查看了源代码,发现它只是使用 nltk 并对其进行包装,因此我使用了它,并且它有效。
nltk 训练集的结构需要是一个元组列表,第一部分是文本中单词和出现频率的计数器。元组的第二部分是表示情绪的“pos”或“neg”。
>>> train_set = [(Counter(i["text"].split()),i["label"]) for i in data[200:]]
>>> test_set = [(Counter(i["text"].split()),i["label"]) for i in data[:200]] # withholding 200 examples for testing later
>>> cl = nltk.NaiveBayesClassifier.train(train_set) # <-- this is the same thing textblob was using
>>> print("Classifier accuracy percent:",(nltk.classify.accuracy(cl, test_set))*100)
('Classifier accuracy percent:', 66.5)
>>>>cl.show_most_informative_features(75)
然后我腌制它。
with open('storybayes.pickle','wb') as f:
pickle.dump(cl,f)
现在...我拿起这个腌制文件,重新打开它以获取 nltk.classifier 'nltk.classify.naivebayes.NaiveBayesClassifier'> - 并尝试将其输入到 textblob 中。而不是
from textblob.classifiers import NaiveBayesClassifier
blob = TextBlob("I love this library", analyzer=NaiveBayesAnalyzer())
我尝试过:
blob = TextBlob("I love this library", analyzer=myclassifier)
Traceback (most recent call last):
File "<pyshell#116>", line 1, in <module>
blob = TextBlob("I love this library", analyzer=cl4)
File "C:\python\lib\site-packages\textblob\blob.py", line 369, in __init__
parser, classifier)
File "C:\python\lib\site-packages\textblob\blob.py", line 323, in
_initialize_models
BaseSentimentAnalyzer, BaseBlob.analyzer)
File "C:\python\lib\site-packages\textblob\blob.py", line 305, in
_validated_param
.format(name=name, cls=base_class_name))
ValueError: analyzer must be an instance of BaseSentimentAnalyzer
现在怎么办?我查看了源代码,两者都是类,但并不完全相同。
最佳答案
我无法确定 nltk 语料库不能与 textblob 一起使用,这会让我感到惊讶,因为 textblob 在其源代码中导入了所有 nltk 函数,并且基本上是一个包装器。
但经过多个小时的测试后我得出的结论是,nltk 提供了一个更好的内置情感语料库,称为“vader”,它的性能优于我所有训练过的模型。
import nltk
nltk.download('vader_lexicon') # do this once: grab the trained model from the web
from nltk.sentiment.vader import SentimentIntensityAnalyzer
Analyzer = SentimentIntensityAnalyzer()
Analyzer.polarity_scores("I find your lack of faith disturbing.")
{'neg': 0.491, 'neu': 0.263, 'pos': 0.246, 'compound': -0.4215}
CONCLUSION: NEGATIVE
vader_lexicon
和 nltk 代码对句子中的否定语言进行更多解析,以否定肯定词。就像达斯·维德(Darth Vader)说“缺乏信仰”时,将情绪转向相反的方向一样。
我在这里解释了它,并举例说明了更好的结果: https://chewychunks.wordpress.com/2018/06/19/sentiment-analysis-discovering-the-best-way-to-sort-positive-and-negative-feedback/
它取代了这个 textblob 实现:
from textblob import TextBlob
from textblob.sentiments import NaiveBayesAnalyzer
TextBlob("I find your lack of faith disturbing.", analyzer=NaiveBayesAnalyzer())
{'neg': 0.182, 'pos': 0.817, 'combined': 0.635}
CONCLUSION: POSITIVE
vader nltk
分类器这里还有关于使用它进行情感分析的附加文档:http://www.nltk.org/howto/sentiment.html
textBlob 总是因为只有 5000 个示例而导致我的计算机崩溃。
关于python - 使用 nltk 训练我自己的分类器后,如何将其加载到 textblob 中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50828262/
我是第一次使用 SQLite,我正在做一个学生项目,我做了很多研究,但我无法解决我的问题。我正在尝试使用 sqlite-net-extensions,但我的 TextBlob 始终为空。如何使用 Wi
查看我们最近所做的一项调查的回复。我认为这位受访者不太高兴。在这里,TextBlob 让我相信他的情绪已经达到了积极的上限。如果我从字符串中删除“best”一词,情绪分数就会变为“0”。 您能帮助我重
我试图将 TextBlob 导入 Python。 当我直接在 shell 中运行命令时,它运行良好: 从 textblob 导入 TextBlob 但是,当我将它放入py文件并运行它时,它不再起作用了
我正在使用 Python、TextBlob 和 NLTK 做一个快速的情绪分析控制台应用程序。 目前我正在使用西类牙语 wiki 文章的链接,所以我不需要翻译它并且我可以使用 nltk 西类牙语停用词
我正在研究 TextBlob 来计算我编译的 Excel 工作表上的文章列表的情绪分数(极性、主观性)。 下面是工作表的示例: 11/03/2004 04:03 At least 60 people
我有一个数据框,其中包含一个包含文本的列。我想应用 textblob 并计算每一行的情绪值。 text sentiment 这很好 好电影很棒的故事 当我执行下面的代码时
我一直在使用 TextBlob,这是一个用于将文章翻译成不同语言的 Python 包 (https://pypi.python.org/pypi/textblob)。 阅读他们的文档后,我了解到 Te
我正在尝试安装 TextBlob。根据官方文档,我这样做了。 > pip install -U textblob > python -m textblob.download_corpora pip 命
我需要带有 TextBlob 极性得分的总列表或字典。我搜索了很多在线网站,但找不到列表。我知道如何获得句子或单词的极性。我怎样才能找到它? 最佳答案 因为我们没有看到直接的 api 函数,也许你可以
TextBlob 如何计算情感极性的经验值。我使用过朴素贝叶斯,但它只是预测它是正数还是负数。我怎样才能像 TextBlob 那样计算情绪的值? 最佳答案 以下是该站点的示例:https://text
有谁知道 textblob 情绪是如何运作的?我知道它基于 Pattern 工作,但我找不到任何文章或文档解释模式如何为句子分配极性值。 最佳答案 下面是 textblog 情感模块的代码: http
我有一个如下所示的数据框: Text 0 this is amazing 1 nan 2 wow you are great 我想将数据帧单元格中的每个单词迭代到 text
我正在尝试将 textBlob 与文本文件输入一起使用。 我在网上找到的所有示例都是在这个意义上的输入: wiki = TextBlob("Python is a high-level, genera
作为训练数据,以 XML 形式对餐馆进行评论,并带有相关的目标表达、所表达的情感、所属的离散标签类别以及对此所表达的极性: With the great variety on the menu , I
我正在尝试使用 Python 3.3 在 Windows 中运行 TextBlob 教程(使用 Git Bash shell)。 我已经安装了 textblob 和 nltk 以及任何依赖项。 Pyt
我已经安装了textblob,我想进行简单的翻译。 >>> text="Hello" >>> blob=TextBlob(text) >>> blob.translate(to="es") 问题是,我
今天早上我开始安装位于 https://textblob.readthedocs.org/en/latest/index.html 的 TextBlob 模块 根据我第一次运行的安装文档: pip i
使用 Windows 10我已经使用“py -m pip install textblob”安装了 textblob。我可以导入 textblob,或者 from textblob import bl
我正在尝试根据 TextBlob 分类插入一个仅包含“正”或“负”字符串的新数据框列:对于我的 df 的第一行,结果是 ( pos , 0.75, 0.2499999999999997)我想要' 正
我正在使用 TextBlob 执行情感分析任务。我注意到 TextBlob 在某些情况下能够检测到否定,而在其他情况下则不能。 这是两个简单的例子 >>> from textblob.sentimen
我是一名优秀的程序员,十分优秀!