python - nltk 语料库 tweeter_sample 按类别

标签 python twitter nltk sentiment-analysis

我想使用 tweeter_sample 语料库训练 nltk,但当我尝试按类别加载示例时出现错误。

首先我尝试这样:

from nltk.corpus import twitter_samples

documents = [(list(twitter_samples.strings(fileid)), category)
             for category in twitter_samples.categories()
             for fileid in twitter_samples.fileids(category)]

但它给了我这个错误:

    Traceback (most recent call last):
  File "C:/Users/neptun/PycharmProjects/Thesis/First_sentimental.py", line 6, in <module>
    for category in twitter_samples.categories()
  File "C:\Users\neptun\AppData\Local\Programs\Python\Python36-32\lib\site-packages\nltk\corpus\util.py", line 119, in __getattr__
    return getattr(self, attr)
AttributeError: 'TwitterCorpusReader' object has no attribute 'categories'

我不知道如何为他们提供可用的属性,以便让我的列表包含积极和消极的情绪。

最佳答案

如果您检查 twitter_samples.fileids(),您会看到有单独的正面和负面文件:

>>> twitter_samples.fileids()
['negative_tweets.json', 'positive_tweets.json', 'tweets.20150430-223406.json']

因此,要将推文分类为正面或负面,只需选择相应的文件即可。这不是 nltk 处理分类语料库的常用方式,但你已经有了。

documents = ([(t, "pos") for t in twitter_samples.strings("positive_tweets.json")] + 
             [(t, "neg") for t in twitter_samples.strings("negative_tweets.json")])

这将为您提供包含 10000 条推文的数据集。第三个文件包含另外 20000 个,显然没有分类。

关于python - nltk 语料库 tweeter_sample 按类别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43897203/

相关文章:

python - 属性错误 : module 'matplotlib.pyplot' has no attribute 'axline'

python - 在 Pandas 的 read_excel 中作为小数点分隔符的逗号

php - 将推文存储到数据库中的简单方法是什么?

javascript - Twitter Web 应用程序的图像共享(API?)

python - 你能用正则表达式进行一致性吗?

python - win32com 在使用 python 写入日期值时遇到问题

python - 如何通过 Pandas 数据框的列值加快行选择

python - 除了词干还有什么其他选择?

javascript - 从 JSON 元素的内容构造 URL 以避免输出中出现编码字符的正确方法是什么?

python - "Too many values to unpack"训练分类器时出现 ValueError