使用 python 和 NLTK 我想将帮助结果保存到一个变量中。
x = nltk.help.upenn_tagset('RB')
例如。
x变量被赋值为 None。控制台会打印帮助函数的结果,但不会将其保存到 var x。
查看help.py的源文件,它使用该print
语句并且不返回任何内容。upenn_tagset
调用_format_tagset
,将所有内容传递给_print_entries
使用print
.
所以,我们真正想做的是重定向打印语句。
快速搜索,我们有https://stackoverflow.com/a/4110906/1210278 - replace sys.stdout
。
正如@mgilson 链接的问题中所指出的,这是对临时问题的永久解决方案。那么我们该怎么办?这应该很容易 - 只需将原件保存在某个地方即可。
import sys
print "Hello"
cons_out = sys.stdout
sys.stdout = (other writable handle you can get result of)
do_printing_function()
sys.stdout = cons_out
print "World!"
这实际上正是https://stackoverflow.com/a/6796752/1210278上公认的答案所做的,除了它使用可重用的类包装器 - 这是一个一次性的解决方案。
获得标签解释输出的最简单方法是加载整个标签集,然后仅提取所需标签的解释。
tags = nltk.data.load('help/tagsets/upenn_tagset.pickle')
tags['RB']