使用python Natural Language Toolkit阅读孟加拉语

时间:2017-03-10 12:46:25

标签: python nlp text-processing

我想在NLTK的CategorizedPlainCorpusReader中阅读孟加拉语文本。对于gedit文本编辑器中孟加拉语文本文件的快照:

enter image description here

sublime文本编辑器中的文件快照:

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

输出应该是'একবার'而不是'একব' 'র&#39 ;.可以做些什么?提前谢谢。

1 个答案:

答案 0 :(得分:4)

您需要为Bengali characters提供Unicode范围。

使用

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

撇号可以保留在角色类中。