使用Stanford coreNLP在python nltk中进行共指解析
斯坦福CoreNLP提供了指代消解这里提到,也是这个线程,这提供了有关其在Java实现的一些见解。
但是,我正在使用python和NLTK,我不确定如何在我的python代码中使用CoreNLP的共指解析功能。我已经能够在NLTK中设置StanfordParser,这是到目前为止的代码。
from nltk.parse.stanford import StanfordDependencyParserstanford_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正常工作:
- 在corenlp.py中,更改corenlp文件夹的路径。设置本地计算机包含corenlp文件夹的路径,并在corenlp.py的第144行中添加路径
if not corenlp_path: corenlp_path = <path to the corenlp file>
- “ 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版本。
- 运行命令:
python corenlp.py
这将启动服务器
- 现在运行主客户端程序
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