NLTK 中的类型化依赖解析 Python
Typed Dependency Parsing in NLTK Python
我有一句话
"I shot an elephant in my sleep"
句子的类型依赖是
nsubj(shot-2, I-1)
det(elephant-4, an-3)
dobj(shot-2, elephant-4)
prep(shot-2, in-5)
poss(sleep-7, my-6)
pobj(in-5, sleep-7)
如何在 Python 中使用 NLTK(最好,但 anthing 很好)使用 Stanford Parser(或任何解析器)获取类型化依赖项?
注意 - 我知道它与 this question 非常相似。但是没有好的答案。
Stanford 解析器有一个 python 包装器,您可以获取它 here。
它会给你句子的依存树。
编辑:
我在这里假设您启动了服务器 here。我还假设你已经安装了 jsonrpclib。
以下代码将生成您想要的结果:
import json
import jsonrpclib
class StanfordNLP:
def __init__(self, port_number=8080):
self.server = jsonrpclib.Server("http://localhost:%d" % port_number)
def parse(self, text):
return json.loads(self.server.parse(text))
nlp = StanfordNLP()
sentence = 'I shot an elephant in my sleep'
result = nlp.parse(sentence)
result['sentences'][0]['indexeddependencies']
>>>
['root', 'ROOT-0', 'shot-2']
['nsubj', 'shot-2', 'I-1']
['det', 'elephant-4', 'an-3']
['dobj', 'shot-2', 'elephant-4']
['poss', 'sleep-7', 'my-6']
['prep_in', 'shot-2', 'sleep-7']
编辑 2:
现在,Stanford 解析器有一个 HTTP API。因此,不再需要 python 包装器。
我有一句话
"I shot an elephant in my sleep"
句子的类型依赖是
nsubj(shot-2, I-1)
det(elephant-4, an-3)
dobj(shot-2, elephant-4)
prep(shot-2, in-5)
poss(sleep-7, my-6)
pobj(in-5, sleep-7)
如何在 Python 中使用 NLTK(最好,但 anthing 很好)使用 Stanford Parser(或任何解析器)获取类型化依赖项?
注意 - 我知道它与 this question 非常相似。但是没有好的答案。
Stanford 解析器有一个 python 包装器,您可以获取它 here。
它会给你句子的依存树。
编辑:
我在这里假设您启动了服务器 here。我还假设你已经安装了 jsonrpclib。
以下代码将生成您想要的结果:
import json
import jsonrpclib
class StanfordNLP:
def __init__(self, port_number=8080):
self.server = jsonrpclib.Server("http://localhost:%d" % port_number)
def parse(self, text):
return json.loads(self.server.parse(text))
nlp = StanfordNLP()
sentence = 'I shot an elephant in my sleep'
result = nlp.parse(sentence)
result['sentences'][0]['indexeddependencies']
>>>
['root', 'ROOT-0', 'shot-2']
['nsubj', 'shot-2', 'I-1']
['det', 'elephant-4', 'an-3']
['dobj', 'shot-2', 'elephant-4']
['poss', 'sleep-7', 'my-6']
['prep_in', 'shot-2', 'sleep-7']
编辑 2:
现在,Stanford 解析器有一个 HTTP API。因此,不再需要 python 包装器。