为泰米尔语语言

时间:2016-07-28 18:38:16

标签: python unicode nltk chunking indic

我想将NLTK chunker用于泰米尔语(这是一种印度语)。 However, it says that it doesn't support Unicode because it uses the 'pre' module for regular expressions.

  

未解决的问题

     

如果我们将re模块用于正则表达式,那么Python是常规的   表达式引擎生成"超出最大递归深度"错误   处理非常大的文本时,即使是正则表达式   不应该要求任何递归。因此,我们使用pre模块   代替。但请注意pre不包括Unicode支持,所以   此模块不适用于unicode字符串。

有关于解决方法的任何建议或以其他方式完成它吗?

2 个答案:

答案 0 :(得分:2)

您可以将LTRCShallow Parser用于泰米尔语。

您可以查看在线演示here

答案 1 :(得分:2)

Chunkers是特定于语言的,因此无论如何你需要为Tamil训练一个。当然,如果您对现有的解决方案感到满意(我不知道是否有任何解决方案,例如现在删除的答案中的链接是否有用),您可以在这里停止阅读。如果没有,你可以训练你自己,但你需要一个用你想要识别的块注释的语料库:也许你是在NP块之后(通常的情况),但也许它是别的东西。

获得带注释的语料库后,请仔细查看NLTK书籍的第6章和第7章,尤其是section 7.3, Developing and evaluating chunkers.。虽然第7章从nltk的regexp chunker开始,继续阅读,你会看到如何构建一个不依赖于nltk的基于regexp的分块引擎的“序列分类器”。 (Chapter 6对此至关重要,所以不要跳过它。)

这不是一项微不足道的任务:您需要了解分类器方法,将各个部分组合在一起,可能将您的语料库转换为IOB format,最后选择能够提供令人满意的性能的功能。但它非常简单,并且可以针对您有注释语料库的任何语言或分块任务执行。唯一的开放式部分是思考上下文线索,您可以转换为功能以帮助分类器正确决定,并进行实验直到您找到一个好的组合。 (从好的方面来说,它比纯正的基于正则表达式的解决方案更强大,即使对于ascii文本也是如此)。