El corpus contiene preguntas y respuestas recopiladas del sitio web Biblioteca de seguros.
Hasta donde sabemos, en el momento en que se publicó este conjunto de datos, en 2017, era el primer corpus de control de calidad abierto en el campo de los seguros:
El contenido de este corpus es generado por usuarios del mundo real y profesionales con un profundo conocimiento del dominio brindan respuestas de alta calidad. Así que este es un corpus de valor real, no un juguete.
En el artículo anterior, el corpus se utiliza para la tarea de selección de respuestas. Por otra parte, también son posibles otros usos de este corpus. Por ejemplo, el aprendizaje independiente mediante la lectura y comprensión de respuestas, el aprendizaje observacional, etc. permite que el sistema finalmente encuentre sus propias respuestas a preguntas invisibles.
El conjunto de datos se divide en dos partes: "corpus de preguntas y respuestas" y "corpus de pares de preguntas y respuestas". El corpus de preguntas y respuestas se traduce a partir de los datos originales en inglés sin ningún otro procesamiento. El corpus de preguntas y respuestas se basa en el corpus de preguntas y respuestas. También realiza segmentación, eliminación de etiquetas y detención de palabras, y agrega etiquetas. Por lo tanto, el "corpus de preguntas y respuestas" se puede conectar directamente a las tareas de aprendizaje automático. Si no está satisfecho con el formato de los datos o el efecto de segmentación de palabras, puede utilizar directamente otros métodos para procesar el "corpus de preguntas y respuestas" para obtener datos que puedan usarse para entrenar el modelo.
pip install -U insuranceqa_data
Ingrese al almacén de certificados, compre el certificado, ingrese [Certificado - Detalles] después de la compra y haga clic en [Copiar identidad del certificado].
Luego, configure la variable de entorno INSQA_DL_LICENSE
, como usar la terminal de línea de comando:
# 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 '
Finalmente, ejecute el siguiente comando para completar la descarga de datos.
python -c " import insuranceqa_data; insuranceqa_data.download_corpus() "
Los datos se dividen en dos tipos: formato POOL; formato PAIR. Entre ellos, el formato PAIR es más adecuado para modelos de entrenamiento de aprendizaje automático.
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' ]))
- | pregunta | Respuesta | Vocabulario (inglés) |
---|---|---|---|
tren | 12.889 | 21.325 | 107.889 |
verificar | 2.000 | 3354 | 16.931 |
prueba | 2.000 | 3308 | 16.815 |
Cada dato incluye chino e inglés de la pregunta, ejemplos positivos de la respuesta y ejemplos negativos de la respuesta. Debe haber al menos un ejemplo positivo del caso, básicamente los elementos del 1 al 5 , todas las cuales son respuestas correctas. Hay 200 ejemplos negativos de respuestas. Los ejemplos negativos se crean en función de la pregunta utilizando métodos de búsqueda, por lo que están relacionados con la pregunta, pero no son la respuesta correcta.
{
"INDEX": {
"zh": "中文",
"en": "英文",
"domain": "保险种类",
"answers": [""] # 答案正例列表
"negatives": [""] # 答案负例列表
},
more ...
}
Entrenamiento: corpus/pool/train.json.gz
Validación: corpus/pool/valid.json.gz
Prueba: corpus/pool/test.json.gz
Respuesta: corpus/pool/answers.json
tiene un total de 27,413 respuestas y el formato de datos es 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
El corpus se comprime usando gzip para reducir el tamaño y se puede acceder a los datos usando comandos como zmore, zless, zcat y zgrep.
zmore pool/test.txt.gz
Al utilizar "datos de preguntas y respuestas", aún necesita mucho trabajo para ingresar al modelo de aprendizaje automático, como la segmentación de palabras, la eliminación de palabras vacías, la eliminación de signos de puntuación y la adición de etiquetas. Por lo tanto, podemos continuar procesando sobre la base de "datos de preguntas y respuestas", pero en tareas como la segmentación de palabras, podemos usar diferentes herramientas de segmentación de palabras, lo que tiene un impacto en el entrenamiento del modelo. Para que los datos estén disponibles rápidamente, Insuranceqa-corpus-zh proporciona un conjunto de datos que utiliza la segmentación de palabras, la eliminación de etiquetas, la eliminación de etiquetas y la adición de etiquetas de HanLP. Este conjunto de datos se basa completamente en "datos de preguntas y respuestas".
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
contiene word2id
(dict, de palabra a id), id2word
(dict, de id a palabra), tf
(dict, estadísticas de frecuencia de palabras) y total
(número total de palabras). Entre ellos, el identificador de palabras no registradas es UNKNOWN
y la identificación de palabras no registradas es 0.
Los formatos de datos de train_data
, test_data
y valid_data
son los mismos. qid
es el ID de la pregunta, question
es la pregunta, utterance
es la respuesta, si label
es [1,0]
significa que la respuesta es la respuesta correcta, [0,1]
significa que la respuesta no es la respuesta correcta, por lo que la utterance
Contiene los datos de ejemplos positivos y negativos. Cada pregunta contiene 10 ejemplos negativos y 1 ejemplo positivo.
train_data
contiene 12,889 preguntas, 141779
datos, ejemplos positivos: ejemplos negativos = 1:10 test_data
contiene 2,000 preguntas, 22000
datos, ejemplos positivos: ejemplos negativos = 1:10 valid_data
contiene 2,000 preguntas, 22000
datos, ejemplos positivos: Ejemplo negativo = 1: 10
Longitud de la oración:
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
Puede utilizar este corpus con el siguiente código fuente abierto
deep-qa-1: modelo de referencia
SegurosQA TensorFlow: CNN con TensorFlow
n-grams-get-start: modelo de N-gramas
word2vec-get-start: modelo de vector de palabras
Declaración 1: seguroqa-corpus-zh
Este conjunto de datos se generó mediante la traducción de InsuranceQA y el código se publica bajo la licencia pública de Chunsong, versión 1.0. Los datos son solo para fines de investigación y deben citarse y abordarse cuando se publiquen en cualquier medio, diario, revista o blog.
InsuranceQA Corpus, Chatopera Inc., https://github.com/chatopera/insuranceqa-corpus-zh, 07 27, 2017
Cualquier dato derivado de Insuranceqa-corpus también debe ser abierto y declarar un contenido coherente con la "Declaración 1" y la "Declaración 2".
Declaración 2: control de calidad del seguro
Este conjunto de datos se proporciona únicamente con fines de investigación. Si publica algo utilizando estos datos, cite nuestro artículo: Aplicación del aprendizaje profundo a la selección de respuestas: un estudio y una tarea abierta. Minwei Feng, Bing Xiang, Michael R. Glass, Lidan Wang, Bowen Zhou @ 2015