textblob中的内置分类器非常笨。它是根据电影评论进行训练的,所以我在上下文中创建了大量示例(57,000个故事,分为正面或负面故事),然后使用nltk.尝试使用textblob对其进行训练的方式进行了训练,但始终失败:
with open('train.json', 'r') as fp:
cl = NaiveBayesClassifier(fp, format="json")
Run Code Online (Sandbox Code Playgroud)
那将运行数小时,并最终导致内存错误。
我查看了源代码,发现它只是使用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)
Run Code Online (Sandbox Code Playgroud)
然后我腌了。
with open('storybayes.pickle','wb') as f:
pickle.dump(cl,f)
Run Code Online (Sandbox Code Playgroud)
现在...我拿了这个腌制的文件,然后重新打开它以获取nltk.classifier'nltk.classify.naivebayes.NaiveBayesClassifier'>-并尝试将其输入到textblob中。代替
from textblob.classifiers import NaiveBayesClassifier
blob = TextBlob("I love this …Run Code Online (Sandbox Code Playgroud) TextBlob 如何计算情感极性的经验值。我使用了朴素贝叶斯,但它只是预测它是正数还是负数。如何像 TextBlob 那样计算情绪值?
python machine-learning python-3.x sentiment-analysis textblob
我一直在使用TextBlob,一个Python包(https://pypi.python.org/pypi/textblob),用于将文章翻译成不同的语言.
阅读完他们的文档后,我发现TextBlob使用了谷歌翻译.由于谷歌翻译不是免费服务,我想知道使用TextBlob服务翻译文章是否有任何使用限制?
我已按照在 Windows 7 中为 Python 安装 TextBlob 时出现问题中的说明进行操作。它已安装,但当我转到 Python Idle 并键入时,import TextBlob它显示
没有名为 TextBlob 的模块
如何解决这个问题呢?
或者我可以直接将与包关联的库放在Python Lib文件夹中并尝试将其导入到程序中吗?如果建议的话,请告诉程序这样做。它会起作用吗?
任何帮助将不胜感激。
我有运行 apache 和 django 的 AWS linux。我已经安装了 textbob 扩展,它通过 python shell 运行良好。但是,当我在 views.py 中使用它时,它总是给我 MissingCorpusError。
我已经下载了语料库(python -m textblob.download_corpora)并且该模块在 python shell 中运行良好。可能是什么问题?自从几天以来一直被困在这件事上。
以下是我收到的错误消息,
看起来您缺少此功能所需的一些数据。要下载必要的数据,只需运行 python -m textblob.download_corpora 或使用 NLTK 下载器下载缺少的数据:http ://nltk.org/data.html 如果这没有要解决问题,请在https://github.com/sloria/TextBlob/issues提出问题。
我想分析用德语写的文本的情绪。我找到了很多关于如何用英语做到这一点的教程,但我没有找到关于如何将它应用于不同语言的教程。
我有一个想法是使用TextBlobPython 库先将句子翻译成英文,然后再进行情感分析,但我不确定这是否是解决此任务的最佳方法。
或者还有其他可能的方法来解决这个任务吗?
我正在使用 NLTK 和 TextBlob 在文本中查找名词和名词短语:
from textblob import TextBlob
import nltk
blob = TextBlob(text)
print(blob.noun_phrases)
tokenized = nltk.word_tokenize(text)
nouns = [word for (word, pos) in nltk.pos_tag(tokenized) if is_noun(pos)]
print(nouns)
Run Code Online (Sandbox Code Playgroud)
如果我的文字是英文的,这很好用,但如果我的文字是法文,那就不行了。
我无法找到如何将此代码调整为法语,我该怎么做?
是否有可以解析的所有语言的列表?
我有一个文本 blob,其中如果极性 > 0,我将文本分类为正,如果 = 0,则为中性,如果 < 0,则为负。我如何根据将其分类为正、负或中性来获得单词?
python machine-learning python-3.x sentiment-analysis textblob
我正在使用TextBlob for python对推文进行一些情绪分析.TextBlob中的默认分析器是PatternAnalyzer,它可以很好地工作并且速度非常快.
sent = TextBlob(tweet.decode('utf-8')).sentiment
Run Code Online (Sandbox Code Playgroud)
我现在尝试切换到NaiveBayesAnalyzer,发现运行时对我的需求不切实际.(每条推文接近5秒.)
sent = TextBlob(tweet.decode('utf-8'), analyzer=NaiveBayesAnalyzer()).sentiment
Run Code Online (Sandbox Code Playgroud)
我之前使用过朴素贝叶斯分类器的scikit学习实现,并没有发现它这么慢,所以我想知道我是否正确使用它在这种情况下.
我假设分析仪是预训练的,至少文档说明"Naive Bayes分析仪是在电影评论数据集上训练的".但是它还有一个函数train(),被描述为"在电影评论语料库中训练朴素贝叶斯分类器".它是否在每次运行之前在内部训练分析仪?我希望不是.
有谁知道加速这个的方法?
我有一个带有文本的col的数据框.我想应用textblob并计算每行的情绪值.
text sentiment
Run Code Online (Sandbox Code Playgroud)
这是伟大
的电影伟大的故事
当我执行以下代码时:
df['sentiment'] = list(map(lambda tweet: TextBlob(tweet), df['text']))
我收到错误:
TypeError: The `text` argument passed to `__init__(text)` must be a string, not <class 'float'>
Run Code Online (Sandbox Code Playgroud)
如何将textBLob应用于数据框中col的每一行以获取情绪值?
python ×10
textblob ×10
nltk ×3
naivebayes ×2
python-3.x ×2
apache ×1
django ×1
nlp ×1
pandas ×1
python-2.7 ×1
windows ×1