totowa(トトワ)で定義文を検索
  
uroboeで英語表記を検索
  

2015-03-13 Fri

MeCab 用の新語辞書 mecab-ipadic-neologd を公開しました

日本語の文書を機械的に処理しようと思った時に、ほとんどの人が MeCabとIPADIC(IPA辞書)の両方、または、どちらかを使うことになります。

IPADICはとてもよく出来ていますが、更新されないまま年月が過ぎているので、例えば2015年3月上旬に急に流行ったような言葉は収録していません。そのため、今日生まれたような新しい文書(例、Apple Watch発売)を解析する時に困ります。困らない人もいますけど、僕は困ります。

その課題に対処するために、日本全国津々浦々、自然言語処理に関わる全ての人は独自にMeCabの新語辞書を作って対応しているわけです。その際に元データとして使われることが多いのは Wikipedia 日本語版やはてなキーワードなどです。

困ったことに、新語辞書を生成するには上述の元データを使うとても面倒な処理(本文抽出とか、コスト付けとか)を確実に行う必要があります。これがうまくいかないことが多いのです。また、インターネット上に公開されている新語辞書作成の手法は提案者によってまちまちです。どのような結果を狙っているのか不明確な手法も多々見かけます。

さらに言うと、上述の元データだけでは新しい地名、人名、製品名、施設名、イベント名、キャラクター名、動詞・形容詞、数値・数量表現などへの対処はしきれません。このような問題を少しでも軽減することはできないのでしょうか。

「もう2015年だし、新語への対応どうしよう・・・、とかそろそろ考えたくないよね?」

ということで粛々と作業をして作りました。

新語辞書の名前は mecab-ipadic-neologd です。

https://github.com/neologd/mecab-ipadic-neologd/blob/master/README.ja.md

これをMeCabと一緒に使うと要するにこういうことができます。

$ mecab -d /usr/local/lib/mecab/dic/mecab-ipadic-neologd
アップルは Apple Watchを4月24日に国内発売します。
アップル        名詞,一般,*,*,*,*,アップル,アップル,アップル
は      助詞,係助詞,*,*,*,*,は,ハ,ワ
Apple Watch     名詞,固有名詞,一般,*,*,*,Apple Watch,アップルウォッチ,アップルウォッチ
を      助詞,格助詞,一般,*,*,*,を,ヲ,ヲ
4月24日 名詞,固有名詞,一般,*,*,*,4月24日,シガツニジュウヨッカ,シガツニジュウヨッカ
に      助詞,格助詞,一般,*,*,*,に,ニ,ニ
国内    名詞,一般,*,*,*,*,国内,コクナイ,コクナイ
発売    名詞,サ変接続,*,*,*,*,発売,ハツバイ,ハツバイ
し      動詞,自立,*,*,サ変・スル,連用形,する,シ,シ
ます    助動詞,*,*,*,特殊・マス,基本形,ます,マス,マス
。      記号,句点,*,*,*,*,。,。,。
EOS


かなり便利そうですよね?!!!!!!!!!!

便利そうだと思って下さった方にお使い頂けると嬉しいです。

詳細は、上記した github 上でご確認頂きたいです。

FAQ


mecab-ipadic-neologd とは?

より正しく書くと、MeCab のシステム辞書の一つである IPADIC を拡張するための新語辞書のシードと、新語辞書を組み込んだIPADICをインストールするツール群のセットのことです。

MeCab + IPADIC で解析した時に、うまく分割と読み仮名の付与ができない語だけを追加するように努力しています。

インストールの過程でmecab-ipadicのソースコードを取得して、mecab-ipadic-neologd のシードデータを含むインデックスを構築するので、実際にインストールしてその様子を確認してください。

おすすめポイントは?

個人的には以下の3点です。

- 名詞的なフレーズを連結する処理、を作る作業から開放される
- 新語に読み仮名が付く
- 辞書のシードが月に数回更新される

シードデータはいつ更新されるの?

シードデータの更新は少なくとも月に2回程度、月初めと半ばに行います。
公開していませんが2014年の8月位から更新作業をしていますので、同様の作業を公開しつつ継続するだけです。

月初めと半ばに以外にも、辞書に資源を足したり、品詞情報を改善したり、バグを修正した場合には更新されます。

解析結果とかどうなってるの?

僕が社内の製品に適用したときに大きな問題が無い程度の正確さがあります。

シードの生成過程で実用上問題ない品質かどうかのチェックは簡易ですけど行っております。
今後定量評価した結果も公開する予定です。

でも、定量評価って結果を出すまでにやることが多いのです。
しばらく時間がかかると思いますけど、どこかの勉強会やカンファレンスなどでお話すると思います。

本当にインストールする価値があるの?

インストールする前のテストで以下のように、どんな風に語の区切りが変わる可能性があるか(実際には文脈によって変わる)が確認できる出力を表示します。
出力結果はインストールするタイミングによって変化するので、更新の度にお楽しみ下さい。

default system dictonary     |	mecab-ipadic-neologd
福岡 恋愛 白書 	     |	福岡恋愛白書
バナナ ムーン 	     |	バナナムーン
未来 ロケット 	     |	未来ロケット
ミュージック ドラゴン 	     |	ミュージックドラゴン
g の レコンギスタ 	     |	gのレコンギスタ
北 区 赤羽 	     |	北区赤羽
幻 魔 チャレンジ 	     |	幻魔 チャレンジ
雪 風 		     |	雪風
特急 は く た か 	     |	特急 はくたか


その結果が気に入ったら yes してインストールを継続して下さい。

バイナリパッケージなどは提供されるの

提供する予定があります。

個人的にはすでにyumでインストールしています。

yumやbrewなどのコマンドで簡単にインストールできる状態にできると思います。

ただ、mecab-ipadic-neologd 自体の公開と、品質の向上を優先したいので、パッケージの公開はもう少し先です。

バージョン番号はあるの?

mecab-ipadic-neologd にバージョン番号はありませんが、シードデータには日付が入っています。
また、パッケージ提供する際には、パッケージを一意に特定する日付ベースの番号が付きます。

neologd ってどういう意味

neologism dictionary (新語辞書)から発音しやすい部分だけ取りました。
「ネオログディー」と発音します。
daemonじゃなくてdictionaryなのにdですいません。

新語辞書のシードはどうやって作っているの?

NEologd というまだ未公開のツールで生成しています。

https://github.com/neologd/neologd

いろいろな言語資源から4カラムの辞書データを生成する課題を解きます。
詳細はまた今度。

最後に


個人的にMeCabの辞書には mecab-ipadic-neologd と ipadic の両方を同時に使うのがオススメです。

何かご意見やアドバイスがございましたら、京都で開催される NLP2015 に行きますのでお声がけ下さい。

投稿者:としのり  日時:23:59:59 | コメント | トラックバック |

2014-01-23 Thu

ドメインを失効しそうになった

この記事は2014年01月23日に書いた。

うっかりoverlasting.netの費用を払い忘れていて、ドメインを失効しそうになった。
数日プログが見えなかったかも知れない。

プログを書くために入力フォームにアクセスして気がついた。

次に失効するかも知れないのは2017年01月20日[2017-01-20]である。
3年後に気をつけよう。

投稿者:としのり  日時:23:59:59 | コメント | トラックバック |

2014-01-20 Mon

日本の県名にマッチする正規表現

ググってすぐに見つからなかった日本の県名の正規表現を、
主に観賞用としてPerlでRegexp::Assembleを使って生成した。

生成した正規表現は以下。コピペ用。

(?^u:(?:(?:(?:[富岡]|和歌)山|(?:[広徳]|鹿児)島|(?:[石香]|神奈)川|山[口形梨]|
福[井岡島]|[佐滋]賀|宮[城崎]|愛[媛知]|長[崎野]|三重|兵庫|千葉|埼玉|奈良|
岐阜|岩手|島根|新潟|栃木|沖縄|熊本|秋田|群馬|茨城|青森|静岡|高知|鳥取)県|
大(?:分県|阪府)|京都府|北海道|東京都))


使うときはコピペして、xとかで冗長な正規表現を許容するか、改行を消して使う。

生成コードは
https://github.com/overlast/private/blob/master/lang/perl/nlp/wikipedia_ja/generate_prefecture_name_regexp.pl
に置いておいた。

投稿者:としのり  日時:23:59:59 | コメント | トラックバック |

日本語Wikipedia中の国名にマッチする正規表現

日本語Wikipedia中の国名にマッチする正規表現が欲しかったんだけど、
ググっても見つからなかったので、PerlでRegexp::Assembleを使って生成した。

ソースはWikipediaの国の一覧。
http://ja.wikipedia.org/wiki/%E5%9B%BD%E3%81%AE%E4%B8%80%E8%A6%A7

生成した正規表現は以下。コピペ用。

?^u:(?:ア(?:ル(?:(?:[バメ]ニ|ジェリ)ア|ゼンチン)|ン(?:ティグア・バーブーダ|
[ゴド]ラ)|メリカ(?:連合国南部連合|合衆国)|フ(?:ガニスタン|リカ)|イ[スル]ランド|
ゼルバイジャン|ラブ首長国連邦)|モ(?:ン(?:テネグロ|ゴル国)|ーリ(?:シャス|
タニア)|ル(?:ディブ|ドバ)|(?:ロッ|ナ)コ|ザンビーク)|セ(?:ント
(?:クリストファー・ネイビス|ルシア)|ルビア(?:・モンテネグロ)?|(?:ーシェ|
ネガ)ル)|ス(?:(?:ウェーデ|ペイ|ーダ)ン|リ(?:ランカ|ナム)|ロ(?:バキ|ベニ)ア|
ワジランド|イス)|(?:中(?:華(?:人民共和|民)|央アフリカ共和)|朝鮮民主主義人民共和|
プロイセン王|大韓民)国|マ(?:(?:ケドニア|リ)共和国|ーシャル諸島|ダガスカル|
レーシア|ラウイ|ルタ)|コ(?:ンゴ(?:民主)?共和国|ートジボワール|スタリカ|ロンビア|
ソボ|モロ)|エ(?:(?:ストニ|チオピ|リトリ)ア|(?:ルサルバ|クア)ドル|ジプト)|
イ(?:ンド(?:ネシア)?|ラ[クン]|スラエル|エメン|ギリス|タリア)|ト
(?:(?:リニダード・トバ|ー)ゴ|ル(?:クメニスタン|コ)|ンガ)|パ(?:ラ(?:グアイ|オ)|
プアニューギニア|キスタン|レスチナ|ナマ)|カ(?:(?:ザフスタ|メルー)ン|ーボベルデ|
ンボジア|タール|ナダ)|サ(?:ン(?:トメ・プリンシペ|マリノ)|(?:ウジアラビ|モ)ア)|
バ(?:(?:ーレー|チカ)ン|ングラデシュ|ルバドス|ヌアツ|ハマ)|ブ(?:ル(?:キナファソ|
ガリア|ネイ|ンジ)|ラジル|ータン)|ベ(?:ネズエラ|ラルーシ|トナム|リーズ|ルギー|
ナン)|チ(?:ェコ(?:スロバキア)?|ュニジア|ャド|リ)|ボ(?:(?:スニア・ヘルツェゴビ|
ツワ)ナ|リビア)|リ(?:(?:トアニ|ベリ|ビ)ア|ヒテンシュタイン)|ウ(?:ズベキスタン|
クライナ|ルグアイ|ガンダ)|ニ(?:ュージーランド|カラグア|ジェール|ウエ)|フ
(?:ィ(?:ンランド|リピン|ジー)|ランス)|(?:(?:赤道ギ|ケ)ニ|ユーゴスラビ)ア|キ
(?:(?:プロ|リバ|ルギ)ス|ューバ)|ガ(?:(?:イア|ー)ナ|ンビア|ボン)|オ
(?:ーストラ?リア|マーン|ランダ)|ソ(?:ビエト連邦|ロモン諸島|マリア)|ナ
(?:(?:イジェリ|ミビ)ア|ウル)|ル(?:クセンブルク|ーマニア|ワンダ)|ギ(?:ニア
(?:ビサウ)?|リシャ)|シ(?:エラレオネ|ンガポール|リア)|タ(?:ジキスタン|ンザニア|
イ王国)|ド(?:ミニカ(?:共和)?国|イツ)|グ(?:アテマラ|ルジア|レナダ)|ジ(?:ャマイカ|
ンバブエ|ブチ)|ミ(?:クロネシア連邦|ャンマー)|南(?:アフリカ共和国|スーダン)|ク
(?:ウェート|ロアチア)|ポ(?:ルトガル|ーランド)|東(?:ティモール|ドイツ)|ザ
(?:イール|ンビア)|ハ(?:ンガリー|イチ)|ペル(?:シア帝国|ー)|ロ(?:ーマ帝国|シア)|
(?:ネパー|ツバ)ル|ラ(?:トビア|オス)|レ(?:バノン|ソト)|ホンジュラス|デンマーク|
ノルウェー|メキシコ|ヨルダン|日本))(?^u:(?:ア(?:ル(?:(?:[バメ]ニ|ジェリ)ア|
ゼンチン)|ン(?:ティグア・バーブーダ|[ゴド]ラ)|メリカ(?:連合国南部連合|合衆国)|
フ(?:ガニスタン|リカ)|イ[スル]ランド|ゼルバイジャン|ラブ首長国連邦)|モ
(?:ン(?:テネグロ|ゴル国)|ーリ(?:シャス|タニア)|ル(?:ディブ|ドバ)|(?:ロッ|ナ)コ|
ザンビーク)|セ(?:ント(?:クリストファー・ネイビス|ルシア)|ルビア
(?:・モンテネグロ)?|(?:ーシェ|ネガ)ル)|ス(?:(?:ウェーデ|ペイ|ーダ)ン|リ
(?:ランカ|ナム)|ロ(?:バキ|ベニ)ア|ワジランド|イス)|(?:中(?:華(?:人民共和|民)|
央アフリカ共和)|朝鮮民主主義人民共和|プロイセン王|大韓民)国|マ(?:(?:ケドニア|リ)
共和国|ーシャル諸島|ダガスカル|レーシア|ラウイ|ルタ)|コ(?:ンゴ(?:民主)?共和国|
ートジボワール|スタリカ|ロンビア|ソボ|モロ)|エ(?:(?:ストニ|チオピ|リトリ)ア|
(?:ルサルバ|クア)ドル|ジプト)|イ(?:ンド(?:ネシア)?|ラ[クン]|スラエル|エメン|
ギリス|タリア)|ト(?:(?:リニダード・トバ|ー)ゴ|ル(?:クメニスタン|コ)|ンガ)|パ
(?:ラ(?:グアイ|オ)|プアニューギニア|キスタン|レスチナ|ナマ)|カ
(?:(?:ザフスタ|メルー)ン|ーボベルデ|ンボジア|タール|ナダ)|サ
(?:ン(?:トメ・プリンシペ|マリノ)|(?:ウジアラビ|モ)ア)|バ(?:(?:ーレー|チカ)ン|
ングラデシュ|ルバドス|ヌアツ|ハマ)|ブ(?:ル(?:キナファソ|ガリア|ネイ|ンジ)|
ラジル|ータン)|ベ(?:ネズエラ|ラルーシ|トナム|リーズ|ルギー|ナン)|チ
(?:ェコ(?:スロバキア)?|ュニジア|ャド|リ)|ボ(?:(?:スニア・ヘルツェゴビ|ツワ)ナ|
リビア)|リ(?:(?:トアニ|ベリ|ビ)ア|ヒテンシュタイン)|ウ(?:ズベキスタン|クライナ|
ルグアイ|ガンダ)|ニ(?:ュージーランド|カラグア|ジェール|ウエ)|フ
(?:ィ(?:ンランド|リピン|ジー)|ランス)|(?:(?:赤道ギ|ケ)ニ|ユーゴスラビ)ア|キ
(?:(?:プロ|リバ|ルギ)ス|ューバ)|ガ(?:(?:イア|ー)ナ|ンビア|ボン)|オ
(?:ーストラ?リア|マーン|ランダ)|ソ(?:ビエト連邦|ロモン諸島|マリア)|ナ
(?:(?:イジェリ|ミビ)ア|ウル)|ル(?:クセンブルク|ーマニア|ワンダ)|ギ
(?:ニア(?:ビサウ)?|リシャ)|シ(?:エラレオネ|ンガポール|リア)|タ(?:ジキスタン|
ンザニア|イ王国)|ド(?:ミニカ(?:共和)?国|イツ)|グ(?:アテマラ|ルジア|レナダ)|ジ
(?:ャマイカ|ンバブエ|ブチ)|ミ(?:クロネシア連邦|ャンマー)|南(?:アフリカ共和国|
スーダン)|ク(?:ウェート|ロアチア)|ポ(?:ルトガル|ーランド)|東(?:ティモール|
ドイツ)|ザ(?:イール|ンビア)|ハ(?:ンガリー|イチ)|ペル(?:シア帝国|ー)|ロ
(?:ーマ帝国|シア)|(?:ネパー|ツバ)ル|ラ(?:トビア|オス)|レ(?:バノン|ソト)|
ホンジュラス|デンマーク|ノルウェー|メキシコ|ヨルダン|日本))


使うときはコピペして、xとかで冗長な正規表現を許容するか、改行を消して使う。

生成コードは
https://github.com/overlast/private/blob/master/lang/perl/nlp/wikipedia_ja/generate_country_name_regexp.pl
に置いておいた。

投稿者:としのり  日時:23:59:59 | コメント | トラックバック |

2014-01-11 Sat

新年会 + #DSIRNLP 5 を開催しました & 動画UPしました

新年会とデータ構造と情報検索と言語処理勉強会 #DSIRNLP の第5回目を開催しました。
ご発表、ご参加頂いたみなさま、どうもありがとうございました。



会場を提供していただきました、スマートニュース株式会社のみなさま、どうもありがとうございました。
# スマートニュースさんは今後も各種勉強会に会場を提供してくださるそうです。

続きを読む

投稿者:としのり  日時:23:59:59 | コメント | トラックバック |

2013-12-21 Sat

どんなコードを書いたのか忘れた頃に役立つコメントの書き方

少し前にIRCやTwitterで @tagomoris さんらが、コードに対して執拗にコメントを書くことを推奨していたのを見かけた。



自分も気をつけなければと思い影響を受けたので、ブログに書いておく。

でも、多分、ほんとに当たり前のことしか書いてないんだと思う。

続きを読む

投稿者:としのり  日時:23:59:59 | コメント | トラックバック |

2013-12-11 Wed

不満をネット上で公開するときのTips 10+α

「ネガティブなことはネットに書かない方が良い」という意見を個人的に観測する機会が多いですが、ブログに書くことでしか不満を解消できないほどに追い詰められた精神状態になることは、ごく普通にあります。

たとえば、ゴルフサイトを一日中眺めている上司から突然「ちょっといいですか? 1+1は?」と聞かれて普通に「2ですよね」と答えたら「いや、それは2では無い可能性もあるのではないかな?」などと言われたら、「え?何を言ってるんだユーは別に数学者じゃないし物理学者でもないだろ頭大丈夫ですか?」と思いピヨッてしまうのは無理も無いのです。と僕は思っています。

ということで、不満をネット上でぶちまけるときに気をつけたいことを書いてみます。

続きを読む

投稿者:としのり  日時:23:59:59 | コメント | トラックバック |

2013-12-08 Sun

Photoshop CCとLightroom 5が月額1000円で利用できるキャンペーン

2013年12月11日 追記


キャンペーンが2013年12月31日までに延長されました。以下から1000円/月ライセンスをGetできます。


2013年12月08日に書いた本文(日付だけ修正)


@941さん経由で自分も入ってみて、Lightroom 5をしばらく使ってみたところ「普段からスマホで写真を撮ってるけど写真補正とか超ダルいと思ってる人(= 僕)」にオススメな感じがしたので紹介します。

Adobe公式ストアからもCreative Cloud特別プランに参加すると、月額1000円で「Photoshop CC」と「Lightroom 5」が利用できます。
2013年12月31日まで (期間限定) に年間プランにサインアップしていただいた場合、どなたでも月額 1,000円でご利用いただけます。


さらにオマケで「20 GB のクラウドストレージ」と「Behance ProSite」が利用できるのですが、個人的にそれはどうでも良くて、つまり、あと18日くらいでキャンペーンが終わっちゃうかもしれない。

もともと Photoshop のパッケージ版が欲しくてライセンスを買ったのですが、同時に利用できるようになった Lightroom 5 の具合があまりにも良かったので記事を書こうと思ったわけです。

ということで以下ではLightroom5を最初に使ったときのことしか話してません。

たとえば、以下のように、下北沢の踏切でiPhone5Sを使って撮影した、なんか暗くてボケてる、とても微妙な写真があったとします。
IMG_2411.JPG

この写真が「レンズ補正:自動」+「ホワイトバランス:自動」+「階調の調整:自動」をしただけで以下のようになります。
IMG_2411-1

実は最初にとても適当に自動補正を試したのがこの写真だったのですが

「お、おうっ・・・。」

ってなりました。眠いなーって思いながら試してたけど、目が覚めた。

スマホの写真でこんな画像が手元に残るようになるんですね。しかも一瞬で。
技術の進歩ってすごいですね。これが見られただけで「得した〜」って思えます。

元の写真と較べて金属の色がスッキリしており、自分の目では見ていたけど写真では消えていた情報がクッキリ見える。
しかも元の写真でとれていなかった水平方向と垂直方向の歪みを撮ってくれるので、自分の写真の下手さがカバーされています(ただし補正された時の敗北感がすごいです)。

実際にはよく見ると気になる箇所があるので、調整する箇所をしぼって段階的に補正したり、自動ではなくて自分で様子を見ながら補正したりすれば良さそうです。
が、自動でこれだけいい感じなら、何も補正しないよりマシで、そのマシ感だけで個人的に十分だったりもします。
# 一生に一度、みたいな写真だけ丹念に補正すると思います

補正してる時はこんな感じです。
2013-12-08 23.02.04

分かりやすいインターフェイスなので簡単な操作なら説明書なしでいける程です。

月額1000円のライセンスが購入できる期間は、2013年12月31日までなので「もしも延長されなければ」あと18日ちょっとです。
物理的なパッケージでソフトを買った場合にはlightroom5だけで12000円を超えるので、今後のアップデートに合わせた買い直しを考えるとPhotoshop CCとLightroom5で年間12000円はとても安いですよね。
20GBのクラウドスレージも個人的には使う予定が無いけど、嬉しい人には嬉しいでしょうね。

ただ、年末なので「もう一回延長!!!」なんてこともあるような気もします。(すでに二回延長している)


投稿者:としのり  日時:23:59:59 | コメント | トラックバック |