我需要一个示例代码来帮助我通过 apache tika 工具包检测波斯语网页。
LanguageIdentifier identifier = new LanguageIdentifier("فارسی");
String language = identifier.getLanguage();
我已经下载了 apache.tika jar 文件并将它们添加到类路径中。但是此代码为波斯语提供了错误,但它适用于英语。如何将波斯语添加到 tika 的语言标识符包中?
我需要一个示例代码来帮助我通过 apache tika 工具包检测波斯语网页。
LanguageIdentifier identifier = new LanguageIdentifier("فارسی");
String language = identifier.getLanguage();
我已经下载了 apache.tika jar 文件并将它们添加到类路径中。但是此代码为波斯语提供了错误,但它适用于英语。如何将波斯语添加到 tika 的语言标识符包中?
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 识别另一种语言,你必须先创建一个语言配置文件。
为此,需要执行以下步骤:
查找适合您语言的文本语料库。我找到了Hamshahri 系列。这应该足够了。下载语料库或其中的一部分,并从 XML 中创建一个纯文本文件。
为语言标识符创建一个 ngram 文件。这可以使用TikaCLI来完成:
java -jar tika-app-1.0.jar --create-profile=fa -eUTF-8 fa-corpus.txt
这将是一个名为的文件fa.ngp
,其中包含 n-gram。
配置 Tika 使其能够识别新语言。要么以编程方式使用LanguageIdentifier.initProfiles()
或将具有名称的属性文件tika.language.override.properties
放入类路径中。确保 ngram 文件也在类路径中。
如果您现在运行 Tika,它应该会正确检测您的语言。
更新:详细说明了创建语言配置文件所需的步骤。