機器學習保險行業問答開放資料集: 1. 語料介紹
目前機器學習,尤其是因為深度學習的一波小高潮,大家對使用深度學習處理文字任務,興趣濃厚,資料是特徵提取的天花板,特徵提取是深度學習的天花板。在缺少語料的情況下,評價演算法和研究都很難著手,在調研了眾多語料之後,深知高質量的開放語料十分稀少,比如百度開放的Web QA 1.0 語料,包含的問題也就是四萬餘條,而分成不同的垂直領域,就根本不能用於FAQ模型的訓練,這就是我做了這個語料的原因 - 支援常見問題集模型的演算法評測和研究。我將通過兩篇文章來分享這個語料:(1) 語料介紹, 介紹語料的組成; (2) 使用案例,介紹一個簡單使用該語料進行深度學習訓練的案例,可以作為 baseline。
該語料庫包含從網站Insurance Library 收集的問題和答案。
據我們所知,這是保險領域首個開放的QA語料庫:
該語料庫的內容由現實世界的使用者提出,高質量的答案由具有深度領域知識的專業人士提供。 所以這是一個具有真正價值的語料,而不是玩具。
在上述論文中,語料庫用於答覆選擇任務。 另一方面,這種語料庫的其他用法也是可能的。 例如,通過閱讀理解答案,觀察學習等自主學習,使系統能夠最終拿出自己的看不見的問題的答案。
資料集分為兩個部分“問答語料”和“問答對語料”。問答語料是從原始英文資料翻譯過來,未經其他處理的。問答對語料是基於問答語料,又做了分詞和去標去停,新增label。所以,"問答對語料"可以直接對接機器學習任務。如果對於資料格式不滿意或者對分詞效果不滿意,可以直接對"問答語料"使用其他方法進行處理,獲得可以用於訓練模型的資料。
歡迎任何進一步增加此資料集的想法。
快速開始
語料地址
在Python環境中,可以使用pip安裝
相容py2, py3
pip install --upgrade insuranceqa_data
問答語料
問題 | 答案 | 詞彙(英語) | |
訓練 | 12,889 | 21,325 | 107,889 |
驗證 | 2,000 | 3354 | 16,931 |
測試 | 2,000 | 3308 | 16,815 |
每條資料包括問題的中文,英文,答案的正例,答案的負例。案的正例至少1項,基本上在1-5條,都是正確答案。答案的負例有200條,負例根據問題使用檢索的方式建立,所以和問題是相關的,但卻不是正確答案。
{
"INDEX": {
"zh": "中文",
"en": "英文",
"domain": "保險種類",
"answers": [""] # 答案正例列表
"negatives": [""] # 答案負例列表
},
more ...
}
訓練:corpus/pool/train.json.gz
驗證:corpus/pool/valid.json.gz
測試:corpus/pool/test.json.gz
答案:corpus/pool/answers.json 一共有 27,413 個回答,資料格式為 json:
{
"INDEX": {
"zh": "中文",
"en": "英文"
},
more ...
}
中英文對照檔案
問答對
檔案: corpus/pool/train.txt.gz, corpus/pool/valid.txt.gz, corpus/pool/test.txt.gz.
格式: INDEX ++$++ 保險種類 ++$++ 中文 ++$++ 英文
答案
檔案: corpus/pool/answers.txt.gz
格式: INDEX ++$++ 中文 ++$++ 英文
語料庫使用gzip進行壓縮以減小體積,可以使用zmore, zless, zcat, zgrep等命令訪問資料。
zmore pool/test.txt.gz
載入資料
import insuranceqa_data as insuranceqa
train_data = insuranceqa.load_pool_train()
test_data = insuranceqa.load_pool_test()
valid_data = insuranceqa.load_pool_valid()# valid_data, test_data and train_data share the same properties
for x in train_data:
print('index %s value: %s ++$++ %s ++$++ %s' % \
(x, d[x]['zh'], d[x]['en'], d[x]['answers'], d[x]['negatives']))answers_data = insuranceqa.load_pool_answers()
for x in answers_data:
print('index %s: %s ++$++ %s' % (x, d[x]['zh'], d[x]['en']))
問答對語料
使用"問答語料",還需要做很多工作才能進入機器學習的模型,比如分詞,去停用詞,去標點符號,新增label標記。所以,在"問答語料"的基礎上,還可以繼續處理,但是在分詞等任務中,可以藉助不同分詞工具,這點對於模型訓練而言是有影響的。為了使資料能快速可用,insuranceqa-corpus-zh提供了一個使用HanLP分詞和去標,去停,新增label的資料集,這個資料集完全是基於"問答語料"。
import insuranceqa_data as insuranceqa
train_data = insuranceqa.load_pairs_train()
test_data = insuranceqa.load_pairs_test()
valid_data = insuranceqa.load_pairs_valid()# valid_data, test_data and train_data share the same properties
for x in test_data:
print('index %s value: %s ++$++ %s ++$++ %s' % \
(x['qid'], x['question'], x['utterance'], x['label']))vocab_data = insuranceqa.load_pairs_vocab()
vocab_data['word2id']['UNKNOWN']
vocab_data['id2word'][0]
vocab_data['tf']
vocab_data['total']
vocab_data包含word2id(dict, 從word到id), id2word(dict, 從id到word),tf(dict, 詞頻統計)和total(單詞總數)。 其中,未登入詞的標識為UNKNOWN,未登入詞的id為0。
train_data, test_data 和 valid_data 的資料格式一樣。qid 是問題Id,question 是問題,utterance 是回覆,label 如果是 [1,0] 代表回覆是正確答案,[0,1] 代表回覆不是正確答案,所以 utterance 包含了正例和負例的資料。每個問題含有10個負例和1個正例。
train_data含有問題12,889條,資料 141779條,正例:負例 = 1:10 test_data含有問題2,000條,資料 22000條,正例:負例 = 1:10 valid_data含有問題2,000條,資料 22000條,正例:負例 = 1:10
句子長度:
max len of valid question : 31, average: 5(max)
max len of valid utterance: 878(max), average: 165(max)
max len of test question : 33, average: 5
max len of test utterance: 878, average: 161
max len of train question : 42(max), average: 5
max len of train utterance: 878, average: 162
vocab size: 24997
可將本語料庫和以下開原始碼配合使用
DeepQA2: https://github.com/Samurais/DeepQA2
InsuranceQA TensorFlow: https://github.com/l11x0m7/InsuranceQA
Chatbot Retrieval: https://github.com/dennybritz/chatbot-retrieval
宣告
宣告1 : insuranceqa-corpus-zh
本資料集使用翻譯 insuranceQA而生成,程式碼釋出證照 GPL 3.0。資料僅限於研究用途,如果在釋出的任何媒體、期刊、雜誌或部落格等內容時,必須註明引用和地址。
InsuranceQA Corpus, Hai Liang Wang, https://github.com/Samurais/insuranceqa-corpus-zh, 07 27, 2017
任何基於insuranceqa-corpus衍生的資料也需要開放並需要宣告和“宣告1”和“宣告2”一致的內容。
宣告2 : insuranceQA
此資料集僅作為研究目的提供。如果您使用這些資料發表任何內容,請引用我們的論文:
Applying Deep Learning to Answer Selection: A Study and An Open Task。Minwei Feng, Bing Xiang, Michael R. Glass, Lidan Wang, Bowen Zhou @ 2015
相關文章
- 機器學習保險行業問答開放資料集: 2. 使用案例機器學習行業
- MNIST資料集介紹
- Cora 資料集介紹
- nuPlan資料集介紹
- 「火鍋問答」是啥?面向自然語言和多步推理問題,新型問答資料集HotpotQA面世
- Oracle資料庫字符集介紹Oracle資料庫
- 技術問答集錦(九)資料庫系列資料庫
- 【轉載】保險行業電銷(TM)系統介紹行業
- [大資料][機器學習]之Model Card(模型卡片)介紹大資料機器學習模型
- 1. VUE介紹Vue
- 【從零開始學爬蟲】採集丁香醫生新冠問答資料爬蟲
- 開放資料 中國地方政府開放資料現狀、問題與難點
- [專業術語]資料庫叢集資料庫
- 人工智慧大資料,公開的海量資料集下載,ImageNet資料集下載,資料探勘機器學習資料集下載人工智慧大資料機器學習
- 資料庫介紹資料庫
- 資料集簡介
- 大資料 (巨量資料集合(IT行業術語))大資料行業
- 33個機器學習常用資料集機器學習
- 機器學習筆記——資料集分割機器學習筆記
- 分散式機器學習常用資料集分散式機器學習
- 最強資料集集合:50個最佳機器學習公共資料集機器學習
- 保險行業需要一個安全的大資料傳輸行業大資料
- 吳恩達機器學習作業程式碼和資料集吳恩達機器學習
- 機器學習筆記 - Pascal VOC資料集使用FCN語義分割機器學習筆記
- 張量tensor:機器學習的基本資料結構介紹 - Santiago機器學習資料結構Go
- 網路安全公開資料集Maple-IDS,惡意流量檢測資料集開放使用!
- 友盟開放日搶先看:資料解讀行業趨勢行業
- 影象識別及處理相關資料集介紹
- 深入淺出介紹TensorFlow資料集和估算器
- 基於TableStore的資料採集分析系統介紹
- IndexedDB資料庫介紹Index資料庫
- MongoDB資料模型介紹MongoDB模型
- json資料介紹JSON
- 2021金融保險行業資料洩露大事件行業事件
- 資料開放與共享:德國工業4.0中的大資料大資料
- 機器學習之資料集的劃分機器學習
- 資料庫介紹--初識資料庫資料庫
- 資料倉儲—資料庫—Oracle 介紹資料庫Oracle