用于将penn treebank树转换为通用依赖项和stanford依赖项的python接口

PyStanfordDependencies的Python项目详细描述


https://travis-ci.org/dmcc/PyStanfordDependencies.svg?branch=masterhttps://badge.fury.io/py/PyStanfordDependencies.pnghttps://coveralls.io/repos/dmcc/PyStanfordDependencies/badge.png?branch=master

用于将Penn Treebank树转换为Universal Dependencies的python接口 还有Stanford Dependencies

示例用法

首先获取一个StanfordDependencies实例 StanfordDependencies.get_instance()

>>> import StanfordDependencies
>>> sd = StanfordDependencies.get_instance(backend='subprocess')

get_instance()有几个选项。backendcan当前 是subprocessjpype(见下文)。如果你有一个存在的 Stanford CoreNLPStanford Parser jar文件,使用jar_filename参数指向 jar文件。否则,pystanford依赖项将下载一个jar文件 为您保存在本地(~/.local/share/pystanforddeps)。你 可以使用version标志请求特定版本,例如, version='3.4.1'。若要转换树,请使用convert_trees()convert_tree()方法(注意,默认情况下,convert_trees()可以 如果要进行批量转换,则速度要快得多)。这些回报 一个句子(一列Token对象)或一列句子(一列 分别为Token个对象的列表:

>>> sent = sd.convert_tree('(S1 (NP (DT some) (JJ blue) (NN moose)))')
>>> for token in sent:
...     print token
...
Token(index=1, form='some', cpos='DT', pos='DT', head=3, deprel='det')
Token(index=2, form='blue', cpos='JJ', pos='JJ', head=3, deprel='amod')
Token(index=3, form='moose', cpos='NN', pos='NN', head=0, deprel='root')

这告诉您moose是句子的开头,并且是 由some(具有det=限定关系)和^{tt19}修改$ (带有amod=形容词修饰关系)。^{tt14}上的字段$ 对象作为属性可读。有关其他选项,请参见文档 convert_tree()convert_trees()

可视化

如果你有asciitree 包,您可以使用更漂亮的ascii格式化程序:

>>> print sent.as_asciitree()
 moose [root]
  +-- some [det]
  +-- blue [amod]

如果您有Python2.7或更高版本,则可以使用Graphviz来呈现图形。您需要Python graphviz包来调用 as_dotgraph()

>>> dotgraph = sent.as_dotgraph()
>>> print dotgraph
digraph {
        0 [label=root]
        1 [label=some]
                3 -> 1 [label=det]
        2 [label=blue]
                3 -> 2 [label=amod]
        3 [label=moose]
                0 -> 3 [label=root]
}
>>> dotgraph.render('moose') # renders a PDF by default
'moose.pdf'
>>> dotgraph.format = 'svg'
>>> dotgraph.render('moose')
'moose.svg'

Pythonxdot 包提供交互式可视化:

>>> import xdot
>>> window = xdot.DotWindow()
>>> window.set_dotcode(dotgraph.source)

as_asciitree()as_dotgraph()都允许自定义。 有关其他选项,请参见文档。

后端

目前,PystanfordDependencies包括两个后端:

  • subprocess(在任何地方都可以使用java二进制文件,但更多 开销,因此使用convert_trees()的成批转换是 推荐)
  • jpype(需要jpype1, 比子进程后端更快,还包括对斯坦福的访问 Corenlp柠檬汁)

默认情况下,PystanFordDependencies将尝试使用^{TT6}$ 后端。如果jpype不可用或在启动时崩溃, PystanFordDependencies将回退到^{TT5}$,并发出警告。

通用依赖关系状态

PystanFordDependencies支持Universal Dependencies中的大多数功能(请参见issue #10了解 最新状态)。PystanFordDependencies输出与Universal匹配 在结构和依赖项标签方面的依赖项,但通用 POS标签和功能丢失。目前,PystanfordDependencies将 默认情况下输出通用依赖项(除非您使用的是Stanford Corenlp 3.5.1或更早版本)。

更多信息

根据Apache 2.0授权。

作者:大卫·麦克洛斯基(homepagecode

错误报告和功能请求:GitHub issue tracker

发布摘要

  • 0.3.1(2015.11.02):更好的折叠通用处理,错误修复
  • 0.3.0(2015.10.09):支持复制节点,更多输入检查/调试 帮助,例如convert.py程序
  • 0.2.0(2015.08.02):通用依赖项支持(大部分) python 3支持(完全),少量api更新
  • 0.1.7(2015.06.13)JPype的错误修复,处理版本不匹配 在IBM Java中
  • 0.1.6(2015.02.12):支持graphviz格式,corenlp 3.5.1, 更好的Windows可移植性
  • 0.1.5(2015.01.10):支持ascii树格式
  • 0.1.4(2015.01.07):修复CCprocessed支持
  • 0.1.3(2015.01.03):错误修复、工作服集成、重构
  • 0.1.2(2015.01.02):更好的conll结构、测试套件和travis ci 支持,错误修复
  • 0.1.1(2014.12.15):更多文档,更少错误
  • 0.1(2014.12.14):初始版本

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
ArrayList Java中的搜索字符串   另一个web应用程序的java访问会话   另一个应用程序中的活动和服务之间的java通信   java根据Json字符串类型将Json字符串转换为对象   eclipse如何解决java中的错误异常。lang.NoSuchMethodError:'java。字符串javax。摆动JOptionPane。showInputDialog(java.lang.String)'   线程“main”java中的安卓异常。lang.NoClassDefFoundError:org/codehaus/jackson/JsonParseException   java如何在安卓 emulator上显示Mat图像?使用NDK   Java在本地读取测试源文件,但在服务器上读取失败   java dowhile循环用于计算输入数字中的数字。故障排除代码   JAva初学者在编写获取成本的方法时遇到困难   java是shell游戏。我如何让物体移动,特别是在特定的曲线上,但顺序是随机的?   java如何区分两个同名的JButton   java为什么我在Spring Boot中需要一个接口?   java将文件路径插入数据库将删除\   使用InterfaceType初始化java对象   java如何部署一个分为Angular、Spring Boot和MySQL的项目?   java如何使用Symja解决不等式?