Python 3.x 如何使用nltk python 3.4创建类似于movie_review的语料库

Python 3.x 如何使用nltk python 3.4创建类似于movie_review的语料库,python-3.x,nlp,nltk,corpus,naivebayes,Python 3.x,Nlp,Nltk,Corpus,Naivebayes,我遇到了一个问题,我将总结一下我正在努力实现的目标,这样你就有了一个清晰的图像来指导我 我想创建一个类似于电影评论的语料库,其中电影评论只有两个类别,但在我的案例中,我将有多个类别和子类别 例如: 假设我有一个语料库作为我想要的语料库 创建类别,如“A”、“B”、“C”、“D”和“E”。每一个 类别将包含子类别,如我想要的“A”中的子类别 子类别,如所有其他类别的“a1”、“a2”、“a3”等 类别(B、C、D和E)。每个子类别将 同样,有自己的子类别,如“a1”,可能有“a1.1”、“a1.2

我遇到了一个问题,我将总结一下我正在努力实现的目标,这样你就有了一个清晰的图像来指导我

我想创建一个类似于电影评论的语料库,其中电影评论只有两个类别,但在我的案例中,我将有多个类别和子类别

例如:

假设我有一个语料库作为我想要的语料库 创建类别,如“A”、“B”、“C”、“D”和“E”。每一个 类别将包含子类别,如我想要的“A”中的子类别 子类别,如所有其他类别的“a1”、“a2”、“a3”等 类别(B、C、D和E)。每个子类别将 同样,有自己的子类别,如“a1”,可能有“a1.1”、“a1.2” 等最后,最底部(叶子)将包含所有文本 与该类别或子类别相关的文件

我的问题是

1> 我如何才能创建这样一个语料库,是否有任何方法可以做到这一点,请指导我你的回答将是一个很大的帮助,你也可以映射到我的链接,可以帮助我做到这一点

2> 我可以运行naivebayes算法或任何其他算法吗?该算法适用于这种情况,就像在电影评论中查找neg和pos的算法一样,在我的案例中,我也需要找到新提出的问题与哪个类别及其子类别相关,等等


请帮助我。

请查看以下文件(和/或来源):

>>帮助(nltk.corpus.reader.CategorizedCorpusReader.\uuuuu init\uuuuuuuuuuuu)
这是基类;实际上,您将使用适合您的数据格式的分类读取器。如果您的文件是纯文本,则将是
CategorizedPlaintextCorpusReader
。创建读取器时,可以通过从文件名中提取类别的正则表达式、提供类别的文件或直接传递给构造函数的字典来定义类别:

-cat_模式:用于查找
每个文件标识符的类别。模式将是
应用于每个文件标识符和第一个匹配项
组将用作该文件的类别标签。
-cat_映射:一个字典,从文件标识符映射到
类别标签。
-cat_文件:包含映射的文件的名称
从文件标识符到类别。争论
``cat_分隔符``可用于指定分隔符。
没有对层次分类的直接支持,但您可以自己安排,因为文件可以属于多个类别。例如,您可以将文件
ad驴.txt
同时分配给
animal
哺乳动物。nltk的
brown
语料库包含属于多个类别的文件,因此您可以检查它的细节(它使用
cat_文件
方法)


nltk的系统将类别映射到文件ID,而不是更低级别的类别。如果您按照我的建议进行设置,您将能够编写
mycorpus.words(categories=[“A”,“B”])
,并从categories
Aa1
Aa2
等中的所有文件中获取单词。如果您想公开您的类别层次结构,您必须自己编写代码。(例如,您可以使用只返回类别树的方法
hierarchy
扩展reader类。)

查看文档(和/或源),例如:

>>帮助(nltk.corpus.reader.CategorizedCorpusReader.\uuuuu init\uuuuuuuuuuuu)
这是基类;实际上,您将使用适合您的数据格式的分类读取器。如果您的文件是纯文本,则将是
CategorizedPlaintextCorpusReader
。创建读取器时,可以通过从文件名中提取类别的正则表达式、提供类别的文件或直接传递给构造函数的字典来定义类别:

-cat_模式:用于查找
每个文件标识符的类别。模式将是
应用于每个文件标识符和第一个匹配项
组将用作该文件的类别标签。
-cat_映射:一个字典,从文件标识符映射到
类别标签。
-cat_文件:包含映射的文件的名称
从文件标识符到类别。争论
``cat_分隔符``可用于指定分隔符。
没有对层次分类的直接支持,但您可以自己安排,因为文件可以属于多个类别。例如,您可以将文件
ad驴.txt
同时分配给
animal
哺乳动物。nltk的
brown
语料库包含属于多个类别的文件,因此您可以检查它的细节(它使用
cat_文件
方法)


nltk的系统将类别映射到文件ID,而不是更低级别的类别。如果您按照我的建议进行设置,您将能够编写
mycorpus.words(categories=[“A”,“B”])
,并从categories
Aa1
Aa2
等中的所有文件中获取单词。如果您想公开您的类别层次结构,您必须自己编写代码。(例如,您可以使用只返回类别树的方法
hierarchy
扩展reader类。)

如果您以相同的方式组织代码,则可以修改代码。你的数据是什么样子的?我的数据是一个文本文件。。。我之所以需要类别和子类别是因为我想用它来做一些工作,比如节点、叶子等结构我对你问题的第2部分不太了解,但我很确定它与定义语料库阅读器的任务无关——这是一个单独的问题,换句话说,如果以相同的方式组织代码,则可能会修改代码。你的数据是什么样子的?我的数据是一个文本文件。。。雷亚斯