2013-05-29 15 views
0

我想使用TextRazor Python庫來對一段文本進行一些語義分析。如何使用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庫中工作得很好。

謝謝。

回答

3

analyze需要一個unicode對象作爲參數,從你的代碼片段和AttributeError看起來你正在傳遞一個函數。如果您直接撥打analyze與您的內容,它應該工作。

client.analyze(u"bla bla bla") 

我上TextRazor工作,如果這不利於隨時發送代碼的較大部分[email protected],我們就可以在深一點挖。

-1

在研究了TextRazor的問題後,他們提出了一個解決方案,它與文本定義無關。 顯然,當你分析文本時,你應該首先執行「set_do_cleanup_HTML(False)」,所以TextRazor引擎不會嘗試清理空的HTML字符串。因此,代碼應該如下所示:

client.set_do_cleanup_HTML(假)

響應1 = client.analyze(文本())

最佳。

+0

-1因爲您的問題中的錯誤與textrazor無關。請參閱我的答案以獲得解釋 – jjwchoy

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")