Códigos y corpus para el papel "Solución neuronal efectiva para la segmentación de palabras de criterios múltiples" (aceptado y próximamente en Sci-2018).
Ejecute el siguiente comando para preparar corpus, divídalos en conjuntos de trenes/dev/prueba, etc.:
python3 convert_corpus.py Luego convierta un $dataset en el archivo de Pickle:
./script/make.sh $dataset$dataset puede ser uno de los siguientes corpus: pku , msr , as , cityu , sxu , ctb , zx , cnc , udc y wtb .$dataset también puede ser un corpus conjunto como joint-sighan2005 o joint-10in1 .joint-sighan2008 como su $dataset .Finalmente, un comando realiza el entrenamiento y la prueba en la mosca:
./script/train.sh $dataset Dado que los conjuntos de datos Sighan Bakeoff 2008 son propietarios y difíciles de obtener, decidimos realizar experimentos adicionales en conjuntos de datos disponibles más libremente, para que el público pruebe y verifique la eficiencia de nuestro método. Aplicamos nuestra solución en 6 conjuntos de datos disponibles gratuitamente junto con los 4 conjuntos de datos Sighan2005.
En esta sección, presentaremos brevemente los corpus utilizados en este documento.
Esos 10 corpus son del sitio web oficial de Sighan2005 o recopilados del proyecto de código abierto, o de la página de inicio de los investigadores. Las licencias se enumeran en la siguiente tabla.
Como los corpus sighan2008 son propietarios, no podemos distribuirlos. Si tiene una copia legal, puede replicar nuestros puntajes siguiendo estas instrucciones.
En primer lugar, vincule el Sighan2008 a la carpeta de datos en este proyecto.
ln -s /path/to/your/sighan2008/data data/sighan2008
Luego, use HANLP para la conversión tradicional china a chino simplificado, como se muestra en los siguientes fragmentos de código Java:
BufferedReader br = new BufferedReader ( new InputStreamReader ( new FileInputStream (
"data/sighan2008/ckip_seg_truth&resource/ckip_truth_utf16.seg"
), "UTF-16" ));
String line ;
BufferedWriter bw = IOUtil . newBufferedWriter (
"data/sighan2008/ckip_seg_truth&resource/ckip_truth_utf8.seg" );
while (( line = br . readLine ()) != null )
{
for ( String word : line . split ( " \ s" ))
{
if ( word . length () == 0 ) continue ;
bw . write ( HanLP . convertToSimplifiedChinese ( word ));
bw . write ( " " );
}
bw . newLine ();
}
br . close ();
bw . close (); Debe repetir esto para los siguientes 4 archivos:
Luego, sin consulta los códigos de siguientes en convert_corpus.py :
# For researchers who have access to sighan2008 corpus, use official corpora please.
print ( 'Converting sighan2008 Simplified Chinese corpus' )
datasets = 'ctb' , 'ckip' , 'cityu' , 'ncc' , 'sxu'
convert_all_sighan2008 ( datasets )
print ( 'Combining those 8 sighan corpora to one joint corpus' )
datasets = 'pku' , 'msr' , 'as' , 'ctb' , 'ckip' , 'cityu' , 'ncc' , 'sxu'
make_joint_corpus ( datasets , 'joint-sighan2008' )
make_bmes ( 'joint-sighan2008' )Finalmente, estás listo para ir:
python3 convert_corpus.py
./script/make.sh joint-sighan2008
./script/train.sh joint-sighan2008