1

使用 python 和 NLTK 我想将帮助结果保存到一个变量中。

x = nltk.help.upenn_tagset('RB')

例如。

x变量被赋值为 None。控制台会打印帮助函数的结果,但不会将其保存到 var x。

4

2 回答 2

1

查看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上公认的答案所做的,除了它使用可重用的类包装器 - 这是一个一次性的解决方案。

于 2013-02-28T17:21:17.073 回答
0

获得标签解释输出的最简单方法是加载整个标签集,然后仅提取所需标签的解释。

tags = nltk.data.load('help/tagsets/upenn_tagset.pickle')

tags['RB']
于 2022-01-20T20:10:35.770 回答