Opción 1: descargar los datos procesadosOpción 2: procesar los datos usted mismo
Este código produce la versión no anónima del conjunto de datos de resumen de CNN/Daily Mail, tal como se usa en el artículo de ACL 2017. Vaya al grano: resumen con redes generadoras de punteros. Procesa el conjunto de datos en el formato binario esperado por el código para el modelo Tensorflow.
Versión Python 3: Este código está en Python 2. Si desea una versión de Python 3, consulte la bifurcación de @becxer.
Opción 1: descargar los datos procesados
El usuario @JafferWilson ha proporcionado los datos procesados, que puede descargar aquí. (Vea la discusión aquí sobre por qué no lo proporcionamos nosotros mismos).
Opción 2: procesa los datos tú mismo
1. Descargar datos
Descarga y descomprime el stories
directorios desde aquí para CNN y Daily Mail.
Advertencia: Estos archivos contienen algunos ejemplos (114, en un conjunto de datos de más de 300 000) para los que falta el texto del artículo; consulte, por ejemplo cnn/stories/72aba2f58178f2d19d3fae89d5f3e9a4686bc4bb.story
. El código de Tensorflow se ha actualizado para descartar estos ejemplos.
2. Descarga Stanford Core NLP
Necesitaremos Stanford CoreNLP para tokenizar los datos. Descárgalo aquí y descomprímelo. Luego agregue el siguiente comando a su bash_profile:
export CLASSPATH=/path/to/stanford-corenlp-full-2016-10-31/stanford-corenlp-3.7.0.jar
reemplazando /path/to/
con la ruta a donde guardó el stanford-corenlp-full-2016-10-31
directorio. Puede verificar si está funcionando ejecutando
echo "Please tokenize this text." | java edu.stanford.nlp.process.PTBTokenizer
Deberías ver algo como:
Please
tokenize
this
text
.
PTBTokenizer tokenized 5 tokens at 68.97 tokens per second.
3. Procesar en archivos .bin y vocab
Correr
python make_datafiles.py /path/to/cnn/stories /path/to/dailymail/stories
reemplazando /path/to/cnn/stories
con la ruta a donde guardó el cnn/stories
directorio que descargó; de manera similar para dailymail/stories
.
Este script hará varias cosas:
- los directorios
cnn_stories_tokenized
ydm_stories_tokenized
se creará y se completará con versiones tokenizadas decnn/stories
ydailymail/stories
. Esto puede tomar algo de tiempo. Nota: puede que veas variosUntokenizable:
advertencias de Stanford Tokenizer. Estos parecen estar relacionados con los caracteres Unicode en los datos; hasta ahora parece estar bien ignorarlos. - Para cada una de las listas de URL
all_train.txt
,all_val.txt
yall_test.txt
las historias tokenizadas correspondientes se leen del archivo, se escriben en minúsculas y se escriben en archivos binarios serializadostrain.bin
,val.bin
ytest.bin
. Estos se colocarán en el recién creadofinished_files
directorio. Esto puede tomar algo de tiempo. - Además, un
vocab
El archivo se crea a partir de los datos de entrenamiento. Esto también se coloca enfinished_files
. - Por último,
train.bin
,val.bin
ytest.bin
se dividirá en fragmentos de 1000 ejemplos por fragmento. Estos archivos fragmentados se guardarán enfinished_files/chunked
como por ejemplotrain_000.bin
,train_001.bin
…,train_287.bin
. Esto debería tomar unos segundos. Puede usar los archivos individuales o los archivos fragmentados como entrada para el código de Tensorflow (vea las consideraciones aquí).