2016-05-09 22 views
1

我剛剛使用OpenNLP作爲一個小程序,我應該把段落分成幾個句子。OpenNLP - 即使用縮寫字典,訓練仍然需要縮寫嗎?

儘管在閱讀完一些文檔並完成測試用例之後我能完成任務,但我仍然不得不注意到,即使創建了所有縮寫(例如Yahoo!)一個自定義的縮寫字典,將它傳遞給SentenceDetectorFactory並用它來訓練SentenceDetectorME

我正在使用與此test case中使用的類似方法。

我在他們的文檔中找不到這種行爲,也找不到任何解釋。有什麼我失蹤?

編輯:我的問題

雖然我仍然在做一個培訓,我的工作在域設置爲合適的工作,我的測試數據從非結構化數據來從網頁的說明。有時它包含一個我的團隊成員都沒有預料到的縮寫。例如。

Company (acq. by another company) is a good company. 

在這種情況下,我們從來沒有認爲這個詞acquired發生像acq.這顯然是作爲一個縮寫。

現在我們可以添加acq.作爲縮寫,並讓模型繼續工作,如廣告所示,或者訓練模型。但是,即使在縮寫字典中添加之後,它也不會被當作縮寫來處理,而我們最終爲這個縮寫形成了訓練模型。這看起來像是一個偏離字典縮寫的概念。

我在NLTKPunktSentenceTokenizerlike this one嘗試了一個小例子,它完美的工作。

我不確定我是否有一套甚至有25,000個句子的訓練集,如果OpenNLP忽略縮寫詞典,它將有所作爲。

回答

2

您的培訓數據有多大?

,如文檔中說:

The training data should contain at least 15000 sentences to create a model which performs well. 

,可能是這個問題,應該給一些大的訓練數據進行模型!

+0

是的,Opennlp是不可預知的!我現在不知道該怎麼做! -.- 你是否通過[this](http://atigeo.com/blog/2016/article-title-2)? –

+0

是的,我已經有了。我會在創建至少15,000個培訓樣本時回覆。 –