python - NLTK 中最高效的解析器?
问题描述
我在 NLTK 中找不到一个解析算法,它在用大语法实例化时在合理的时间内解析一个句子(在 Penn Treebank 的 20 多个文件 ID 上进行训练导致解析需要几分钟或更长时间,具体取决于解析算法)。我正在使用整个树库进行训练 - 所有 ~ 2,400 个文件 ID - 所以每个句子这么多时间是不可行的,因为我试图解析树库的整个测试集(文件 ID 2,300 - 2,399)。
到目前为止我尝试过的算法包括:
维特比解析器
所有 ChartParser 算法
RecursiveDescentParser(这实际上在启动后以 RecursionError 退出)
如果有任何算法可以在对大型语法进行训练时快速解析(即使它不包含在 NLTK 库中),我将不胜感激能指出这个方向。
我知道 CoreNLPParser 模块,但是据我所知,这只能用已经加载的语法调用,这不符合我的要求,因为我正在寻找一种算法来评估 Penn Treebank 测试集,因此需要决定算法使用的语法的能力。
解决方案
您可能想试试 Benepar(伯克利神经解析器)
它具有 MIT 许可证并与 NLTK 或 spaCy 集成。语言支持包括:英语、汉语、德语、巴斯克语、法语、希伯来语、匈牙利语、韩语、波兰语、瑞典语
推荐阅读
- python - 为什么 Pandas 在空 DataFrame 上执行 groupby 时会不一致地使用 MultiIndex?
- java - 多线程应用程序 - 用于重复检查的 SQL 查询
- php - Wordpress 条件菜单插件不起作用
- cmake - 内珀软件安装
- jquery - 如果我单击另一个类,请删除“活动”
- python - 默认情况下,哪个 Web 服务器在 django 中?
- wpf - WPF RichTextBox 字母项目符号不正确
- python - Pandas:用作零时替换“-”,但用作负数时不替换
- excel - 如何将文本添加到范围
- django - 从视图双引号引用模型时出现 Django 错误