一种无监督的依赖性分析器。
Usurper的Python项目详细描述
简介
这是一个无监督依赖解析器的实现 S_gaard(2012)描述。解析器是独立于语言的,并且 不需要任何培训数据。
解析器分两个阶段操作。首先,它构造了一个 使用
生成的图形结构用于使用 pagerank算法(brin和page,1998)。在第二阶段, 解析器从排列的单词列表中构造一个依赖树。如果 部分语音信息可用,解析器可以利用 通用依赖规则(Naseem等人,2010)。
[1] | The list of function words is extracted from the whole input text by applying a variant of Mihalcea and Tarau’s (2004) TextRank algorithm. |
[2] | The parser relies on a universal part-of-speech tagset (Petrov et al., 2012). The language-dependent input tags are mapped to that universal tagset using the mappings provided here. |
安装
篡夺者可以使用pip轻松安装:
pip install Usurper
用法
使用usrpr可执行文件
可以将解析器用作命令中的独立程序 行。输入文本必须是CoNLL-X format格式,或者是简单格式,每个 句子之间的空行。如果你的数据是 部分语音标记,标记应通过 标签:
Many JJ people NNS need VBP our PRP$ help NN . . Please UH continue VB our PRP$ important JJ partnership NN . .
一般使用信息,包括支持的列表 部分语音标记集,可通过-h选项获得:
usrpr -h
如果你想使用完整的语法分析器,也就是说你有一部分语音 标记了输入数据,您希望使用通用依赖关系规则, 您可以这样调用解析器:
usrpr -t <tag-set> [--conll] <file>
如果不想使用通用依赖关系规则,可以使用 --no-rules选项:
usrpr --no-rules -t <tag-set> [--conll] <file>
如果您的数据没有标记,或者您想忽略标记,只需省略 -t选项(在这种情况下,不可能使用 通用依赖规则):
usrpr [--conll] <file>
注意解析器试图自动识别函数 话。如果输入文件太小,则无法可靠地执行此操作 可能会影响解析器的性能。
使用模块
您可以很容易地将解析器合并到您自己的python中 项目。您只需导入usurper.soegaard:
from usurper import soegaard parse = soegaard.parse_sentence(tokens, function_words, no_rules, tags, tagset)
parse_sentence函数返回一个networkxDiGraph对象。你可以转换它 使用^{tt7}进入嵌套列表表示$ 函数位于usurper.utils.conll。
函数的docstring提供了有关 需要的参数:
parse_sentence(tokens, function_words, no_rules, tags=[], tagset=None) Parse sentence using the algorithm by Søgaard (2012). Args: tokens: list of tokens function_words: set of function words no_rules: boolean; true if universal dependency rules should not be used tags: list of tags, if available; the nth element of tags should be the part-of-speech tag associated with the nth element of tokens tagset: string identifying one of the supported tagsets Returns: A networkx DiGraph representing the dependency structure.
评估
这是一个表,给出了未标记的附件分数(忽略 标点符号)。大多数的测试数据 语言可从CoNLL-X Shared Task website获得。表演 英语在宾夕法尼亚州treebank的第23节进行了评估。
Language | no tags | no rules | full parser |
---|---|---|---|
Danish | 30.04 | 37.66 | 38.20 |
English | 20.41 | 40.74 | 40.94 |
German | 18.59 | 33.93 | 39.24 |
Portuguese | 19.86 | 44.86 | 44.50 |
Slovene | 19.70 | 31.41 | 31.39 |
Swedish | 20.75 | 44.69 | 49.21 |
参考文献
- 布林,谢尔盖,劳伦斯佩奇(1998):“大尺度的解剖学 超文本网络搜索引擎〉,in:计算机网络和isdn 系统30/1-7107-117。PDF。
- 米哈尔恰,拉达,保罗·塔劳(2004):“文本等级:将秩序带入 在:2004年经验方法会议记录 在自然语言处理中(EMNLP'04)。美国公民权利委员会,404–411。PDF。
- Naseem,Tahira,Harr Chen,Regina Barzilay,Mark Johnson(2010年): “运用普遍的语言知识指导语法归纳。” 在:2010年经验方法会议记录 自然语言处理(EMNLP'10)。美国公民自由联盟,1234-1244。PDF。
- 彼得罗夫、斯拉夫、迪潘詹·达斯、瑞安·麦克唐纳(2012):“通用 在:第八届国际会议录 语言资源和评价会议(LREC'12) 2089-2096年。PDF。
- S_gaard,Anders(2012):“无监督的依赖解析 培训。“在:自然语言工程18/21987-203。Link。
推荐PyPI第三方库
- 热门话题
- 带有服务类安卓的java altbeacon java在OpenXava免费版本中可以创建多个用户吗? java如何决定定义变量“private”? java为什么GetMethodID()对不存在的方法不返回NULL? java Get JComboBox项字符串表示法 java如何在ifs之间设置限制? java Android错误:IllegalStateException JavaSpring4MVC语言环境已更改,但JSP对此没有响应 java Netbeans:如何构建。jar文件随附外部文件。jar库? Spring Petclinic项目Maven编译时出现java错误 声明Java数组增量元素的快速方法 java无法使用相对xpath找到元素 javascript无法更改标题,也无法在操作栏上显示图标 java标签不是一个接一个地动态创建的 java如何使用ThymeLeaf将对象的属性绑定到隐藏字段? java从EJB无状态会话bean调用CDI会话范围的生产者方法 java为什么num+=array[i]与for循环中的num=num+array[i]的工作方式不同 使用jsonsimple实现jQuery UI自动完成的java JSON格式 JavaFaceletsUI:重复标记中断JSF表单验证