ホットな日本語技術の(ちょっとした)お勉強。

28
ホットな日本語技術の(ちょっとした)お勉強。 オープンソースカンファレンス 2015 Niigata 2015/9/5 はしもとまさひこ

Upload: masahiko-hashimoto

Post on 08-Jan-2017

1.088 views

Category:

Technology


0 download

TRANSCRIPT

Page 1: ホットな日本語技術の(ちょっとした)お勉強。

ホットな日本語技術の(ちょっとした)お勉強。

オープンソースカンファレンス 2015 Niigata2015/9/5 はしもとまさひこ

Page 2: ホットな日本語技術の(ちょっとした)お勉強。

簡単に自己紹介。

● 東海道らぐ(Tokaido Linux User Group)案内人– 東京〜静岡〜名古屋〜京都〜大阪で活動するらぐ。– 今日は新潟ってことでおやすみ^^;

● ちびぎーこ保護者会(別名日本openSUSEユーザ会)の人

● 大学では文学部卒ってことで最近日本語入力についていろいろ勉強している人

Page 3: ホットな日本語技術の(ちょっとした)お勉強。

まず、質問です(^^)

これからいくつか質問をします。

ご協力をお願いします!

Page 4: ホットな日本語技術の(ちょっとした)お勉強。

Q1.日本語入力ソフトを意識して使っていますか?

1. 自分はこれしか使わない!というソフトがある (※MS-IME, ATOK, Google日本語入力等)

2. ソフトは知らないけど優れたソフトを使いたい!

3. 特に意識したことはない

注: OSとか関係なく回答ください

Page 5: ホットな日本語技術の(ちょっとした)お勉強。

Q2. OSSなOSをデスクトップで使っていますか?

1. Linux, BSD等をデスクトップで使ってます!

2. デスクトップはMacしか使わないよ!

3. デスクトップはWindowsに決まってるでしょ!

注: 正直に回答ください(^^)

Page 6: ホットな日本語技術の(ちょっとした)お勉強。

というわけで、本日のアジェンダ

● Linuxの日本語入力についてお勉強– かな漢字変換システムとインプットメソッドとは?

● 最近の日本語技術ってどうなの?– 今時の日本語変換ソフトで使われる技術とは?

● まとめ。– おーぷん万葉プロジェクトについて

Page 7: ホットな日本語技術の(ちょっとした)お勉強。

1. Linux日本語入力についてお勉強

Page 8: ホットな日本語技術の(ちょっとした)お勉強。

Q. またまた質問です^^

この中で聞いたことがある用語があったら挙手!

● IBus (アイバス)

● Fcitx (ファイティックス)

● Anthy (アンシー)

● mozc (モズク)

● libkkc (リブカカシ)

● FreeWnn (フリーウンヌ) ←どさくさ紛れに混ぜてみたw

Page 9: ホットな日本語技術の(ちょっとした)お勉強。

実はこれらは・・・

今時のLinuxデスクトップには必ず(?)入ってます!● インプットメソッド

– IBus : Redhat, Fedora, openSUSE 等

– Fcitx : Ubuntu, VineLinux 等● かな漢字変換システム

– Anthy : openSUSE 等

– mozc : Debian, Ubuntu, openSUSE 等

– libkkc : Redhat, Fedora 等

(FreeWnnは・・・。 ←先月のOSC京都では知名度抜群でしたw)

Page 10: ホットな日本語技術の(ちょっとした)お勉強。

インプットメソッドとかな漢字変換

Linuxではこんな感じで変換しています

インプットメソッド かな漢字変換システム

IBus, Fcitx, UIM 等

Anthy, mozc, kkc,SKK, Canna, FreeWnn 等キー入力 ひらがな, ローマ字等

変換した日本語画面出力

サーバー・クライアント型をイメージしやすい?※実際、ちょっと古めのかな漢字変換はサーバ型でした!(FreeWnn, Cannaなど)

Page 11: ホットな日本語技術の(ちょっとした)お勉強。

最近の動向 〜インプットメソッド〜

● ちょっと前までは、IBusが主流でした!

…が、突然の仕様変更がIBus離れを加速…

● 移行先→Fcitx– 主に中国で開発 → 日本ではUbuntu がまず採用

– これに続いて VineLinux も新バージョンから Fcitx へ

が、新しいGNOME3がIBusしか受け付けない???

Page 12: ホットな日本語技術の(ちょっとした)お勉強。

最近の動向 〜かな漢字変換システム〜

● ぶっちゃけ、 Mozc 一色!– 対抗: Redhat系(Fedora等)で libkkc を採用

● 結局のところベンダーに依存状態…orz– Mozc : Google が開発

– libkkc : (主に?) Redhat の方が開発

別にベンダー依存でも良くないか!? ・・・てとこに事件発生!

問題: Ibus-mozc が開発停止状態!?

Page 13: ホットな日本語技術の(ちょっとした)お勉強。

Linuxな日本語入力の問題点

● ここまでの話をまとめます!– 新しい GNOME は Ibus しか受け付けない?

– Ibus-mozc の開発が停止してしまった!?

それってつまり…

→ 今後 GNOME では mozc が使えなくなる可能性があるかも!

● そもそも開発者がいない…?– Fcitxのメイン開発者は中国人の方

● 日本語特有の機能は入れにくい…かな?– かな漢字変換の方はベンダー依存状態

● 「綱渡り」と言えるかも…

Page 14: ホットな日本語技術の(ちょっとした)お勉強。

今後のLinux日本語入力の課題

● GNOME問題

→ GNOME で mozc は諦めるべきかな?(ぇ  libkkcを使えばいいのでは?

● 今後はキーボード入力とは限らない!– タッチパネル入力、音声入力にも対応していく必要性

● 現状のつくりでは難しいのでは?

– 新しい仕組み、 Wayland への移行も視野に● Maliit といった新しいOSSも活用していくべき(かも)

Page 15: ホットな日本語技術の(ちょっとした)お勉強。

2. 最近の日本語入力技術ってどうなの?

Page 16: ホットな日本語技術の(ちょっとした)お勉強。

今時のかな漢字変換

いろんな技術が出てきています…– Trie木 (辞書データ格納)

● ダブル配列 (Trieの実装)● LOUDS (Trieの実装)

– ビタビアルゴリズム (最短路検索)

どれも難解なものばかり(?)なので、今日は簡単なものを簡単に説明します!(ぇ

Page 17: ホットな日本語技術の(ちょっとした)お勉強。

1. Trie木 (辞書データ格納法)

● 通常の木構造に対し、枝にラベルがついたもの– メリット:共通接頭検索が可能になる

12 3

5 6

すび

これがいわゆるラベルラベルがついてるとTrieと呼ぶらしい

ラベルをたどることで辞書検索が可能になります→データ圧縮にもつながる

Page 18: ホットな日本語技術の(ちょっとした)お勉強。

2. ダブル配列 (Trieの実装)

ちょっとむずかしいので省略。(こらっ!)

※形態素解析で有名な「mecab」で使われてます。

Page 19: ホットな日本語技術の(ちょっとした)お勉強。

3. LOUDS (Trieの実装)

10 1110 10 110 10 0 0 0 10 0

12 3

5 6

すび

仮想ノード「0」から

3つに分岐「1」は

分岐なし「2」から

2つに分岐「3」は

分岐なし「4」「5」「6」は末端ノード

「7」は分岐なし

「8」は末端ノード

Trieをビットで表現したものそれが「LOUDS」(らうず)です

課題として下記のようなものがあります・ノードを動的に追加することが困難・Trie構築後にビットを作成しないと厳しい?

Page 20: ホットな日本語技術の(ちょっとした)お勉強。

4. ビタビアルゴリズム(最短路検索)

文頭

の 名前は

中野

※ここでは「コスト最小法」について説明します

です

文末ので す

綿 市 花 課

例: 「わたしのなまえはなかのです」を変換する場合 (コストの値はテキトーです^^;)

10

30 15

30 1510

15 40

20

50

● 単語生起コスト: 単語の出現優先度を表したコスト● 連接コスト: 単語と単語の結びつきやすさを表したコスト

→ 全て足して、合計値が最も低いルートが候補になります

15

30 4045

20

2020

20

50

20

25

3040

45

2020

出現頻度の高い単語は単語生起コストが低い

「名前」と「花」という単語は結びつきにくいので連接コストは高い

Page 21: ホットな日本語技術の(ちょっとした)お勉強。

オープンソースライブラリも結構あります!

● Darts / Darts-clone– ダブル配列の実装。Mecabで採用。

● Tx / Ux– LOUDSの実装。Ux は Tx の進化版。

● Rx– LOUDSの実装。Mozcで採用。

● marisa-trie– LOUDSの実装。libkkcで採用。

まずはライブラリをいろいろ触ってみましょう!

Page 22: ホットな日本語技術の(ちょっとした)お勉強。

最近の技術について参考文献

● 「自然言語処理の基礎」– 奥村学著 コロナ社

● 「日本語入力を支える技術」– 徳永拓之著 技術評論社

インターネットではこちらが参考になります

● 「アスペ日記」 takeda25 氏

簡潔データ構造 LOUDS の解説(全12回、練習問題付き)

http://d.hatena.ne.jp/takeda25/20120421/1335019644

Page 23: ホットな日本語技術の(ちょっとした)お勉強。

3. まとめ。

Page 24: ホットな日本語技術の(ちょっとした)お勉強。

紹介してきたとおり…

Linuxの日本語入力付近、課題多いっす!– あるものを使ってるだけでは、いつどうなるかわからない?

でも追ってみるといろいろ奥深くて楽しい!?– 新しい技術をいろいろ学べる!

● ビッグデータ● 機械学習● アルゴリズム

Page 25: ホットな日本語技術の(ちょっとした)お勉強。

日本語探求プロジェクト「おーぷん万葉」とは

● 目的「オープンな日本語を手に入れよう!」– 現在: かな漢字変換ソフト「Izumo」を開発中。

● 現状の問題点:– ビックデータと叫ばれる時代に、開発がアクティブで

オープンコミュニティーな日本語入力システムがない???– インプットメソッド(UI側)も残念な状況orz

→ そんな現状を打破したい!てのが目的です。

Page 26: ホットな日本語技術の(ちょっとした)お勉強。

本日ブース展示あります!

OSC京都で盛り上がった(かは不明)FreeWnnのリアルタイム変換ぽいものを展示しています。

興味を持っていただいた方は、ぜひブースにお立ち寄りください。

Page 27: ホットな日本語技術の(ちょっとした)お勉強。

最後に一言。

日本語探求(ソフト開発)は総合格闘芸術だ!

Page 28: ホットな日本語技術の(ちょっとした)お勉強。

ご清聴、ありがとうございましたm(_ _)m