2012-01-28 20 views
5

我需要一個示例代碼來幫助我通過apache tika工具包檢測farsi語言網頁。如何檢測tika的farsi網頁?

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

我已經下載apache.tika jar文件並將它們添加到類路徑中。但此代碼給波斯語言錯誤,但它適用於英語。 如何將波斯語添加到tika的languageIdentifier包中?

+0

什麼樣的錯誤?請發佈堆棧跟蹤。 – AlexR 2012-01-28 11:54:39

+0

這是令人驚訝的,但我現在沒有任何錯誤,但問題是,它檢測不正確。它返回「lt」,意思是立陶宛語,而不是波斯語(波斯語) – aliakbarian 2012-01-28 12:16:42

+0

我的問題是如何檢測語言tika?用什麼文件?例如,如果它使用任何語言的停用詞,我可以在哪裏添加波斯語的停用詞? – aliakbarian 2012-01-28 12:19:18

回答

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.41,這是上述的0.022確定性閾誤檢測爲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 這將一個名爲fa.ngp其中包含正克。

  3. 配置Tika以便識別新語言。以編程方式使用LanguageIdentifier.initProfiles()執行此操作,或者將名稱爲tika.language.override.properties的屬性文件放入類路徑中。確保ngram文件也在類路徑中。

如果您現在運行Tika,它應該正確檢測您的語言。

更新: 詳細介紹創建語言配置文件所需的步驟。

+0

我按照鏈接,但我不知道如何創建語言配置文件。你可以幫我嗎?實際上是 – aliakbarian 2012-01-28 13:13:03

+0

。我問我關於創建語言配置文件的鏈接如下:http://stackoverflow.com/questions/6227565/adding-language-profile-to-apache-tika – aliakbarian 2012-01-28 13:50:27

+0

找到足夠的文本語料庫後,我該怎麼辦? – aliakbarian 2012-01-28 13:51:17