python - NLTK文档分类

标签 python text classification nltk

NLTK 书第 6 章第 2.1 节中的代码调用电影评论语料库进行文档分类。书中代码如下:

from nltk.corpus import movie_reviews
documents = [(list(movie_reviews.words(fileid)), category)
         for category in movie_reviews.categories()
         for fileid in movie_reviews.fileids(category)]
 random.shuffle(documents)

我有自己的数据集,在电子邮件文本之间用逗号分隔(文本,类别),并且该类别的正数或负数。我可以在我自己的文件上调用 .words() 吗?另外,代码调用 movie_reviews.categories() 时意味着什么。我无法理解如何构建数据以将其转换为代码所需的形式。我已经查看了各个语料库文件,但我不知道从这里该做什么。任何帮助,将不胜感激。谢谢!

最佳答案

words() 根据 the documentation 仅返回“给定文件作为单词和标点符号的列表” 。在这方面,您绝对可以在您拥有的任何文本文件上调用 nltk.corpus.words()

至于categories()further down在文档中,它说它“返回为此语料库或文件(如果给定)定义的类别列表。”然而,它的来源有点模糊。请注意,不同的语料库有不同的方式来指示其类别。 movie_reviews 是通过目录名称来实现的,但 abc 和 reuters 在文件中有明确的类别。 qc 的类别与文本位于同一文件中。

可能需要对您自己的数据进行一些试验,看看是否可以复制此行为,但合理的第一步是将包含数据子集的目录添加到nltk_data/corpora 并尝试使用您在其他语料库中看到的格式。

关于python - NLTK文档分类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20649682/

相关文章:

Android:选择所有聚焦在 EditField 上的文本

Matlab在图外添加文字

python - LSTM 0 准确率

python - 如何给keras一个恒定的输入

java - 稀疏 vector ,它们是什么?

python - 使用 Flask 框架登录

python - Django pymssql 迁移

python - 加载缓慢 Django 管理员更改/添加

python - tf.nn.relu 对比 tf.contrib.layers.relu?

regex - Java 应用程序和 grep - 我如何独立处理使用两个正则表达式传递给 grep 的命令输出?