2012-11-22 86 views
3

我試圖存儲一個字符串,並用nltk在Python中標記它後。但我不明白爲什麼在標記它(它創建一個列表)後,我不能看到列表中的字符串.. 任何人都可以幫助我PLZ?希臘編碼在PYTHON

下面是代碼:

#a="Γεια σου" 
#b=nltk.word_tokenize(a) 
#b 
['\xc3\xe5\xe9\xe1', '\xf3\xef\xf5'] 

我只是希望能夠看到定期列表的內容..

THX提前

回答

0

你可以看到字符串。由於您的終端編碼設置,字符由轉義序列表示。配置您的終端接受輸入,並以UTF-8格式顯示輸出。

+0

而我怎樣才能配置它們?(我使用GUI python shell) 如果我這樣工作,我將能夠在這些列表上使用stemmers和pos-taggers被創建? – GreekBurner

+0

我不使用GUI外殼。請參閱文檔。 – Marcin

+1

不,字符(不是字符)由於終端編碼而不能用轉義序列表示;這只是他們的'repr'esentation。在正確配置的終端中觀察'u'ä''與'print(u'ä')'與'print(repr(u'ä'))'。 – phihag

5

您正在使用Python 2,其中前綴的引號表示一個字節,而不是一個字符字符串(如果你不知道的區別,read this)。或者切換到Python 3,其中該已被固定的,或與u前綴的所有字符串和打印的字符串(相對於示出其repr,它不同於在Python 2.x的):

>>> import nltk 
>>> a = u'Γεια σου' 
>>> b = nltk.word_tokenize(a) 
>>> print(u'\n'.join(b)) 
Γεια 
σου 
+0

我的問題不是「打印」解決方案...我只是想看到b的內容,所以我可以稍後使用pos-tag和stemming等語言功能處理它們。這種方式可能嗎? – GreekBurner

+0

@GreekBurner那麼,你所看到*是* b的內容,而不是你期望的表示。您可以切換到Python 3,其中「'Γειασου''的默認表示是'Γειασου'。 – phihag

+0

Thx但我使用的nltk包,只支持Python 2 .. :( 無論如何thx – GreekBurner