名詞を集める(ただし、読み情報も)
はじめに
形態素解析するとき、最初に用意された辞書だけでは固有名詞などが少なく、うまくいかないことがある。
しかし、名詞は無数に存在し、どんどん新しい言葉がでてくるので、、形態素解析器の辞書に入れておくのが難しい。
そこで、ネットにあるデータから名詞を集めたい。
普通は、表記の部分だけ集めてくれば解析上は問題ないけど、ここでは条件として「読み(ふりがな、not発音)情報も」一緒に集めることを考える。
ここでは「wikipedia」と「はてなキーワード」から。
(2013/3/5 : 固有名詞と書いてしまっていたけど、名詞なので一部修正)
収集
Wikipedia
- なにを置いてもとりあえずwikipedia
- タイトルリストなら「all-titles-in-ns0.gz」
- 上記には読みの情報は含まれていないので、読みの情報を取り出したい
- ここでは本文中から「ほげほげ(ふがふが)」形式の部分を取り出して、読みっぽいものを取り出す
- 本文データは「pages-articles.xml.bz2」
- 展開すると6.7GBぐらい
- ざっくばらんに取り出すスクリプト(かなり粗い)
- 人名がある程度取れているので、ここではよしとする(逃げ)
#!/usr/bin/perl use strict; use warnings; use Encode; use utf8; use Data::Dumper; binmode STDIN, ":utf8"; binmode STDERR, ":utf8"; binmode STDOUT, ":utf8"; sub includeHan { my ($str) = @_; if($str =~ m/.*\p{Han}.*/){ return 1; } return 0; } sub includeLatin { my ($str) = @_; if($str =~ m/.*\p{Latin}.*/){ return 1; } return 0; } #ハイフンは削除するのではなく、ない部分を補完できるようにしたい sub includeSymbol { my ($str) = @_; if($str =~ m/.*[\-‐―].*/){ return 1; } return 0; } while(<>){ chomp; my $line = $_; $line =~ s/<.*?>//g; #タグの削除 $line =~ s/[「」『』]//g; #カッコの削除 $line =~ s/\[\[(.+?)\|.+?\]\]/$1/g; #カッコの削除 $line =~ s/\[\[(.+?)\]\]/$1/g; #カッコの削除 $line =~ s/\{\{(.+?)\}\}//g; #カッコの削除 $line =~ s/\&/\&/g; #アンドの置き換え $line =~ s/\s//g; #スペースの削除 if($line =~ m/\'\'\'(.+?)\'\'\'((.+?))/){ my $hyoki = $1; my $yomi_tmp = $2; $yomi_tmp =~ s/\{\{.+?\}\}//g; #カッコの削除 my @yomi = split(/[、,]/,$yomi_tmp); if(defined($yomi[0])){ $yomi[0] =~ s/\'\'\'//g; #クオートの削除 $yomi[0] =~ s/\'\'//g; #クオートの削除 if($yomi[0] ne '' && !includeHan($yomi[0]) && !includeLatin($yomi[0]) && !includeSymbol($yomi[0])){ #「または」「もしくは」などが読みのところに入る場合も... if($hyoki =~ m/\'\'\'/){ $hyoki = '\'\'\'' . $hyoki . '\'\'\''; while($hyoki =~ m/\'\'\'(.+?)\'\'\'/g){ print $1,"\t",$yomi[0],"\n"; } }else{ print $hyoki,"\t",$yomi[0],"\n"; } } } } }
- 実行
$ grep '<text' jawiki-20120826-pages-articles.xml | perl extract.pl > komeilist.txt $ wc -l komei.list.txt 167805 komei.list.txt $ head komeilist.txt 著作権の保護期間 ちょさくけんのほごきかん 情報工学 じょうほうこうがく 文脈自由言語 ぶんみゃくじゆうげんご 正規言語 せいきげんご 社会学者 しゃかいがくしゃ 文脈自由文法 ぶんみゃくじゆうぶんぽう 液晶 えきしょう ネマティック液晶 ネマティックえきしょう 音楽のジャンル一覧 おんがくのジャンルいちらん 音楽家 おんがくか
- そこそこ取れた
- これにタイトルデータも合わせて登録しておけばよさそうか
はてなキーワード
http://developer.hatena.ne.jp/ja/documents/keyword/misc/catalog
ーーー ○ー○ー○ー○ ーーー ○ー○。 ぁ (ぁ ぁまのじゃく ぁまのじゃく ぁみにぃ ぁみにぃ ぁみみ ぁみみ ぁゃゃ ぁゃゃ あーう゛ぃんかーしゅなー アーヴィン・カーシュナー あーう゛ぇう゛ぇ a.v.v
その他
- 権利上問題があるかもしれないけど、IMEの辞書・ユーザー辞書なども使えそう