Codes und Korpora für Papier "Wirksame neuronale Lösung für die Segmentierung mit mehreren Kriterien" (akzeptiert und in Kürze bei Sci-2018).
Führen Sie den folgenden Befehl aus, um Korpora vorzubereiten, sie in Zug-/Dev/Test -Sets usw. aufzuteilen.
python3 convert_corpus.py Konvertieren Sie dann einen Corpus $dataset in die Pickle -Datei:
./script/make.sh $dataset$dataset kann eine der folgenden Unternehmen sein: pku , msr , as , cityu , sxu , ctb , zx , cnc , udc und wtb .$dataset kann auch ein gemeinsamer Korpus wie joint-sighan2005 oder joint-10in1 sein.joint-sighan2008 als $dataset herstellen.Schließlich führt ein Befehl sowohl Training als auch Test im laufenden Flug durch:
./script/train.sh $dataset Da die Datensätze von Seufhan Bakeoff 2008 proprietär und schwer zu erhalten, beschließen wir, zusätzliche Experimente an frei verfügbareren Datensätzen durchzuführen, damit die Öffentlichkeit die Effizienz unserer Methode testen und überprüfen kann. Wir haben unsere Lösung auf 6 zusätzliche frei verfügbare Datensätze zusammen mit den 4 Seufh2005 -Datensätzen angewendet.
In diesem Abschnitt werden wir kurz die in diesem Papier verwendeten Korpora vorstellen.
Diese 10 Korpora stammen entweder von der offiziellen Seufard2005-Website oder von Open-Source-Projekt oder von der Homepage der Forscher. Lizenzen sind in der folgenden Tabelle aufgeführt.
Da Seufard2008 Corpora proprietär sind, können wir sie nicht verteilen. Wenn Sie eine legale Kopie haben, können Sie unsere Bewertungen nach diesen Anweisungen replizieren.
Verknüpfen Sie zunächst den Seighan2008 mit dem Datenordner in diesem Projekt.
ln -s /path/to/your/sighan2008/data data/sighan2008
Verwenden Sie dann HANLP für traditionelles Chinesisch zum vereinfachten chinesischen Umbau, wie in den folgenden Java -Code -Snippets gezeigt:
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 (); Sie müssen dies für die folgenden 4 Dateien wiederholen:
Dann die folgenden Codes in 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' )Schließlich sind Sie bereit zu gehen:
python3 convert_corpus.py
./script/make.sh joint-sighan2008
./script/train.sh joint-sighan2008