【问题标题】:How to create a corpus somthing similar to movie_review using nltk python 3.4如何使用 nltk python 3.4 创建类似于 movie_review 的语料库
【发布时间】:2017-03-09 19:34:53
【问题描述】:

我遇到了一个问题,我将总结一下我正在努力完成的工作,以便您获得一个清晰的画面来指导我。

我想创建一个语料库类似于 movie_reviews,其中 movie_review 只有 2 个类别,但在 我的情况下我会有多个类别和子类别

例如:

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

我的问题是

1>我怎样才能创建这样一个语料库,有没有办法做到这一点,请指导我你的回复将是一个很大的帮助,你也可以将我映射到可以帮助我做到这一点的链接

2> 我可以运行 naivebayes 算法或任何其他算法,它适合这种情况,例如在我的情况下在 movie_reviews 中查找 neg 和 pos我还需要找到新提出的问题与哪个类别及其子类别等有关?

请帮助我。

【问题讨论】:

  • 如果以相同的方式组织代码,您可能会修改代码。您的数据是什么样的?
  • 我的数据是一个文本文件...我需要类别和子类别的原因是因为我想像节点、叶子等结构一样使用它来完成某些工作
  • 我无法理解您问题的第 2 部分),但我很确定它与定义语料库阅读器的任务无关——换句话说,这是一个单独的问题。

标签: python-3.x nlp nltk corpus naivebayes


【解决方案1】:

查看CategorizedCorpusReader 的文档(和/或来源),例如像这样:

>>> help(nltk.corpus.reader.CategorizedCorpusReader.__init__)

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

- cat_pattern: A regular expression pattern used to find the
  category for each file identifier.  The pattern will be
  applied to each file identifier, and the first matching
  group will be used as the category label for that file.

- cat_map: A dictionary, mapping from file identifiers to
  category labels.

- cat_file: The name of a file that contains the mapping
  from file identifiers to categories.  The argument
  ``cat_delimiter`` can be used to specify a delimiter.

没有对分层类别的直接支持,但您可以自己安排,因为一个文件可以属于多个类别。例如,您可以将文件 donkey.txt 分配给 animalmammal。 nltk 的 brown 语料库具有属于多个类别的文件,因此您可以检查它的细节(它使用 cat_file 方法)。

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

【讨论】:

  • 非常感谢亚历克西斯,我按照你的说法尝试了这个,很可能这种方法应该对我有所帮助。此外,正如你所说,我还将对 corpus.reader 进行一些研究。
猜你喜欢
  • 2011-05-15
  • 2012-05-14
  • 2016-03-17
  • 1970-01-01
  • 1970-01-01
  • 2017-03-09
  • 1970-01-01
相关资源
最近更新 更多