Корпус содержит вопросы и ответы, собранные на сайте Insurance Library.
Насколько нам известно, на момент публикации этого набора данных в 2017 году это был первый открытый корпус контроля качества в сфере страхования:
Содержимое этого корпуса создается реальными пользователями, а высококачественные ответы предоставляются профессионалами с глубокими знаниями предметной области. Так что это корпус реальной ценности, а не игрушка.
В приведенной выше статье корпус используется для задачи выбора ответа. С другой стороны, возможны и другие варианты использования этого корпуса. Например, независимое обучение посредством чтения и понимания ответов, обучение с помощью наблюдения и т. д. позволяет системе, наконец, найти собственные ответы на невидимые вопросы.
Набор данных разделен на две части: «корпус вопросов и ответов» и «корпус пар вопросов и ответов». Корпус вопросов и ответов переводится с исходных английских данных без какой-либо другой обработки. Корпус вопросов и ответов основан на корпусе вопросов и ответов. Он также выполняет сегментацию слов, удаление меток и остановку, а также добавляет метки. Таким образом, «корпус вопросов и ответов» может быть напрямую связан с задачами машинного обучения. Если вас не устраивает формат данных или эффект сегментации слов, вы можете напрямую использовать другие методы для обработки «корпуса вопросов и ответов» для получения данных, которые можно использовать для обучения модели.
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. Среди них формат 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 |
проверять | 2000 | 3354 | 16 931 |
тест | 2000 | 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, от слова до идентификатора), id2word
(dict, от идентификатора до слова), tf
(dict, статистика частоты слов) и total
(общее количество слов). Среди них идентификатор незарегистрированных слов — UNKNOWN
, а идентификатор незарегистрированных слов — 0.
Форматы данных train_data
, test_data
и valid_data
одинаковы. qid
— это идентификатор вопроса, 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-started: модель N-граммы
word2vec-get-started: модель вектора слов
Утверждение 1: Insuranceqa-corpus-zh
Этот набор данных был создан с помощью Translation 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: страхованиеQA
Этот набор данных предоставляется только для исследовательских целей. Если вы публикуете что-либо с использованием этих данных, пожалуйста, цитируйте нашу статью: «Применение глубокого обучения для выбора ответа: исследование и открытая задача». Минвэй Фэн, Бин Сян, Майкл Р. Гласс, Лидан Ван, Боуэн Чжоу @ 2015