我正在尝试使用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库一起使用。
感谢。
答案 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())
最佳。