Tikaには、現在のペルシア語の言語プロファイルはありません。バージョン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
あなたの例では、入力は、0.022の確実性の閾値を上回る0.41の距離でli
(リトアニア)として誤検出されています。 LanguageIdentifier
の内部の詳細については、source codeを参照してください。
デフォルトでは、ペルシア語(Persian, ISO 639-1 2-letter code fa
)は認識されません。 Tikaに別の言語を認識させるには、まず言語プロファイルを作成する必要があります。このため
は、以下の手順が必要です
は、あなたの言語のテキストコーパスを検索します。私はHamshahri Collectionを見つけました。これで十分であるはずです。コーパスやその一部をダウンロードし、XMLからプレーンテキストファイルを作成します。
言語識別子のngramファイルを作成します。これは、TikaCLIを使用して実行できます。
java -jar tika-app-1.0.jar --create-profile=fa -eUTF-8 fa-corpus.txt
これは、nグラムを含むfa.ngp
というファイルになります。
新しい言語を認識できるようにTikaを設定します。これはプログラムでLanguageIdentifier.initProfiles()
を使用するか、名前がtika.language.override.properties
のプロパティファイルをクラスパスに挿入します。 ngramファイルもクラスパスにあることを確認してください。
Tikaを実行すると、言語が正しく検出されます。
更新: 言語プロファイルを作成するために必要な手順を詳しく説明します。
どのような種類のエラー?スタックトレースを投稿してください。 – AlexR
それは驚くべきことですが、今は何のエラーもありませんが、問題は誤って検出されることです。ペルシア語(ペルシャ語)言語の代わりにリトアニア語を意味する "lt"を返します – aliakbarian
私の質問はtikaがどのように言語を検出するかです。どのファイルで?たとえば、どの言語のストップワードを使用する場合は、どこにファルシ語のストップワードを追加できますか? – aliakbarian