txqz memo

Wikipediaのタイトルリストを形態素解析の辞書にまとめて登録したら

Wikipedia日本語版のタイトル一覧を持ってきてSenのユーザ辞書に突っ込んだのはいいけれども、名詞は名詞だけどどんな名詞か判断できないので一律に「名詞-from_wikipedia」として登録したら適切に使われなかった。そりゃ"from_wikipedia"なんてサブ品詞は形態素解析マシンが理解できないのだから当然。悔い改めて一律に「名詞-固有名詞」として、コストもテキトーな値にして登録してみた。

で、たとえば「クーリングオフ」という単語なのだけれども、「クーリングオフをする」とかいう文脈だと、ちゃんと「クーリングオフ」という新しい形態素が抽出される。しかし、「クーリングオフされた」だと「クー」「リング」「オフ」「さ」「れ」「た」になってしまう。それは、「クーリングオフ」は本当はサ変接続の名詞なのにもかかわらず「固有名詞」として登録してしまったのが悪い。

デフォルト辞書に含まれていない新しい語彙をまとめて登録するのにWikipediaを使えば楽かなと思ったけれども、実際は、少なくとも普通の名詞とサ変動詞にくっつく名詞というのを区別して登録しないといけない。30万弱もあるのにそんなのいちいちやってられない。あと、数字や化学式まで「固有名詞」として登録されてしまうから、「2007」が「2」と「007」に別れてしまったりする。そりゃ007はゼロゼロセブンのことなのだけれども、そんな誤爆しそうなフレーズを登録したら死ぬ。数字やアルファベットだったら、ほっておけば未知語として出てくるだろうから、数字やアルファベットだけからなる行は削除するとかしないといけない。

あとはてなキーワード一覧も用意したのだが、何も考えないでやったら文字コードがEUC-JPになってしまった。そのほかはUTF-8なのでいかにも都合が悪い。ということでlvを使った。

lv -Ou8 motoneta.txt > henkan.txt

でUTF-8に変換できる。よく文字コード変換というとnkfが言及されるが、どっちが良いんだろう。GNOMEエディタだと「無効な文字がありました」と言われるファイルでも無理やり変換できる。