- 最近在做指代消解的任務,目前才處理完資料部分,确實有些繁瑣,是以記錄
- 準備用spanbert做的指代消解,是以該代碼裡的
檔案: github代碼.sh
資料擷取
- 擷取資料部分也需要耐心,參考以下部落格(可以搭配看)
- 部落格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等加入組織後就可以下到
🐢 2. 将圖中7個檔案放在一個目錄下,解壓即可。
- 前6個conll解壓後生成conll-2012檔案夾
- 最後一個生成ontonotes-release-5.0檔案夾
- 到此才剛下載下傳好資料
- setup_training.sh部分
🐢 3. 執行setup_training.sh腳本
-
空格sh
空格./setup_training.sh
空格ontonotes-release-5.0路徑
conll-2012路徑
- 隻要下圖部分即可(下面部分也先去掉),因為這部分需要在python2運作,或者改成python3(我比較懶,文末有轉換方法),不然會報錯的 我自己的例子:
-
和setup_training.sh
在同一級目錄中,轉到該檔案目錄,執行:conll-2012 ontonotes-release-5.0
空格sh
空格./setup_training.sh
空格./ontonotes-release-5.0
./
-
🐢 4. Setup(代碼中markdowm檔案的步驟)
- 以下這部分按順序執行,建議在linux中操作,主要涉及到.so動态庫,windows不太好操作。
- 配置環境:
pip install -r requirements.txt
-
(我是 export data_dir=./)export data_dir=</path/to/data_dir>
-
: This builds the custom kernels(我是 bash ./setup_all.sh)./setup_all.sh
- 現在的
内容如下:setup_training.sh
-
(我是./setup_training.sh <ontonotes/path/ontonotes-release-5.0> $data_dir
空格bash
空格./setup_training.sh
空格./ontonotes-release-5.0/
)./
🐢5. 最後會在
目錄生成如下json檔案data_dir
- 英文:訓練集2802個文檔,驗證集343個文檔,測試集348個文檔
- 中文:訓練集1810個文檔,驗證集252個文檔,測試集218個文檔
- 注:生成中文json需要修改的地方
-
setup_training.sh
-
minimize.py
-
- 注:生成中文json需要修改的地方
-
- 到此資料處理完畢,不足之處還請指出,我将及時更正。
- 補充:If you are using Python 3.X, you have to edit the
fileconll-2012/v3/scripts/skeleton2conll.py
- Change
toexcept InvalidSexprException, e:
except InvalidSexprException as e
- Change all
toprint
print()
- Change