我需要一个示例代码来帮助我通过apache tika工具包来检测farsi语言网页。
LanguageIdentifier identifier = new LanguageIdentifier("فارسی"); String language = identifier.getLanguage();
我已经下载apache.tika jar文件并将它们添加到类path。 但这段代码给波斯语言错误,但它适用于英语。 我怎样才能把波斯语添加到tika的languageIdentifier包中?
Tika没有提供波斯语言的语言资料。 从版本1.0开始,支持27种语言 :
languages=be,ca,da,de,eo,et,el,en,es,fi,fr,gl,hu,is,it,lt,nl,no,pl,pt,ro,ru,sk,sl,sv,th,uk
在您的示例中,输入被错误地检测为li
(立陶宛),距离为0.41,高于确定性阈值0.022。 有关LanguageIdentifier
内部工作的更多信息,请参阅源代码 。
波斯语( 波斯语,ISO 639-1双字母代码fa
)在默认情况下不被识别。 如果你想Tika识别另一种语言,你必须先创建一个语言配置文件。
为此,以下步骤是必要的:
为您的语言找到文本语料库。 我找到了Hamshahri收藏 。 这应该是足够的。 下载语料库或其中的一部分,并从XML中创建一个纯文本文件。
为语言标识创建一个ngram文件。 这可以使用TikaCLI完成:
java -jar tika-app-1.0.jar --create-profile=fa -eUTF-8 fa-corpus.txt
这个包含n-gram的文件叫做fa.ngp
。
配置Tika,以便识别新的语言。 以编程方式使用LanguageIdentifier.initProfiles()
或者将名为tika.language.override.properties
的属性文件放入类路径中。 确保ngram文件也在类路径中。
如果你现在运行Tika,它应该正确地检测你的语言。
更新:详细介绍创建语言配置文件所需的步骤。