如何通过tika检测波斯语网页?

时间:2012-01-28 11:30:10

标签: java apache apache-tika language-detection farsi

我需要一个示例代码来帮助我通过apache tika工具包检测波斯语网页。

 LanguageIdentifier identifier = new LanguageIdentifier("فارسی");
        String language = identifier.getLanguage();

我已经下载了apache.tika jar文件并将它们添加到类路径中。但是这段代码给出了波斯语的错误,但它适用于英语。 如何将Farsi添加到tika的languageIdentifier包中?

1 个答案:

答案 0 :(得分:9)

Tika尚未提供Farsi语言的语言档案。从版本1.0 27 languages are supported开箱即用:

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的内部作品的详细信息,请参阅source code

默认情况下无法识别波斯语(Persian, ISO 639-1 2-letter code fa)。 如果您希望Tika识别另一种语言,您必须先创建语言档案。

为此,需要执行以下步骤:

  1. 查找您所用语言的文本语料库。我找到了Hamshahri Collection。这应该足够了。下载语料库或其中的一部分,并使用XML创建纯文本文件。

  2. 为语言标识符创建ngram文件。这可以使用TikaCLI

    完成

    java -jar tika-app-1.0.jar --create-profile=fa -eUTF-8 fa-corpus.txt 这将是一个名为fa.ngp的文件,其中包含n-gram。

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

  4. 如果您现在运行Tika,它应该正确检测您的语言。

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