我想对泰米尔语(这是一种印度语)使用NLTK分块。但是,它说它不支持Unicode,因为它对正则表达式使用了“pre”模块。
未解决的问题 如果我们将
re模块用于正则表达式,则Python的正则表达式引擎在处理非常大的文本时会生成“最大递归深度超过”错误,甚至对于不需要任何递归的正则表达式也是如此。因此,我们使用pre模块代替。但是请注意,pre不包括Unicode支持,因此这个模块将不能处理unicode字符串。
对周围的工作有什么建议,或者用其他方法来完成它?
发布于 2016-07-31 15:08:30
积木是语言特有的,所以你需要为泰米尔人训练一个。当然,如果你对现成的解决方案感到满意(我不知道是否有,例如,现在删除的答案中的链接是否好),你可以停止在这里阅读。如果不是,你可以训练你自己,但是你需要一个用你想要识别的块来标注的语料库:也许你是为了NP块(通常情况下),但也许是别的什么东西。
一旦你有了一个注解的语料库,请仔细阅读NLTK书的第6章和第7章,特别是第7.3节,开发和评价砖块。。虽然第7章从nltk的regexp块开始,继续阅读,您将看到如何构建一个不依赖nltk的基于regexp的分块引擎的“序列分类器”。(第六章是必不可少的,所以不要跳过它)。
这不是一个简单的任务:您需要理解分类器方法,将这些片段组合在一起,可能会将您的语料库转换为IOB格式,最后选择能够给您带来满意性能的特性。但这是相当简单的,可以执行任何语言或分块的任务,你有注释的语料库。唯一开放的部分是想出上下文线索,你可以转换为功能,以帮助分类器正确决定,并进行实验,直到你找到一个好的组合。(另一方面,这是一种比纯粹基于regexp的解决方案更强大的方法,甚至对于ascii文本也是如此)。
发布于 2016-07-28 19:04:30
你可以在泰米尔语中使用猛虎组织的浅解析器。
你可以查看在线演示,这里。
https://stackoverflow.com/questions/38644313
复制相似问题