使用Stanford coreNLP在python nltk中进行共指解析

斯坦福CoreNLP提供了指代消解这里提到,也是这个线程,这提供了有关其在Java实现的一些见解。

但是,我正在使用python和NLTK,我不确定如何在我的python代码中使用CoreNLP的共指解析功能。我已经能够在NLTK中设置StanfordParser,这是到目前为止的代码。

from nltk.parse.stanford import StanfordDependencyParser

stanford_parser_dir = 'stanford-parser/'

eng_model_path = stanford_parser_dir + "stanford-parser-models/edu/stanford/nlp/models/lexparser/englishRNN.ser.gz"

my_path_to_models_jar = stanford_parser_dir + "stanford-parser-3.5.2-models.jar"

my_path_to_jar = stanford_parser_dir + "stanford-parser.jar"

如何在python中使用CoreNLP的共指解析?

回答:

如@Igor所述,您可以尝试在此GitHub存储库中实现的python包装器:https : //github.com/dasmith/stanford-corenlp-

python

此仓库包含两个主要文件:corenlp.py client.py

执行以下更改以使coreNLP正常工作:

  1. 在corenlp.py中,更改corenlp文件夹的路径。设置本地计算机包含corenlp文件夹的路径,并在corenlp.py的第144行中添加路径

if not corenlp_path: corenlp_path = <path to the corenlp file>

  1. “ corenlp.py”中的jar文件版本号不同。根据您拥有的corenlp版本进行设置。在corenlp.py的第135行更改它

jars = ["stanford-corenlp-3.4.1.jar", "stanford-corenlp-3.4.1-models.jar",

"joda-time.jar", "xom.jar", "jollyday.jar"]

在此,将3.4.1替换为您下载的jar版本。

  1. 运行命令:

python corenlp.py

这将启动服务器

  1. 现在运行主客户端程序

python client.py

这提供了一个字典,您可以使用’coref’作为键来访问coref:

例如:John是一名计算机科学家。他喜欢编码。

{

"coref": [[[["a Computer Scientist", 0, 4, 2, 5], ["John", 0, 0, 0, 1]], [["He", 1, 0, 0, 1], ["John", 0, 0, 0, 1]]]]

}

我已经在Ubuntu 16.04上尝试过了。使用Java版本7或8。

以上是 使用Stanford coreNLP在python nltk中进行共指解析 的全部内容, 来源链接: utcz.com/qa/403485.html

回到顶部