PerlでJMdictを扱う
JMdictファイルは英語のみのバージョンを使った。
JMdictは大きなXMLファイルで、こんな感じでアクセスできる。
use XML::Twig; use utf8; # utf8 binmode(STDOUT, ':utf8'); # 解析実行 my $twig = new XML::Twig( twig_handlers => { entry => \&parse_entry } ); $twig->parsefile('./JMdict_e'); # `entry' sub parse_entry { my($twig, $element) = @_; my $entry = $element->simplify(forcearray => 1); # シーケンス print "SEQ:", $entry->{ent_seq}->[0],"\n"; # 漢字 foreach my $k_ele (@{$entry->{k_ele}}) { foreach my $keb (@{$k_ele->{keb}}) { print "KEB: ", $keb, "\n"; } } # 読み foreach my $r_ele (@{$entry->{r_ele}}) { foreach my $reb (@{$r_ele->{reb}}) { print "REB: ", $reb, "\n"; } } # 意味 foreach my $sense (@{$entry->{sense}}) { # 品詞 foreach my $pos (@{$sense->{pos}}) { print "POS: ", $pos,"\n"; } # 概要 foreach my $gloss (@{$sense->{gloss}}) { if ($gloss->{'xml:lang'} eq 'en') { print "GLOSS: ", $gloss->{content}, "\n"; } } } print "\n"; $twig->purge; }
とりあえずDBに突っ込む準備はできた。