0

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

我的文本定义如下:

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

当我在上述 tet 上运行上述库中的“分析”方法时,出现以下错误:

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

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

谢谢。

4

3 回答 3

3

analyze从您的代码片段中获取一个 unicode 对象作为参数,并且AttributeError看起来您正在传递一个函数。如果您analyze直接使用您的内容调用它应该可以工作。

 client.analyze(u"bla bla bla") 

我在 TextRazor 上工作,如果这没有帮助,请随时将您的代码的更大部分发送到 support@textrazor.com,我们将能够更深入地挖掘。

于 2013-05-30T17:06:44.977 回答
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")
于 2013-05-30T23:31:40.633 回答
-1

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

client.set_do_cleanup_HTML(False)

response1 = client.analyze(text())

最好的。

于 2013-05-30T22:08:59.877 回答