2012-11-13 76 views
3

我正在嘗試使用斯坦福NLP工具提取日期(8/11/2012)表單文本。從文本中提取日期

這是a link!爲這個工具的演示

你可以幫助我如何訓練分類器以確定日期(8/11/2012)。

我試着用訓練數據

伍德豪斯PERS 2012年8月18日日期 ,O- 帥Ø

但對於相同的測試數據不起作用。

回答

6

使用NLP工具從文本中提取日期似乎是矯枉過正,如果這是你所要完成的一切。您應該考慮其他選項,如簡單的Java正則表達式(例如here)。

如果您正在做的事情需要使用斯坦福大學NLP工具的更多功能,請查看SUTime註釋器。他們的demo page將讓你感受它的行爲。確保檢查選項Read rules from file,你會看到你的日期得到註釋。

用法:

SUTime annotations are provided automatically with the StanfordCoreNLP pipeline by including the ner annotator. 
2

你當然可以培養基於CRF-NER承認的日期和時間。您可以通過運行提供的english.muc.7class.distsim.crf.ser.gz模型來查看該示例。有關NER系統的培訓,請參閱the FAQ。但請注意,我們的時間/日期識別主要工具現在是基於正則表達式的:SUTime。您也可以爲其他應用程序編寫SUTime的規則。請參閱SUTime page以及該頁面上TokensRegex的鏈接。

0
在sutime/english.sutime.txt線319

,有美國幾個模式標記:

{ ruleType: "time", pattern: /yyyy-?MM-?dd-?'T'HH(:?mm(:?ss([.,]S{1,3})?)?)?(Z)?/ } 
{ ruleType: "time", pattern: /yyyy-MM-dd/ } 
{ ruleType: "time", pattern: /'T'HH(:?mm(:?ss(.,)?)?)?(Z)?/ } 
// Tokenizer "sometimes adds extra slash 
{ ruleType: "time", pattern: /yyyy\?/MM\?/dd/ } 
{ ruleType: "time", pattern: /MM?\?/dd?\?/(yyyy|yy)/ } 
{ ruleType: "time", pattern: /MM?-dd?-(yyyy|yy)/ } 
{ ruleType: "time", pattern: /HH?:mm(:ss)?/ } 
{ ruleType: "time", pattern: /yyyy-MM/ } 

只需要添加一些ruleTypes,得到它所需的順序