ali*_*ian 5 java apache language-detection apache-tika farsi
我需要一个示例代码来帮助我通过apache tika工具包检测波斯语语言网页.
LanguageIdentifier identifier = new LanguageIdentifier("?????");
String language = identifier.getLanguage();
Run Code Online (Sandbox Code Playgroud)
我下载了apache.tika jar文件并将它们添加到类路径中.但是这段代码给出了波斯语的错误,但它适用于英语.如何将Tarsi添加到tika的languageIdentifier包中?
Tika尚未提供Farsi语言的语言档案.从版本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
Run Code Online (Sandbox Code Playgroud)
在您的示例中,输入被误检测为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,它应该正确检测您的语言.
更新:详细说明创建语言配置文件所需的步骤.