2017-04-17 74 views
1

我正在嘗試使用Apache OpenNLP識別文本中的日期實體。我創建的生成使用日期的範圍在下面的格式的標記一點java程序:Apache OpenNLP名稱實體發現者識別錯誤的單詞

<START:date> {dd/MM/yyyy} <END> . 

每個標籤是在由OpenNLP定義的格式的句子。

我生成了約400k條目並訓練了模型。訓練結束後,我嘗試通過命令行使用TokenNameFinder來驗證一切是否正常,但對於每個單詞,我鍵入查找器將其標識爲已過期的實體。例如,當我輸入:

today is 17/04/2017 

什麼,我得到的是:

<START:date> today <END> <START:date> is <END> <START:date> 17/04/2017 <END> 

我想這可能是我沒有提供任何字除了日期,所以我試圖用一個隨機字符串在標籤之前和之後,但訓練時間是永久的。

任何人都可以告訴我,如果這是我的訓練數據集或我必須做的其他事情的問題?

+1

你能提供一小段訓練數據嗎?另外,複製命令行或您用於培訓的代碼。韓國社交協會。 – wcolen

回答

2

要訓練機器學習Name Finder模型,您需要儘可能接近運行時數據的訓練語料庫。如果你的日期表現良好,並且你不需要機器學習,你可以嘗試一個基於RegexNameFinder的正則表達式。

如果培訓是永久性的,無論是太大還是很少有空行來標記文檔的結尾。有關詳細信息,請參閱Named Entity Recognition文檔。

+0

+1將RegexNameFinder用於日期(由於它們「行爲良好」的格式:)。另外,你可以看看使用https://github.com/HeidelTime/heideltime – Igor

相關問題