如何使用TextRazor Python库来分析文本

时间:2013-05-29 23:19:39

标签: python semantics

我正在尝试使用TextRazor Python库来对一段文本进行一些语义分析。

我的文字定义如下:

def text():
    return r"""Bla Bla Bla"""

当我在上面的tet上运行上面库中的“analyze”方法时,我收到以下错误:

post_data = [("text", text.encode("utf-8")),
AttributeError: 'function' object has no attribute 'encode'

有谁知道我应该如何定义我的文本,以便TextRazor Python库可以读取它?顺便说一句,相同的文本可以与OpenCalais Python库一起使用。

感谢。

3 个答案:

答案 0 :(得分:3)

analyze将一个unicode对象作为参数从您的代码段和AttributeError看起来像是在传递一个函数。如果您直接使用您的内容致电analyze,它应该有效。

 client.analyze(u"bla bla bla") 

我在TextRazor上工作,如果这对你发送更大的代码部分没有任何帮助,我们将能够深入挖掘。

答案 1 :(得分:2)

该错误与textrazor无关。这是因为你在函数对象而不是字符串对象上调用encode

def text():
    return r"""Bla Bla Bla"""

# INCORRECT: calling encode on the function object.
text.encode("utf-8")

# CORRECT: calling encode on the string returned by the function
text().encode("utf-8")

答案 2 :(得分:-1)

在使用TextRazor调查问题之后,他们提出了一个解决方案,它与文本定义无关。 显然,在分析文本时,首先应该执行“set_do_cleanup_HTML(False)”,因此TextRazor引擎不会尝试清理空的HTML字符串。因此,代码应如下所示:

client.set_do_cleanup_HTML(假)

response1 = client.analyze(text())

最佳。