【问题标题】:Most Efficient Parser in NLTK?NLTK 中最高效的解析器?
【发布时间】:2019-03-01 20:05:25
【问题描述】:

我在 NLTK 中找不到一个解析算法,它在使用大型语法实例化时在合理的时间内解析一个句子(对 Penn Treebank 的 20 多个文件 ID 进行训练会导致解析需要几分钟或更长时间,具体取决于关于解析算法)。我正在使用整个树库进行训练 - 所有 ~ 2,400 个文件 ID - 所以每个句子这么多时间是不可行的,因为我试图解析树库的整个测试集(文件 ID 2,300 - 2,399)。

目前我尝试过的算法包括:

  • 维特比解析器

  • 所有 ChartParser 算法

  • RecursiveDescentParser(这实际上在启动后以 RecursionError 退出)

如果有任何算法可以在对大型语法进行训练时快速解析(即使它不包含在 NLTK 库中),我将不胜感激能指出这个方向。

我知道 CoreNLPParser 模块,但据我所知,这只能在已加载语法的情况下调用,这不符合我的要求,因为我正在寻找一种算法来评估 Penn Treebank 测试集,因此需要能够决定算法使用的语法。

【问题讨论】:

  • spaCy 仅提供依赖解析器,而不是像 NLTK 算法那样生成解析树的标准短语解析器。
  • 你可以试试 benepar,它会生成(Constituency parser)树,它可以和 spacy 一起使用。 spacy.io/universe/?id=self-attentive-parser
  • Gideon,你知道是否可以使用这个库为单个句子获取多个解析树?谢谢。
  • 标记为parse-tree。另外,任何人都可以发布相关 NTLK github 问题的编号吗?

标签: python nlp nltk parse-tree


【解决方案1】:

您可能想试试 Benepar (Berkeley Neural parser)

它具有 MIT 许可证并与 NLTK 或 spaCy 集成。语言支持包括: 英语、汉语、德语、巴斯克语、法语、希伯来语、匈牙利语、韩语、波兰语、瑞典语

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-07-27
    • 1970-01-01
    • 2014-03-15
    • 2016-10-18
    • 2015-05-25
    • 1970-01-01
    相关资源
    最近更新 更多