【问题标题】:How can I train NLTK on the entire Penn Treebank corpus?如何在整个 Penn Treebank 语料库上训练 NLTK?
【发布时间】:2013-05-29 19:49:33
【问题描述】:

我最初使用的是来自 NLTK 的以下 Penn Treebank 标记器:

POS_Tagger = UnigramTagger(treebank.tagged_sents(), backoff=DefaultTagger('NN'))

但是,这在口语文本方面有所不足。例如,“你好”不应该被识别为感叹词。我从这里 (In NLTK pos_tag, why “hello” is classified as Noun?) 读到,如果我想标记口语文本,我将“需要在整个 Penn Treebank 上训练标记器,其中包括大约 300 万个口语单词。”我现在的问题是如何我可以做到这一点?我来过这里 (Penn Treebank Project) 但在上面找不到任何东西。

如果对整个 Penn Treebank 进行培训太难,还有什么替代方案?我正在考虑使用 Brown 语料库,但是 POS 标签不同,这让我不得不重写程序的其他部分。

【问题讨论】:

    标签: python nlp nltk corpus tagged-corpus


    【解决方案1】:

    不幸的是,Penn Treebank 只能通过Linguistic Data Consortium 支付高额费用。如果您的需求是非商业性的,您也许可以找到一位可以授予您访问权限的学者。

    或者,您可以通过在您的一些其他数据(新闻文章、布朗、维基百科等)上运行现有的 POS 标记器(如 ClearNLP toolsStanford CoreNLP tools)来创建自己的银标准(而不是金标准)数据...) 然后您可以获取这些标记数据并训练 NLTK 标记器。当然,如果您需要更适合语音的数据,您可能需要查看 Switchboard 语料库。似乎有一个 version with some POS and syntactic annotation 可通过知识共享许可获得。

    【讨论】:

      【解决方案2】:

      您可能需要考虑美国国家语料库。尽管并非所有内容都可以免费获得,但其中很大一部分是(大约 1400 万字)。该部分被称为“OANC”(“O”代表“Open”)。它带有 Penn Treebank POS 标签。

      它还包括更高级别的注释,例如段落、句子、名词和动词“块”,您可能需要也可能不需要,但当然可以忽略。

      http://www.anc.org/

      【讨论】:

        【解决方案3】:

        NLTK 中的 Penn Treebank 语料库只是真实 Penn Treebank 的一个样本,见https://en.wikipedia.org/wiki/User:Alvations/NLTK_cheatsheet/CorporaReaders#Penn_Tree_Bank

        样本仅包含 3000 多个句子,而 NLTK 中的棕色语料库包含超过 50,000 个句子。除非您可以访问整个 PTB,否则最好使用其他语料库。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2015-07-03
          • 1970-01-01
          • 2017-10-22
          • 2017-07-31
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多