【问题标题】:Reading Bengali with python Natural Language Toolkit使用 python 自然语言工具包阅读孟加拉语
【发布时间】:2017-07-31 19:44:07
【问题描述】:

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

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

从快照中您可以看到问题所在。问题是 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')

输出是:

输出应该是 'একবার' 而不是 'একব' 'র'。可以做什么??提前致谢。

【问题讨论】:

  • 试试RegexpTokenizer("[\u0980-\u09FF']+")(不确定你是否还需要u前缀)。
  • @WiktorStribiżew 非常感谢。它奏效了。
  • 作为答案添加了指向具有孟加拉语 Unicode 字符范围的参考网站的链接。

标签: python nlp text-processing


【解决方案1】:

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

使用

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

撇号可以按原样保留在字符类中。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-11-13
    • 1970-01-01
    • 2018-01-18
    • 1970-01-01
    • 2014-07-20
    • 1970-01-01
    • 2017-09-06
    相关资源
    最近更新 更多