1. 程式人生 > >基於攜程遊記的出行領域順承事件圖譜專案

基於攜程遊記的出行領域順承事件圖譜專案

EvolutionaryEventGraph

專案地址:https://github.com/liuhuanyong/SequentialEventExtration
Evolutionary Event Graph based on Travel note crawled from XieCheng,基於50W攜程出行攻略的順承事件抽取與事件圖譜構建.

專案來源

目前,以謂詞性短語作為事件表示的方法方興未艾,針對特定領域,構建起特定領域的順承事件圖譜,可以支援事件推理,基於事件的意圖識別與推薦等多項運用.
本專案將從出行領域展開進行實驗.

專案構成

本專案由兩個部分的組成,具體包括語料的獲取以及基於語料的事件挖掘兩個部分,具體專案目錄包括:
news_spider:基於scrapy的遊記採集指令碼
event_graph:基於依存句法與順承模式的順承事件抽取腳
image:遊記順承事件圖譜效果圖

一 出行領域語料的獲取

  1. 語料來源:攜程出行攻略

  2. 時間範圍:2018年7月14日之前

  3. 採集方式:使用scrapy編寫爬蟲指令碼進行抓取

  4. 採集規模:共採集505767篇,量級50W

  5. 採集指令碼目錄:news_spider/travelspider

  6. 語料舉例:

         107330 一路向南——第二篇相逢南通(自駕遊) - 遊記攻略【攜程攻略】
         107331 彩雲之南—雲上的蜜月之旅 - 麗江遊記攻略【攜程攻略】
         107332 甘肅遊記之瑪曲郎木寺 - 碌曲遊記攻略【攜程攻略】
         107333 拍客白沙行 - 舟山遊記攻略【攜程攻略】
         107334 九華山-沐浴在佛恩下的XXX - 九華山遊記攻略【攜程攻略】
         107335 墾丁夏季活動 - 墾丁遊記攻略【攜程攻略】
         107336 行走在臺灣(向隅版)---世外桃源之我們的家(九份民宿) - 九份遊記攻略【攜程攻略】
         107337 衛賽節馬來西亞行 - 馬六甲州遊記攻略【攜程攻略】
         107338 藍天下的嘉峪關 - 嘉峪關遊記攻略【攜程攻略】
         107339 人生一定要登一次雪山---都日峰 - 四川遊記攻略【攜程攻略】
         107340 八月,青海湖不遠 - 海北遊記攻略【攜程攻略】
         107341 #冬季北京# 帝都極冷天去首富的酒店避避寒 - 北京遊記攻略【攜程攻略】
         107342 聖地西藏 - 青海湖遊記攻略【攜程攻略】
         107343 孩子,媽媽想讓你見識更多的繁華世界 - 深圳遊記攻略【攜程攻略】
         107344 頂級奢華,捨我其誰! - 澳門遊記攻略【攜程攻略】
         107345 旅行、不需要走遠!美景就在身邊 - 江門遊記攻略【攜程攻略】
         107346 安安靜靜,不言不語都是好風景 - 廈門遊記攻略【攜程攻略】
         107347 邂逅則天故里 行走美麗利州 體驗師帶你看中國女兒節 - 廣元遊記攻略【攜程攻略】
         107348 臺灣,可以這樣玩--15日環島自由行全記錄 - 臺北遊記攻略【攜程攻略】
         107349 讓我記憶深刻的廈門--詳細版 - 廈門遊記攻略【攜程攻略】
         107350 上海地鐵站 - 上海遊記攻略【攜程攻略】
         107351 逃離霧霾,帶著“馬拉多納”去騰衝 - 騰衝遊記攻略【攜程攻略】
         107352 在我心上用力地開一 - 四川遊記攻略【攜程攻略】
         107353 冬季到鄱陽湖邊的餘干縣看鳥,多張美圖記錄環湖遊全過程 - 餘干遊記攻略【攜程攻略】
         107354 2014.十一瀋陽,本溪老邊溝,楓葉大道,丹東,不走重複路,古蹟,景色5日窮遊 - 瀋陽遊記攻略【攜程攻略】
         107355 庫不齊老牛灣之戶外行走 - 庫布齊沙漠遊記攻略【攜程攻略】
    

二 基於出行語料的順承事件圖譜構建

1, 順承事件的抽取

event_extract.py, 思想步驟如下:

  1. 輸入遊記文字
  2. 對遊記進行長句切分
  3. 基於構造的順承關係模板,進行順承前後部分提取, 轉入4)
  4. 對3)得到的部分進行短句處理,轉入5)
  5. 對4)得到的短句進行謂詞性短語提取
  6. 對5)得到的謂詞性短語向上匯聚,得到一個長句的謂詞性短語有序集合
  7. 對6)步驟得到的謂詞性短語集合,以滑窗方式構造順承關係事件對
  8. 對步驟7)得到的順承事件對進行彙總,最終得到順承事件庫
  9. 對8)進行事件進行整合,去除過低頻次的事件,構造標準順承關係庫

2, 順承事件圖譜的展示

10)使用VIS外掛進行順承關係圖譜構建與展示, event_graph.py
11)由於VIS作為一個封裝的JS庫,因此生成的順承圖譜在專案中暫時設定到500,見travel_event_graph.html

三 順承關係圖譜效果

1) 總體圖譜樣式

以500個順承事件, 進行順承事件圖譜展示,結果是一張事件網路,這是一個大的順承關係圖譜,由眾多小子圖譜構成
image

2) 去麗江子圖譜

該子圖譜圍繞"去麗江旅遊"這一出行事件為核心形成的事件群:
image

3) 飛機路線子圖譜

該子圖譜顯示了選擇飛機進行出行形成的事件序列
image

4) 火車路線子圖譜

該子圖譜顯示了選擇火車進行出行形成的事件序列
image

5) 訂酒店事件圖譜

該子圖譜描述了一個"預定酒店不愉快事件",從預定到失望到總結,在這條順承事件連結串列現出來
image

6) 做飯事件圖譜

該子圖譜表示了一個"做飯"場景下的順承事件,感覺也很有意思
image

總結

  1. 該專案只是一個基於50W文章領域語料,運用簡單提取方式形成的順承關係圖譜demo,還有很多不足
  2. 該專案目前是形成了事件節點為326781個, 順承事件對為543580條,分別為30W和50W的圖譜規模
  3. 對於謂詞性短語進行事件表示是事件表示的一種方式,本方法只採用VOB關係進行提取,這種方式還有待改進
  4. 以3)得到的結果中,還存在大量噪聲,這一方面準確率受依存句法的準確性限制,另一方面該依存關係可能還相對單一,不夠準確
  5. 在構造順承事件序列的方法,本專案採用的是長句為單位下的滑窗方式進行構造,這個方式還有待改進
  6. 基於目前形成的順承關係圖譜還有待於進一步挖掘,可以在此基礎上完成更多有價值的資訊挖掘

Question?

send mail to [email protected]
專案地址:https://github.com/liuhuanyong/SequentialEventExtration
If any question about the project or me ,see https://liuhuanyong.github.io/