天天看點

(2020)指代消解ontoNotes_Release_5.0處理詳細流程資料處理

  • 最近在做指代消解的任務,目前才處理完資料部分,确實有些繁瑣,是以記錄
  • 準備用spanbert做的指代消解,是以該代碼裡的

    .sh

    檔案: github代碼

資料擷取

  • 擷取資料部分也需要耐心,參考以下部落格(可以搭配看)
    • 部落格1
    • 部落格2
  • 注意事項:
    • 在擷取ontoNotes 5.0資料時,注冊完LDC賬号後,立馬給LDC官方發郵件,告知你比較急,希望将管理者資訊告訴你或者直接将你拉入組織。
    • 如果LDC告知你管理者資訊,立馬聯系管理者。

資料處理

  • 以spanbert中的setup_training.sh腳本為例,我之前是在win10上處理的,最好在Linux上處理(别擔心我也是linux小白)
  • 下方兩個連接配接是官方的處理教程(參考即可)
    • 資料處理教程1
    • 資料處理教程2

步驟:

🐢 1.在 資料處理教程1 中下載下傳(都在該頁面中):

  • 訓練資料:conll-2012-train.v4.tar.gz
  • 驗證資料:conll-2012-development.v4.tar.gz
  • 測試資料:conll-2012-test-official.v9.tar.gz 、conll-2012-test-supplementary.v9.tar.gz、conll-2012-test-key.tar.gz
  • 處理腳本:conll-2012-scripts.v3.tar.gz
  • ontonotes-release-5.0等加入組織後就可以下到
    (2020)指代消解ontoNotes_Release_5.0處理詳細流程資料處理

🐢 2. 将圖中7個檔案放在一個目錄下,解壓即可。

  • 前6個conll解壓後生成conll-2012檔案夾
  • 最後一個生成ontonotes-release-5.0檔案夾
  • 到此才剛下載下傳好資料
  • setup_training.sh部分
    (2020)指代消解ontoNotes_Release_5.0處理詳細流程資料處理

🐢 3. 執行setup_training.sh腳本

  • sh

    空格

    ./setup_training.sh

    空格

    ontonotes-release-5.0路徑

    空格

    conll-2012路徑

  • 隻要下圖部分即可(下面部分也先去掉),因為這部分需要在python2運作,或者改成python3(我比較懶,文末有轉換方法),不然會報錯的
    (2020)指代消解ontoNotes_Release_5.0處理詳細流程資料處理
    我自己的例子:
    • setup_training.sh

      conll-2012 ontonotes-release-5.0

      在同一級目錄中,轉到該檔案目錄,執行:

      sh

      空格

      ./setup_training.sh

      空格

      ./ontonotes-release-5.0

      空格

      ./

      (2020)指代消解ontoNotes_Release_5.0處理詳細流程資料處理

🐢 4. Setup(代碼中markdowm檔案的步驟)

  • 以下這部分按順序執行,建議在linux中操作,主要涉及到.so動态庫,windows不太好操作。
  • 配置環境:

    pip install -r requirements.txt

  • export data_dir=</path/to/data_dir>

    (我是 export data_dir=./)
  • ./setup_all.sh

    : This builds the custom kernels(我是 bash ./setup_all.sh)
  • 現在的

    setup_training.sh

    内容如下:
    (2020)指代消解ontoNotes_Release_5.0處理詳細流程資料處理
    • ./setup_training.sh <ontonotes/path/ontonotes-release-5.0> $data_dir

      (我是

      bash

      空格

      ./setup_training.sh

      空格

      ./ontonotes-release-5.0/

      空格

      ./

      )

    🐢5. 最後會在

    data_dir

    目錄生成如下json檔案

    (2020)指代消解ontoNotes_Release_5.0處理詳細流程資料處理
    • 英文:訓練集2802個文檔,驗證集343個文檔,測試集348個文檔
    • 中文:訓練集1810個文檔,驗證集252個文檔,測試集218個文檔
      • 注:生成中文json需要修改的地方
        • setup_training.sh

          (2020)指代消解ontoNotes_Release_5.0處理詳細流程資料處理
        • minimize.py

          (2020)指代消解ontoNotes_Release_5.0處理詳細流程資料處理
  • 到此資料處理完畢,不足之處還請指出,我将及時更正。
  • 補充:If you are using Python 3.X, you have to edit the

    conll-2012/v3/scripts/skeleton2conll.py

    file
    • Change

      except InvalidSexprException, e:

      to

      except InvalidSexprException as e

    • Change all

      print

      to

      print()