Códigos e corpora para papel "Solução neural eficaz para segmentação de palavras com vários critérios" (aceita e a seguir no SCI-2018).
Execute o seguinte comando para preparar corpora, dividi -los em conjuntos de trem/dev/testes etc.:
python3 convert_corpus.py Em seguida, converta um $dataset em arquivo de picles:
./script/make.sh $dataset$dataset pode ser um dos seguintes corpora: pku , msr , as , cityu , sxu , ctb , zx , cnc , udc e wtb .$dataset também pode ser um corpus conjunto, como joint-sighan2005 ou joint-10in1 .joint-sighan2008 como seu $dataset .Finalmente, um comando executa o treinamento e o teste em tempo real:
./script/train.sh $dataset Como os conjuntos de dados Sighan Bakeoff 2008 são proprietários e difíceis de obter, decidimos realizar experimentos adicionais sobre conjuntos de dados mais disponíveis gratuitamente, para o público testar e verificar a eficiência de nosso método. Aplicamos nossa solução em 6 conjuntos de dados adicionais disponíveis gratuitamente, juntamente com os 4 conjuntos de dados SIGHAN2005.
Nesta seção, apresentaremos brevemente os corpora usados neste artigo.
Esses 10 corpora são do site oficial do Sighan2005, ou coletados do projeto de código aberto ou da página inicial dos pesquisadores. As licenças estão listadas na tabela a seguir.
Como os corpora Sighan2008 são proprietários, não podemos distribuí -los. Se você tiver uma cópia legal, pode replicar nossas pontuações seguindo estas instruções.
Em primeiro lugar, vincule o Sighan2008 à pasta de dados neste projeto.
ln -s /path/to/your/sighan2008/data data/sighan2008
Em seguida, use o HANLP para a conversão chinesa tradicional para o chinês, como mostrado nos seguintes trechos 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 (); Você precisa repetir isso para os 4 arquivos a seguir:
Então, descommentando os códigos em 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, você está pronto para ir:
python3 convert_corpus.py
./script/make.sh joint-sighan2008
./script/train.sh joint-sighan2008