2015-02-10 46 views
2

我目前正在運行pyhton代碼,該代碼遍歷文本文件的每一行並解析日期行。如果它在行中找到日期,則該行將被複制到新的輸出文件。 我正在對100個文檔重複這個過程,最後我得到一個輸出文件,其中包含具有日期的行,如「2013,2014年8月,01-11-1987等」。提取與文本語料庫日期相關的日期和事件

問題在於它沒有提供與某些日期相關的事件的準確信息。

有沒有更優雅的方法來解決這個問題? 下面是在我試圖提取事件日期2010年12月

臺北的文件是各主要城市和縣之間的競爭最激烈的地方,根據當地雜誌昨天公佈的一項研究。 「全球視野」雜誌的研究評估了臺北在經濟,就業,教育,環境保護,公共安全,醫療保健和地方財政等各個類別中的排名第一。 就整體競爭力而言,臺北是第一位,其次是新竹市,嘉義市和新北。 全球視野評論說,臺北由中央政府資助的超過60年的特權開發項目在可預見的未來仍將不會受到挑戰。 臺北和新北是臺灣五大特別市鎮中的兩個,但另外三個 - 臺中,臺南和高雄 - 雖然比大多數其他地方政府擁有更多資源,但在研究中未能獲得好評。 臺中排名第七,臺南排名第十二,高雄排名第十九。 2010年12月,三個特別市鎮通過合併鄰縣而增長到現在的規模。但Global View表示,兼併削弱了他們的競爭力。 但是在經濟競爭力方面,所有五個特別市鎮都位居前十位。 底部是屏東縣農業局。但另外一個農業縣臺東,由於其犯罪率低居前10位,居第8位。

正如你可以看到,當我解析包含2010年12月行我真的不獲得任何有意義的信息 但實際上存在被合併nneighbouring縣的一個重大事件。 這不會被捕獲。因此,我需要知道是否有任何的算法/庫,它可以幫助我捕捉到已發生的特定日期

感謝

+0

你可以從你的輸入中發佈10行,包含一行,你可以和不能成功地解析?你正在尋找datetime.strftime(),這是在這裏記錄https://docs.python.org/3/library/datetime.html#strftime-strptime-behavior – 2015-02-10 17:37:41

+0

嗨湯米,謝謝你的回覆。我發佈了一個示例文本文件,當我解析包含日期的行時,我無法獲得任何信息。 – Sriram 2015-02-10 17:48:37

回答

6

我建議你嘗試一下NLTK庫蟒蛇事件。你可以在這裏得到它,這裏也有一些基本的手冊: http://www.nltk.org/book/ch07.html

它有大量的算法從文本中提取含義。它也有一些模塊允許你:

1)提取實體 2)提取日期 3)建立提取的實體和日期之間的關係。

我建議你要注意timex.py模塊NLTK庫: https://github.com/nltk/nltk_contrib/blob/master/nltk_contrib/timex.py

它主要是建立來標記的日期和時間的文本。

這裏是指導提取實體關係: http://www.nltk.org/howto/relextract.html

所以我beleive,你可以從文本中提取有趣的實體(如你所提到的情況下),你可以提取日期爲另一組實體,並使用NLTK可以建立這些提取的實體之間的關係。因此,你應該得到你需要的東西 - 什麼時候發生。

+0

@Sriram您是否在谷歌搜索「nlp event extraction」? – 404pio 2015-02-10 21:29:09

+0

嗨..沒有聽說過nlp事件..但我一定會嘗試.. @格言感謝烏爾的建議..肯定會看看它 – Sriram 2015-02-11 01:05:00