Python 如何使用;通用依赖性,增强型“;nltk中斯坦福NLP的解析器?

Python 如何使用;通用依赖性,增强型“;nltk中斯坦福NLP的解析器?,python,parsing,nlp,nltk,stanford-nlp,Python,Parsing,Nlp,Nltk,Stanford Nlp,我能够在NLTK中使用斯坦福大学的universal dependencies parser,但是有没有办法在NLTK中使用universal dependencies,enhanced?如图所示 谢谢我的方法是绕过NLTK提供的接口,直接查看它们的实现 查找源代码/nltk/parse/corenlp.py 在GenericCoreNLPParser类中,有一个名为api\u call的方法。当您构造依赖项解析器对象时。您可以调用此方法来获取原始JSON对象 您将获得一个带有键的JSON对象:

我能够在NLTK中使用斯坦福大学的universal dependencies parser,但是有没有办法在NLTK中使用universal dependencies,enhanced?如图所示


谢谢

我的方法是绕过NLTK提供的接口,直接查看它们的实现

查找源代码
/nltk/parse/corenlp.py

GenericCoreNLPParser
类中,有一个名为
api\u call
的方法。当您构造依赖项解析器对象时。您可以调用此方法来获取原始JSON对象

您将获得一个带有键的JSON对象:
基本依赖项
增强依赖项
增强依赖项
令牌
。当得到结果时。我们可以编写一个简单的函数,将结果解析为与调用其接口相同的格式

下面是一些片段

def parse_句子(self,句子:str)->对象:
"""
使用用户定义的属性分析给定句子的句子
:类型属性:对象
:类型句子:str
比萨饼定价过高
return:NLP服务器中的Json对象。
"""
返回self.get_parser().api_调用(句子)[“句子”][0]
一旦你得到结果


def create_parsing_元组(self,response:object,parse_type:str)->list:
"""
根据原始解析结果,按parse_类型创建依赖元组。
解析类型选项:基本依赖项、增强依赖项、增强依赖项
:参数响应:
:参数解析类型:
:返回:
"""
元组列表=[]
对于响应[parse_type]中的依赖项:
如果依赖项['dep']=='ROOT':
持续
调控器=(依赖项['govergorloss'],响应['tokens'][依赖项['governor']-1]['pos'])
关系=依赖关系['dep']
依赖=(依赖项['dependentGloss'],响应['tokens'][依赖项['dependent']-1]['pos'])
tuple_list.append((调控器、关系、依赖))
返回[元组列表]
在他们的源代码中,他们将把JSON对象转换为树结构,这在大多数情况下更为通用


希望我的帖子能有所帮助

可能是@MartinBroadhurst的重复,我已经看到了这一点,但在给定的解决方案中肯定有更简单的方法。因为通过简单地在nltk中配置“通用依赖项”,而不是使用复杂的解决方案,就可以使用“通用依赖项”。