首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >NLTK Python中的类型化依赖解析

NLTK Python中的类型化依赖解析
EN

Stack Overflow用户
提问于 2015-03-14 14:22:22
回答 1查看 2.8K关注 0票数 0

我有句话

代码语言:javascript
复制
"I shot an elephant in my sleep"

这个句子的类型化依赖是

代码语言:javascript
复制
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 (最好是,但任何东西都可以)使用Stanford (或任何解析器)获得类型化依赖?

注意-我知道它非常类似于这个问题。但没有好的答案。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-03-14 15:12:36

斯坦福解析器有一个python包装器,您可以获得它这里

它会给你句子的依赖树。

编辑:

我在这里假设您启动了一台服务器,正如这里所说的。我还假设您已经安装了jsonrpclib。

下面的代码将生成所需的内容:

代码语言:javascript
复制
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']

EDIT2:

现在,斯坦福解析器有一个HTTP API。因此,不再需要python包装器。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29049974

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档