2014-01-26 18 views
2

我一直在與NLTK合作進行研究以標記化阿拉伯文本並分析它。問題是,當我這樣做代碼:當用python標記阿拉伯語文本時我得到奇怪的結果?

bsm = 'بسم الله الرحمن الريحم' 
wordsBsm = nltk.tokenize.wordpunct_tokenize(anas) 
print " ".join(wordsBsm) 

我得到這個我們放:

� � س� � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � 

我不知道如何解決這個問題!

+1

Python版本是什麼你使用什麼編碼? – BrenBarn

+0

你會想要傳遞一個Unicode字符串('bsm = u'...'')。如果您使用Windows,在控制檯/解釋器上使用Unicode做任何事情都會遇到很多障礙。 – bobince

回答

1

如果你正在使用Python 2.x的,那麼作爲bobince說,這應該工作:

bsm = u'بسم الله الرحمن الريحم' 

如果你正在使用Python 3.x的,那麼它應該工作而不必把'你在那。請參閱Python 2's Unicode HOWTO瞭解更多詳情。

0

此外,如果你正在閱讀從一個文件中的阿拉伯文字,你可以做這樣的事情:

unicode(open('arabic.txt', 'w').read(), 'utf-8') 

,或者根據您的文件的編碼:

unicode(open('arabic.txt', 'w').read(), 'Windows-1256')