首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Python:在脚本中打开树格

Python:在脚本中打开树格
EN

Stack Overflow用户
提问于 2014-05-28 14:59:32
回答 2查看 1.5K关注 0票数 2

如何在python中使用treetagger

我有一个句子,treetagger应该分析它。在normal命令行中,我可以执行以下操作:

代码语言:javascript
复制
echo 'This is a test!' | cmd/tree-tagger-english-utf8  

但是我如何在python脚本中做到这一点呢?

上述命令的输出如下:

代码语言:javascript
复制
echo 'This is a test!' | cmd/tree-tagger-english
    reading parameters ...
    tagging ...
     finished.
This    DT  this
is  VBZ be
a   DT  a
test    NN  test
!   SENT    !

在我的脚本中,我需要标记,即"DT","VBZ","DT","NN",“已发送”,我想把它们保存在一个列表中。稍后我需要这些标记将它们插入到字符串中。

(谢谢你的帮助!)

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-05-28 15:34:06

查看子过程模块:下面是一个简单的示例..。

代码语言:javascript
复制
$ cat test.py 
#!/usr/bin/python
import os
import sys
import subprocess

list_of_lists = []

process = subprocess.Popen(["cmd/tree-tagger-english-utf8"], stdout=subprocess.PIPE)
(output, err) = process.communicate(sys.stdin)
count = 0
for line in output.split('\n'):
    # condition to skip the first 3 lines
    if count<3:
        count=count+1
    else:
        new_list = [elem for elem in line.split()]
        list_of_lists.append(new_list)
exit_code = process.wait()
print list_of_lists
$ 
票数 1
EN

Stack Overflow用户

发布于 2015-10-15 23:41:11

您还可以使用miotto的treetagger-python模块,它为TreeTagger提供了一个非常容易使用的接口.

只需确保定义一个新的TREETAGGER环境变量,以便Python模块知道在哪里找到TreeTagger可执行文件。其余的看起来都是这样的:

代码语言:javascript
复制
>>> from treetagger import TreeTagger
>>> tt_en = TreeTagger(encoding='utf-8', language='english')
>>> from pprint import pprint
>>> pprint(tt_en.tag('Does this thing even work?'))
[[u'Does', u'VBZ', u'do'],
 [u'this', u'DT', u'this'],
 [u'thing', u'NN', u'thing'],
 [u'even', u'RB', u'even'],
 [u'work', u'VB', u'work'],
 [u'?', u'SENT', u'?']]

这是我写的一篇博客文章,详细介绍了安装和测试,如果你需要更多的建议。

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

https://stackoverflow.com/questions/23915166

复制
相关文章

相似问题

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