作成日
2014-03-20
変更日
2017-07-27

自然言語処理の研究

mecab-mozcdic

Mozc(後述)の辞書とIPAdicを継ぎ接ぎしてMeCabから使用出来る様にした辞書を公開しています。

mecab-skkserv MeCab を使ってかな漢字変換辺に使えるかもしれない。

元の辞書は仮名漢字変換用ですが、表層形と読みを逆にして辞書生成すると形態素解析用辞書としてもそれなりに使える模様。

単に辞書を変換しただけのものであり、MozcのRewriter相当の機能や、その他の変換精度を上げる為の変換エンジン側の工夫が反映されていない為、Mozcとは異なる変換結果を生ずる場合があります。

単漢字が変換出来ない。
「ねこをかいたい」を解析すると「猫を解体」が出力される(MozcやGoogle日本語入力では「猫を飼いたい」になる)。
「ながーい」等の砕けた表現を変換出来ない。

IME関連リンク集

コーパス、辞書

以下のリストと一部重複しているが、GitHub - ikegami-yukino/dataset-list: lists of text corpus and more辺も参考になる。

コーパス分析

統計的仮名漢字変換

理論

http://www.anlp.jp/proceedings/annual_meeting/2011/pdf_dir/C4-3.pdf
言語処理学会 第 17 回年次大会 発表論文集 (2011 年 3 月) 統計的かな漢字変換システム Mozc
ChaIME: A statistical approach to Japanese input method
統計的かな漢字変換の仕組み: ChaIME 徹底解説
http://plata.ar.media.kyoto-u.ac.jp/mori/research/topics/KKC/simple.pdf
単語と入力記号列の組の1-gramモデルによる統計的仮名漢字変換
Graham Neubig - チュートリアル資料
自然言語処理プログラミング勉強会 6 - かな漢字変換

言語モデルの作成

実装例

mozc - Mozc - Japanese Input Method for Chromium OS, Android, Windows, Mac and Linux - Google Project Hosting
Google日本語入力のオープンソース版。
辞書はIPAdicその他を使用。
Google Japan Blog: Google 日本語入力がオープンソースになりました
README.txt - mozc - Mozc - Japanese Input Method for Chromium OS, Android, Windows, Mac and Linux - Google Project Hosting
AboutMozc - mozc - About Mozc - Mozc - Japanese Input Method for Chromium OS, Android, Windows, Mac and Linux - Google Project Hosting
Mozcソースコード徹底解説 #TokyoTextMining (※現在、予測変換にSVMは使われていない。参考: Twitter / nokuno: 最新版のmozcが予測変換でSVMを使うのをやめて,確率と長 ...)
Mozc(Google日本語入力)のコードを読んだメモ - 射撃しつつ前転
Mozc(Google 日本語入力)のコードを読んだメモ(2) - 射撃しつつ前転 (辞書圧縮の話)
Features/libkkc - FedoraProject
Fedora 19から以降、標準のIMEとして採用されている。
libkkc | du -a ~ueno
wikipedia : Yahoo! 知恵袋 = 10 : 1 ぐらいのソースから作った辞書とSKK辞書を併用。
libkkc-data(前者の辞書の元データ)はARPA形式。
ngram-format
ARPA標準形式のN-gramのフォーマット・バックオフ係数|音声認識・音声入力Windows用フリーソフト「ネコ耳エディタ」ブログ
masui/Gyaim・GitHub
数百行のRubyで実用レベルのIMEを作れることを示すもの
※確率的仮名漢字変換モデルは使っていないと思われるが、ソースコード量が少ないので掲載。
ASCII.jp:MacRuby+IMKitベース、驚異の日本語IME「Gyaim」 (1/2)|Apple Geeks
masui/Gictionary・GitHub
統計的自然言語処理エンジンStaKK - nokunoの日記
mozcと同じ辞書を使用(恐らく変換の仕組みも同一と思われるが詳細未調査)。
Ngramかな漢字変換とMozc辞書の比較 - nokunoの日記
N-gram 漢字-かな変換 - アスペ日記
言語モデル配布ページから作成した辞書を使用。

参考書籍

音声言語処理と自然言語処理
コロナ社
ISBN978-4-339-02469-2
中川聖一 他編著
「音声言語処理と自然言語処理」演習PDF
最近の新しいソフトウェアを使った演習が載っているので、プログラムを動かしつつ学びたい人に良い。タイトルで誤解しそうになるが、音声一辺倒ではなく、テキストを処理する話もちゃんと書いてある。
フリーソフトでつくる音声認識システム パターン認識・機械学習の初歩から対話システムまで
森北出版
ISBN978-4-627-84711-8
荒木 雅弘 著
基礎的な理論の解説が丁寧で分かり易い。他のテキストを読む前の基礎知識の習得としても使えそう。
音声認識を主眼としたものだが、音声認識とIMEの処理とはかなり関連性が深いので、そっち方面を学びたい人にとっては、結構参考になる記述がある。
WEB+DB PRESS plusシリーズ 日本語入力を支える技術―変わり続けるコンピュータと言葉の世界
技術評論社
ISBN 978-4-7741-4993-6
徳永拓之 著
WEB+DB PRESS Vol.64の特集3「作って学ぶ日本語入力」を加筆修正したもの。
IMEを自分で作る為に必要な技術的知識が一通り手に入る本。
自然言語処理の予備知識が無い人や、自然言語処理の論文を余り読んだことが無い人に対しても丁寧に説明されているのが好ましい。

...「する」のように出現頻度の高い単語が一語で品詞として扱われていたりします。このように、単語をそのまま品詞にしてしまうことを語彙化 注9 と呼びます。...

注9
ちなみに、言語学では語彙化という言葉をまったく違う意味で使います。
案外、技術書や参考書はこの辺の説明が適当だったりするので、他の本を読む前に読んでおくと、大体雰囲気が掴める。
WEB+DB PRESS Vol.64|技術評論社
日本語入力を支える技術という本を書きました - 射撃しつつ前転
「日本語入力を支える技術」発売でおめでたいところで水を指すような発言で申し訳ないですが、同本で紹介されている識別学習による日本語入力は、設定にすこし無理があり…
自然言語処理ことはじめ―言葉を覚え会話のできるコンピュータ
森北出版
ISBN978-4627828513
荒木健治 著
入門書的な位置付けの本。NLPの研究課題を積み重ねて(Siriを高度にしたような)雑談が出来るシステムを実現する、という全体のストーリーがある。
数式やコードが殆ど登場しないので、気軽に取り掛かれる所が良い。
入門 自然言語処理
オライリー・ジャパン
ISBN978-4-87311-470-5
萩原 正人、中山 敬広、水野 貴明訳
Python による日本語自然言語処理(第12章「Python による日本語自然言語処理」)
12章は日本語独特の事情が分かりやすく書かれていて、Pythonを使わない人でも参考になる。
岩波講座 ソフトウェア科学〔知識〕15  自然言語処理
岩波書店
ISBN4-00-010355-5
長尾真、佐藤理史 編
結構古い本だが、実用のIMEには、現在もこの辺の技術がベースになっているものが多い。
NLPの話題が比較的詳細に網羅されているので、他の本と組み合わせて使うと良いか。
岩波講座 ソフトウェア科学〔知識〕14  知識と推論
岩波書店
ISBN4-00-010354-7
長尾真 編
A*(A-star)アルゴリズムに関する解説がある(p.110〜)。

以下の記事も参考になります。