5

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

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

我已经下载了 apache.tika jar 文件并将它们添加到类路径中。但是此代码为波斯语提供了错误,但它适用于英语。如何将波斯语添加到 tika 的语言标识符包中?

4

1 回答 1

9

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 2 字母代码)。fa如果你想让 Tika 识别另一种语言,你必须先创建一个语言配置文件。

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

  1. 查找适合您语言的文本语料库。我找到了Hamshahri 系列。这应该足够了。下载语料库或其中的一部分,并从 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 文件也在类路径中。

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

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

于 2012-01-28T12:56:38.460 回答