我无法在NLTK中找到一种解析算法,该算法可以在用大语法实例化时在合理的时间内解析一个句子(对Penn Treebank的20多个Fileid进行训练导致解析花费几分钟或更长时间,具体取决于在解析算法上)。我正在使用整个树库进行训练-全部〜2,400个文件ID-因此,每个句子这么多的时间都是不可行的,因为我试图解析树库的整个测试集(文件ID 2,300-2,399)。
到目前为止,我尝试过的算法包括:
ViterbiParser
所有ChartParser算法
RecursiveDescentParser(实际上,它在启动后立即以RecursionError退出)
如果有任何算法可以在接受大语法训练时快速解析(即使该算法未包含在NLTK库中),我将不胜感激指出这一方向。
我知道CoreNLPParser模块,但是据我所知,只能使用已加载的语法来调用它,这不符合我的要求,因为我正在寻找一种可根据Penn Treebank测试集进行评估的算法,因此需要具有决定算法要使用的语法的能力。
答案 0 :(得分:1)
您可能想尝试Benepar(Berkeley Neural parser)
它具有MIT许可证,并且与NLTK或spaCy集成。语言支持包括: 英语,中文,德语,巴斯克语,法语,希伯来语,匈牙利语,韩语,波兰语,瑞典语