如何检测tika的波斯语网页?

我需要一个示例代码来帮助我通过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识别另一种语言,你必须先创建一个语言配置文件。

为此,以下步骤是必要的:

  1. 为您的语言找到文本语料库。 我找到了Hamshahri收藏 。 这应该是足够的。 下载语料库或其中的一部分,并从XML中创建一个纯文本文件。

  2. 为语言标识创建一个ngram文件。 这可以使用TikaCLI完成:

    java -jar tika-app-1.0.jar --create-profile=fa -eUTF-8 fa-corpus.txt这个包含n-gram的文件叫做fa.ngp

  3. 配置Tika,以便识别新的语言。 以编程方式使用LanguageIdentifier.initProfiles()或者将名为tika.language.override.properties的属性文件放入类路径中。 确保ngram文件也在类路径中。

如果你现在运行Tika,它应该正确地检测你的语言。

更新:详细介绍创建语言配置文件所需的步骤。