Kode dan korpora untuk kertas "Solusi saraf yang efektif untuk segmentasi kata multi-kriteria" (diterima & akan datang di SCI-2018).
Jalankan perintah berikut untuk mempersiapkan korpora, membaginya menjadi set/dev/test set dll.:
python3 convert_corpus.py Kemudian konversi $dataset menjadi file acar:
./script/make.sh $dataset$dataset dapat menjadi salah satu dari korpora berikut: pku , msr , as , cityu , sxu , ctb , zx , cnc , udc dan wtb .$dataset juga bisa menjadi korpus gabungan seperti joint-sighan2005 atau joint-10in1 .joint-sighan2008 sebagai $dataset Anda.Akhirnya, satu perintah melakukan pelatihan dan tes dengan cepat:
./script/train.sh $dataset Karena dataset Sighan Bakeoff 2008 adalah hak milik dan sulit diperoleh, kami memutuskan untuk melakukan eksperimen tambahan pada dataset yang lebih bebas yang tersedia, bagi publik untuk menguji dan memverifikasi efisiensi metode kami. Kami menerapkan solusi kami pada 6 set data tambahan yang tersedia secara bebas bersama dengan dataset 4 Sighan2005.
Di bagian ini, kami akan memperkenalkan korpora yang digunakan secara singkat dalam makalah ini.
10 korpora itu berasal dari situs web resmi Sighan2005, atau dikumpulkan dari proyek open-source, atau dari beranda peneliti. Lisensi tercantum dalam tabel berikut.
Karena Sighan2008 Corpora adalah milik, kami tidak dapat mendistribusikannya. Jika Anda memiliki salinan hukum, Anda dapat meniru skor kami mengikuti instruksi ini.
Pertama, tautkan folder Sighan2008 ke data dalam proyek ini.
ln -s /path/to/your/sighan2008/data data/sighan2008
Kemudian, gunakan Hanlp untuk bahasa Cina tradisional untuk konversi Cina yang disederhanakan, seperti yang ditunjukkan dalam cuplikan kode Java berikut:
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 (); Anda perlu mengulangi ini untuk 4 file berikut:
Kemudian, uncomment kode berikut di 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' )Akhirnya, Anda siap untuk pergi:
python3 convert_corpus.py
./script/make.sh joint-sighan2008
./script/train.sh joint-sighan2008