Stanford CaleNLP提供了共指消解as mentioned here,也this thread,this,为爪哇的实现提供了一些见解。
但是,我使用的是python和nltk,我不知道如何在我的python代码中使用corenlp的共引用解析功能。我已经能够在NLTK中设置斯坦福德解析器,这是迄今为止我的代码。
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 repo中实现的python包装器:https://github.com/dasmith/stanford-corenlp-python
本报告包含两个主要文件:
科伦普.py
客户.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:
例如:约翰是一名计算机科学家。他喜欢编码。
{
"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。
关于python - 使用Stanford coreNLP的python nltk中的共指消解,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/39410282/