คลังข้อมูลประกอบด้วยคำถามและคำตอบที่รวบรวมจากเว็บไซต์ Insurance Library
เท่าที่เราทราบ ณ ตอนที่ชุดข้อมูลนี้เผยแพร่ในปี 2017 ชุดข้อมูลนี้เป็นคลังข้อมูล QA แบบเปิดชุดแรกในสาขาประกันภัย:
เนื้อหาของคลังข้อมูลนี้สร้างขึ้นโดยผู้ใช้จริง และคำตอบคุณภาพสูงจัดทำโดยผู้เชี่ยวชาญที่มีความรู้เชิงลึกในโดเมน นี่คือคลังสมบัติที่แท้จริง ไม่ใช่ของเล่น
ในเอกสารข้างต้น คลังข้อมูลจะใช้สำหรับงานการเลือกคำตอบ ในทางกลับกัน การใช้คลังข้อมูลนี้ในลักษณะอื่นก็เป็นไปได้เช่นกัน ตัวอย่างเช่น การเรียนรู้อย่างอิสระผ่านการอ่านและการทำความเข้าใจคำตอบ การเรียนรู้จากการสังเกต ฯลฯ ช่วยให้ระบบสามารถหาคำตอบของตัวเองสำหรับคำถามที่มองไม่เห็นได้ในที่สุด
ชุดข้อมูลแบ่งออกเป็น 2 ส่วน คือ "คลังข้อมูลคำถามและคำตอบ" และ "คลังข้อมูลคู่คำถามและคำตอบ" คลังคำถามและคำตอบแปลจากข้อมูลต้นฉบับภาษาอังกฤษโดยไม่มีการประมวลผลอื่นใด คลังคำถามและคำตอบจะขึ้นอยู่กับคลังคำถามและคำตอบ โดยมีการแบ่งส่วนคำ การนำป้ายกำกับออก และการเพิ่มป้ายกำกับ ดังนั้น "คลังคำถามและคำตอบ" จึงสามารถเชื่อมต่อโดยตรงกับงานแมชชีนเลิร์นนิงได้ หากคุณไม่พอใจกับรูปแบบข้อมูลหรือเอฟเฟกต์การแบ่งส่วนคำ คุณสามารถใช้วิธีอื่นโดยตรงในการประมวลผล "คลังข้อมูลคำถามและคำตอบ" เพื่อรับข้อมูลที่สามารถใช้เพื่อฝึกโมเดลได้
pip install -U insuranceqa_data
เข้าสู่ที่เก็บใบรับรอง ซื้อใบรับรอง ป้อน [ใบรับรอง - รายละเอียด] หลังจากซื้อ และคลิก [คัดลอกรหัสประจำตัวใบรับรอง]
จากนั้น ตั้งค่าตัวแปรสภาพแวดล้อม INSQA_DL_LICENSE
เช่น การใช้เทอร์มินัลบรรทัดคำสั่ง:
# Linux / macOS
export INSQA_DL_LICENSE=YOUR_LICENSE
# # e.g. if your license id is `FOOBAR`, run `export INSQA_DL_LICENSE=FOOBAR`
# Windows
# # 1/2 Command Prompt
set INSQA_DL_LICENSE=YOUR_LICENSE
# # 2/2 PowerShell
$env :INSQA_DL_LICENSE= ' YOUR_LICENSE '
สุดท้าย ให้รันคำสั่งต่อไปนี้เพื่อดาวน์โหลดข้อมูลให้เสร็จสิ้น
python -c " import insuranceqa_data; insuranceqa_data.download_corpus() "
ข้อมูลแบ่งออกเป็นสองประเภท: รูปแบบ POOL; ในบรรดารูปแบบเหล่านี้ รูปแบบ PAIR เหมาะสำหรับโมเดลการฝึกการเรียนรู้ของเครื่องมากกว่า
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 , train_data [ x ][ 'zh' ], train_data [ x ][ 'en' ], train_data [ x ][ 'answers' ], train_data [ x ][ 'negatives' ]))
answers_data = insuranceqa . load_pool_answers ()
for x in answers_data : # 答案数据
print ( 'index %s: %s ++$++ %s' % ( x , answers_data [ x ][ 'zh' ], answers_data [ x ][ 'en' ]))
- | คำถาม | คำตอบ | คำศัพท์ (อังกฤษ) |
---|---|---|---|
รถไฟ | 12,889 | 21,325 | 107,889 |
ตรวจสอบ | 2,000 | 3354 | 16,931 |
ทดสอบ | 2,000 | 3308 | 16,815 |
ข้อมูลแต่ละชิ้นประกอบด้วยคำถามภาษาจีนและภาษาอังกฤษ ตัวอย่างคำตอบเชิงบวก และตัวอย่างคำตอบเชิงลบ จะต้องมีตัวอย่างเชิงบวกอย่างน้อยหนึ่งตัวอย่าง โดยทั่วไปข้อ 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 ...
}
格式 INDEX ++$++ 保险种类 ++$++ 中文 ++$++ 英文
corpus/pool/train.txt.gz
, corpus/pool/valid.txt.gz
, corpus/pool/test.txt.gz
格式 INDEX ++$++ 中文 ++$++ 英文
corpus/pool/answers.txt.gz
คลังข้อมูลถูกบีบอัดโดยใช้ gzip เพื่อลดขนาด และสามารถเข้าถึงข้อมูลได้โดยใช้คำสั่ง เช่น zmore, zless, zcat และ zgrep
zmore pool/test.txt.gz
การใช้ "ข้อมูลคำถามและคำตอบ" คุณยังคงต้องทำงานอีกมากเพื่อเข้าสู่โมเดลแมชชีนเลิร์นนิง เช่น การแบ่งส่วนคำ การลบคำหยุด การลบเครื่องหมายวรรคตอน และการเพิ่มแท็กป้ายกำกับ ดังนั้นเราจึงสามารถประมวลผลต่อไปได้บนพื้นฐานของ "ข้อมูลคำถามและคำตอบ" แต่ในงานต่างๆ เช่น การแบ่งส่วนคำ เราสามารถใช้เครื่องมือการแบ่งส่วนคำที่แตกต่างกัน ซึ่งมีผลกระทบต่อการฝึกโมเดล เพื่อให้ข้อมูลพร้อมใช้งานได้อย่างรวดเร็ว Insuranceqa-corpus-zh จัดเตรียมชุดข้อมูลโดยใช้การแบ่งส่วนคำของ HanLP การยกเลิกการติดป้ายกำกับ การยกเลิกการหยุด และการเพิ่มป้ายกำกับ ชุดข้อมูลนี้อิงตาม "ข้อมูลคำถามและคำตอบ" โดยสมบูรณ์
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 จากคำถึง id), id2word
(dict จาก id ถึง word), tf
(dict, สถิติความถี่ของคำ) และ total
(จำนวนคำทั้งหมด) ในหมู่พวกเขา ตัวระบุของคำที่ไม่ได้ลงทะเบียนคือ UNKNOWN
และรหัสของคำที่ไม่ได้ลงทะเบียนคือ 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
คุณสามารถใช้คลังข้อมูลนี้กับโค้ดโอเพ่นซอร์สต่อไปนี้
deep-qa-1: โมเดลพื้นฐาน
InsuranceQA TensorFlow: CNN พร้อม TensorFlow
n-grams-get-start: โมเดล N-gram
word2vec-get-start: แบบจำลองเวกเตอร์คำ
คำชี้แจง 1: insuranceqa-corpus-zh
ชุดข้อมูลนี้สร้างขึ้นโดยใช้การแปล insuranceQA และโค้ดเผยแพร่ภายใต้ Chunsong Public License เวอร์ชัน 1.0 ข้อมูลมีไว้เพื่อการวิจัยเท่านั้น และจะต้องอ้างอิงและกล่าวถึงเมื่อเผยแพร่ในสื่อ วารสาร นิตยสาร หรือบล็อก
InsuranceQA Corpus, Chatopera Inc., https://github.com/chatopera/insuranceqa-corpus-zh, 07 27, 2017
ข้อมูลใดๆ ที่ได้รับจาก Insuranceqa-corpus จะต้องเปิดไว้ด้วยและต้องประกาศเนื้อหาที่สอดคล้องกับ "คำชี้แจง 1" และ "คำชี้แจง 2"
คำชี้แจง 2: InsuranceQA
ชุดข้อมูลนี้มีไว้เพื่อการวิจัยเท่านั้น หากคุณเผยแพร่สิ่งใดโดยใช้ข้อมูลเหล่านี้ โปรดอ้างอิงรายงานของเรา: การใช้การเรียนรู้เชิงลึกในการเลือกคำตอบ: การศึกษาและงานเปิด Minwei Feng, Bing Xiang, Michael R. Glass, Lidan Wang, Bowen Zhou @ 2015