1

我想要做的是解析原始自然文本並找到描述日期的所有短語。如何在自然文本中查找對日期的引用?

我有一個相當大的語料庫與所有引用標記的日期:

I met him <date>yesterday</date>. 
Roger Zelazny was born <date>in 1937</date> 
He'll have a hell of a hangover <date>tomorrow morning</date> 

我不想解釋日期短語,只是找到它們。它們是日期的事實是無關緊要的(在現實生活中,它們不是日期,但我不想讓你知道細節),基本上它只是一組開放式的可能值。這些值本身的語法可以近似爲上下文無關,但手動構建相當複雜,而且越來越複雜,越來越難以避免誤報。

我知道這是一個很遠的鏡頭,所以我並不期望在那裏存在一個開箱即用的解決方案,但是我可能使用哪些技術或研究?

+0

查看問題http://stackoverflow.com/questions/9294926/how-does-apple-find-dates-times-and-addresses-in-emails。這被稱爲命名實體提取,作爲信息提取中的子任務。 @reseter提供了鏈接。機器學習和基於語法的方法都能很好地工作。 – 2012-03-13 13:42:47

+0

看看https://duckling.wit.ai/ – sdream 2016-07-23 10:23:25

+0

@sdream謝謝,這看起來很有希望,我會試一試。 – biziclop 2016-07-23 10:42:00

回答

6

學術界和工業界使用的一種通用方法是基於條件隨機場。基本上,它是一種特殊的概率模型,您首先用標記的數據進行訓練,然後在給定的文本中標記某些類型的實體。

你甚至可以嘗試從斯坦福大學自然語言處理組的系統之一:最後一個Stanford Named Entity Recognizer

當你下載該工具,請注意有幾個模式,你需要:包括與

Stanford NER是爲CoNLL訓練的4級模型, 是針對MUC訓練的7級模型,以及針對這兩個類集合的交集的兩個 數據集訓練的3級模型。

3類地點,人員,組織

4類地點,人,組織,其它

7級的時間,地點,組織,人,財,百分比,日期

更新。您可以嘗試使用該工具online here。選擇muc.7class.distsim.crf.ser.gz分類器並嘗試一些帶日期的文本。它似乎不承認「昨天」,但它承認「20世紀」,例如。最後,這是CRF培訓的一個問題。


Stanford NER screenshot

+0

謝謝,這看起來很有希望。 – biziclop 2012-03-12 23:49:03

4

記住控釋肥是相當緩慢的培養,需要人類註釋的數據,所以做你自己是不容易的。閱讀this的答案,作爲人們在實踐中經常這樣做的另一個例子 - 與當前的學術研究沒有太大共同之處。

+0

每一種算法都需要一些人工註釋的數據,以......開始......如果計算機可以對自己進行分類,則不需要這些算法中的任何一種=) – 2012-03-13 00:05:40

+0

但是,不同的算法在訓練性能和適用性方面具有不同的特徵,數據格式和錯誤率,所以+1是一個很好的選擇來考慮。 – 2012-03-13 00:08:45

+0

這絕對是我會嘗試的,幸運的是我有成千上萬的手工註釋文件,所以有大量的數據可供玩耍。錯誤率可能會在不同的方法之間做出決定。 – biziclop 2012-03-13 00:43:13