2017-03-10 62 views
2

我想閱讀NLTK的CategorizedPlainCorpusReader中的孟加拉語文本。對於這種快照我孟加拉語文本文件在gedit文本編輯器:文件在崇高的文本編輯器用Python自然語言工具包閱讀孟加拉語

enter image description here

快照:

enter image description here

從快照可以看到這個問題。問題在於Unicode組合問題(虛線環是一個死牌)。這裏是讀課文的代碼段:

>>> path = os.path.expanduser('~/nltk_data/corpora/Bangla') 
>>> from nltk.corpus.reader import CategorizedPlaintextCorpusReader 
>>> from nltk import RegexpTokenizer 
>>> word_tokenize = RegexpTokenizer("[\w']+") 
>>> reader = CategorizedPlaintextCorpusReader(path,r'.*\.txt',cat_pattern=r'(.*)_.*',word_tokenizer=word_tokenize) 
>>> reader.sents(categories='pos') 

輸出是:

enter image description here

輸出應該是 'একবার' 而不是'একব 'র'。可以做些什麼?提前致謝。

+1

嘗試'RegexpTokenizer(「[\ u0980- \ u09FF'] +」)'(不知道你是否也需要'u'前綴)。 –

+0

@WiktorStribiżew非常感謝。有效。 – Shauqi

+0

作爲答案添加到帶有孟加拉Unicode字符範圍的參考網站的鏈接中。 –

回答

2

您需要提供Bengali characters的Unicode範圍。

使用

word_tokenize = RegexpTokenizer("[\u0980-\u09FF']+") 

撇號可以留在字符類原樣。