2012-01-28 2 views
5

apache tikaツールキットでfarsi言語のWebページを検出するのに役立つサンプルコードが必要です。tikaでfarsiのWebページを検出するにはどうしたらいいですか?

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

私はapache.tika jarファイルをダウンロードしてクラスパスに追加しました。しかし、このコードは、ペルシア語では誤りですが、英語ではうまくいきます。 tarsのlanguageIdentifierパッケージにFarsiを追加するにはどうすればよいですか?

+0

どのような種類のエラー?スタックトレースを投稿してください。 – AlexR

+0

それは驚くべきことですが、今は何のエラーもありませんが、問題は誤って検出されることです。ペルシア語(ペルシャ語)言語の代わりにリトアニア語を意味する "lt"を返します – aliakbarian

+0

私の質問はtikaがどのように言語を検出するかです。どのファイルで?たとえば、どの言語のストップワードを使用する場合は、どこにファルシ語のストップワードを追加できますか? – aliakbarian

答えて

9

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に別の言語を認識させるには、まず言語プロファイルを作成する必要があります。このため

は、以下の手順が必要です

  1. は、あなたの言語のテキストコーパスを検索します。私はHamshahri Collectionを見つけました。これで十分であるはずです。コーパスやその一部をダウンロードし、XMLからプレーンテキストファイルを作成します。

  2. 言語識別子のngramファイルを作成します。これは、TikaCLIを使用して実行できます。

    java -jar tika-app-1.0.jar --create-profile=fa -eUTF-8 fa-corpus.txt これは、nグラムを含むfa.ngpというファイルになります。

  3. 新しい言語を認識できるようにTikaを設定します。これはプログラムでLanguageIdentifier.initProfiles()を使用するか、名前がtika.language.override.propertiesのプロパティファイルをクラスパスに挿入します。 ngramファイルもクラスパスにあることを確認してください。

Tikaを実行すると、言語が正しく検出されます。

更新: 言語プロファイルを作成するために必要な手順を詳しく説明します。

+0

私はリンクに従いますが、私はどのように言語プロファイルを作成できますか分かりません。手伝って頂けますか?実際には – aliakbarian

+0

です。私は以下のリンクで言語のプロファイルを作成することについて私の質問をします:http://stackoverflow.com/questions/6227565/adding-language-profile-to-apache-tika – aliakbarian

+0

十分なテキストコーパスを見つけた後、どうすればよいですか? – aliakbarian

関連する問題