NLTK文件分类

时间:2013-12-18 04:33:32

标签: 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()时的含义是什么。我无法理解如何构建数据以使其成为代码所需的形式。我查看了各个语料库文件,但我无法弄清楚从这里做什么。任何帮助,将不胜感激。谢谢!

1 个答案:

答案 0 :(得分:1)

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

对于文档中的categories()further down,它表示“返回[s]为此语料库定义的类别列表,或者文件(如果它)给出。”然而,它的来源有点模糊。请注意,不同的语料库有不同的方式来指示其类别。 movie_reviews通过目录名称执行此操作,但abcreuters在文件中具有显式类别。 qc具有与文本相同的文件中的类别。

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