2

I want to use the NLTK chunker for Tamil language (which is an Indic language). However, it says that it doesn't support Unicode because it uses the 'pre' module for regular expressions.

Unresolved Issues

If we use the re module for regular expressions, Python's regular expression engine generates "maximum recursion depth exceeded" errors when processing very large texts, even for regular expressions that should not require any recursion. We therefore use the pre module instead. But note that pre does not include Unicode support, so this module will not work with unicode strings.

Any suggestion for a work around or another way to accomplish it?

4

2 回答 2

2

您可以使用LTRCShallow Parser for Tamil Language。

您可以在此处查看在线演示。

于 2016-07-28T19:04:30.350 回答
2

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

一旦你有了一个带注释的语料库,请仔细阅读 NLTK 书的第 6 章和第 7 章,尤其是第 7.3 节,开发和评估分块器。. 虽然第 7 章从 nltk 的正则表达式分块器开始,但继续阅读,您将看到如何构建一个不依赖于 nltk 的基于正则表达式的分块引擎的“序列分类器”。(第 6 章对此至关重要,所以不要跳过它)。

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

于 2016-07-31T15:08:30.073 回答