Submit Search
Upload
ホットな日本語入力技術のお勉強。〜 OSC 2016 Hamanako 編 〜
•
0 likes
•
8,549 views
Masahiko Hashimoto
Follow
「ホットな日本語入力技術のお勉強。」OSC浜名湖2016編です。 N-gramのことについて新規に説明を追加してます。
Read less
Read more
Technology
Report
Share
Report
Share
1 of 28
Download now
Download to read offline
Recommended
OSSかな漢字変換『Egoistic Lily』の紹介&今後の展望
OSSかな漢字変換『Egoistic Lily』の紹介&今後の展望
Masahiko Hashimoto
シリコンバレーでエンジニア就職する前に知りたかったこと
シリコンバレーでエンジニア就職する前に知りたかったこと
Tatsuya Nanjo
Rust で RTOS を考える
Rust で RTOS を考える
ryuz88
YoctoをつかったDistroの作り方とハマり方
YoctoをつかったDistroの作り方とハマり方
wata2ki
Marp Tutorial
Marp Tutorial
Rui Watanabe
自作かな漢字変換「Genji」をつくったよ
自作かな漢字変換「Genji」をつくったよ
Masahiko Hashimoto
C++ マルチスレッドプログラミング
C++ マルチスレッドプログラミング
Kohsuke Yuasa
チームメイトのためにdocstringを書こう! pyconjp2019
チームメイトのためにdocstringを書こう! pyconjp2019
cocodrips
Recommended
OSSかな漢字変換『Egoistic Lily』の紹介&今後の展望
OSSかな漢字変換『Egoistic Lily』の紹介&今後の展望
Masahiko Hashimoto
シリコンバレーでエンジニア就職する前に知りたかったこと
シリコンバレーでエンジニア就職する前に知りたかったこと
Tatsuya Nanjo
Rust で RTOS を考える
Rust で RTOS を考える
ryuz88
YoctoをつかったDistroの作り方とハマり方
YoctoをつかったDistroの作り方とハマり方
wata2ki
Marp Tutorial
Marp Tutorial
Rui Watanabe
自作かな漢字変換「Genji」をつくったよ
自作かな漢字変換「Genji」をつくったよ
Masahiko Hashimoto
C++ マルチスレッドプログラミング
C++ マルチスレッドプログラミング
Kohsuke Yuasa
チームメイトのためにdocstringを書こう! pyconjp2019
チームメイトのためにdocstringを書こう! pyconjp2019
cocodrips
目grep入門 +解説
目grep入門 +解説
murachue
自作ペアリング/BLS署名ライブラリの紹介
自作ペアリング/BLS署名ライブラリの紹介
MITSUNARI Shigeo
Node.js Native ESM への道 〜最終章: Babel / TypeScript Modules との闘い〜
Node.js Native ESM への道 〜最終章: Babel / TypeScript Modules との闘い〜
Teppei Sato
GoによるiOSアプリの開発
GoによるiOSアプリの開発
Takuya Ueda
UEFIによるELFバイナリの起動
UEFIによるELFバイナリの起動
uchan_nos
不遇の標準ライブラリ - valarray
不遇の標準ライブラリ - valarray
Ryosuke839
関数型・オブジェクト指向宗教戦争に疲れたなたに送るGo言語入門
関数型・オブジェクト指向宗教戦争に疲れたなたに送るGo言語入門
Tadahiro Ishisaka
Go入門
Go入門
Takuya Ueda
本当に無駄な仕事をしたくない人のためのHoudiniプロシージャル入門
本当に無駄な仕事をしたくない人のためのHoudiniプロシージャル入門
jyouryuusui
日本語テストメソッドについて
日本語テストメソッドについて
kumake
C++ マルチスレッド 入門
C++ マルチスレッド 入門
京大 マイコンクラブ
「Redmineの運用パターン集~私に聞くな、チケットシステムに聞け」
「Redmineの運用パターン集~私に聞くな、チケットシステムに聞け」
akipii Oga
Pythonの処理系はどのように実装され,どのように動いているのか? 我々はその実態を調査すべくアマゾンへと飛んだ.
Pythonの処理系はどのように実装され,どのように動いているのか? 我々はその実態を調査すべくアマゾンへと飛んだ.
kiki utagawa
競技プログラミングのためのC++入門
競技プログラミングのためのC++入門
natrium11321
ユーザーインタビューするときは、どうやらゾンビのおでましさ
ユーザーインタビューするときは、どうやらゾンビのおでましさ
Yoshiki Hayama
暗号技術の実装と数学
暗号技術の実装と数学
MITSUNARI Shigeo
テスト文字列に「うんこ」と入れるな
テスト文字列に「うんこ」と入れるな
Kentaro Matsui
Yocto Project ハンズオン プレゼン用資料
Yocto Project ハンズオン プレゼン用資料
Nobuhiro Iwamatsu
ホットな日本語技術の(ちょっとした)お勉強。
ホットな日本語技術の(ちょっとした)お勉強。
Masahiko Hashimoto
中3女子が狂える本当に気持ちのいい constexpr
中3女子が狂える本当に気持ちのいい constexpr
Genya Murakami
Nginxで日本語入力を遊んでみよう!
Nginxで日本語入力を遊んでみよう!
Masahiko Hashimoto
アヒルヤキを変換してみよう
アヒルヤキを変換してみよう
Masahiko Hashimoto
More Related Content
What's hot
目grep入門 +解説
目grep入門 +解説
murachue
自作ペアリング/BLS署名ライブラリの紹介
自作ペアリング/BLS署名ライブラリの紹介
MITSUNARI Shigeo
Node.js Native ESM への道 〜最終章: Babel / TypeScript Modules との闘い〜
Node.js Native ESM への道 〜最終章: Babel / TypeScript Modules との闘い〜
Teppei Sato
GoによるiOSアプリの開発
GoによるiOSアプリの開発
Takuya Ueda
UEFIによるELFバイナリの起動
UEFIによるELFバイナリの起動
uchan_nos
不遇の標準ライブラリ - valarray
不遇の標準ライブラリ - valarray
Ryosuke839
関数型・オブジェクト指向宗教戦争に疲れたなたに送るGo言語入門
関数型・オブジェクト指向宗教戦争に疲れたなたに送るGo言語入門
Tadahiro Ishisaka
Go入門
Go入門
Takuya Ueda
本当に無駄な仕事をしたくない人のためのHoudiniプロシージャル入門
本当に無駄な仕事をしたくない人のためのHoudiniプロシージャル入門
jyouryuusui
日本語テストメソッドについて
日本語テストメソッドについて
kumake
C++ マルチスレッド 入門
C++ マルチスレッド 入門
京大 マイコンクラブ
「Redmineの運用パターン集~私に聞くな、チケットシステムに聞け」
「Redmineの運用パターン集~私に聞くな、チケットシステムに聞け」
akipii Oga
Pythonの処理系はどのように実装され,どのように動いているのか? 我々はその実態を調査すべくアマゾンへと飛んだ.
Pythonの処理系はどのように実装され,どのように動いているのか? 我々はその実態を調査すべくアマゾンへと飛んだ.
kiki utagawa
競技プログラミングのためのC++入門
競技プログラミングのためのC++入門
natrium11321
ユーザーインタビューするときは、どうやらゾンビのおでましさ
ユーザーインタビューするときは、どうやらゾンビのおでましさ
Yoshiki Hayama
暗号技術の実装と数学
暗号技術の実装と数学
MITSUNARI Shigeo
テスト文字列に「うんこ」と入れるな
テスト文字列に「うんこ」と入れるな
Kentaro Matsui
Yocto Project ハンズオン プレゼン用資料
Yocto Project ハンズオン プレゼン用資料
Nobuhiro Iwamatsu
ホットな日本語技術の(ちょっとした)お勉強。
ホットな日本語技術の(ちょっとした)お勉強。
Masahiko Hashimoto
中3女子が狂える本当に気持ちのいい constexpr
中3女子が狂える本当に気持ちのいい constexpr
Genya Murakami
What's hot
(20)
目grep入門 +解説
目grep入門 +解説
自作ペアリング/BLS署名ライブラリの紹介
自作ペアリング/BLS署名ライブラリの紹介
Node.js Native ESM への道 〜最終章: Babel / TypeScript Modules との闘い〜
Node.js Native ESM への道 〜最終章: Babel / TypeScript Modules との闘い〜
GoによるiOSアプリの開発
GoによるiOSアプリの開発
UEFIによるELFバイナリの起動
UEFIによるELFバイナリの起動
不遇の標準ライブラリ - valarray
不遇の標準ライブラリ - valarray
関数型・オブジェクト指向宗教戦争に疲れたなたに送るGo言語入門
関数型・オブジェクト指向宗教戦争に疲れたなたに送るGo言語入門
Go入門
Go入門
本当に無駄な仕事をしたくない人のためのHoudiniプロシージャル入門
本当に無駄な仕事をしたくない人のためのHoudiniプロシージャル入門
日本語テストメソッドについて
日本語テストメソッドについて
C++ マルチスレッド 入門
C++ マルチスレッド 入門
「Redmineの運用パターン集~私に聞くな、チケットシステムに聞け」
「Redmineの運用パターン集~私に聞くな、チケットシステムに聞け」
Pythonの処理系はどのように実装され,どのように動いているのか? 我々はその実態を調査すべくアマゾンへと飛んだ.
Pythonの処理系はどのように実装され,どのように動いているのか? 我々はその実態を調査すべくアマゾンへと飛んだ.
競技プログラミングのためのC++入門
競技プログラミングのためのC++入門
ユーザーインタビューするときは、どうやらゾンビのおでましさ
ユーザーインタビューするときは、どうやらゾンビのおでましさ
暗号技術の実装と数学
暗号技術の実装と数学
テスト文字列に「うんこ」と入れるな
テスト文字列に「うんこ」と入れるな
Yocto Project ハンズオン プレゼン用資料
Yocto Project ハンズオン プレゼン用資料
ホットな日本語技術の(ちょっとした)お勉強。
ホットな日本語技術の(ちょっとした)お勉強。
中3女子が狂える本当に気持ちのいい constexpr
中3女子が狂える本当に気持ちのいい constexpr
Similar to ホットな日本語入力技術のお勉強。〜 OSC 2016 Hamanako 編 〜
Nginxで日本語入力を遊んでみよう!
Nginxで日本語入力を遊んでみよう!
Masahiko Hashimoto
アヒルヤキを変換してみよう
アヒルヤキを変換してみよう
Masahiko Hashimoto
C言語なWebSocketの遊び方。
C言語なWebSocketの遊び方。
Masahiko Hashimoto
京都発祥日本語入力「FreeWnn」は(今度こそ)どこまで賢くなれるか?
京都発祥日本語入力「FreeWnn」は(今度こそ)どこまで賢くなれるか?
Masahiko Hashimoto
We are OSS Communities: Introduction of Start Python Club
We are OSS Communities: Introduction of Start Python Club
Takeshi Akutsu
オンライン・ワークショップで最新のスキルを共有しよう。
オンライン・ワークショップで最新のスキルを共有しよう。
Tsuyoshi Motobe
もっとドキュメントが日本語になりますように
もっとドキュメントが日本語になりますように
Takako Miyagawa
おーぷん万葉プロジェクトの進捗とIzumoのその後
おーぷん万葉プロジェクトの進捗とIzumoのその後
Masahiko Hashimoto
oscooヤラナイカ?
oscooヤラナイカ?
Akihiko Kigure
かな漢字変換ソフト「Genji」をつくってみた
かな漢字変換ソフト「Genji」をつくってみた
Masahiko Hashimoto
TrieとLOUDS??
TrieとLOUDS??
Masahiko Hashimoto
Linuxデスクトップのお手軽セミナー 〜クラウドとかも使いこなしちゃえ〜
Linuxデスクトップのお手軽セミナー 〜クラウドとかも使いこなしちゃえ〜
Masahiko Hashimoto
Goで始める言語処理系実装入門
Goで始める言語処理系実装入門
虎の穴 開発室
WordCamp Yokohama2010 プレゼン
WordCamp Yokohama2010 プレゼン
miccweb
オープンソースとロボット
オープンソースとロボット
Ryuichi Ueda
CLSイベント企画について
CLSイベント企画について
Masafumi Ohta
Aizu.LT::Tokyo #2
Aizu.LT::Tokyo #2
Taku Unno
第0回徳島スマホアプリ開発勉強会
第0回徳島スマホアプリ開発勉強会
健一 辰濱
プロト〜サービスアウトまでの開発支援ツールの作り方〜CrystalFantasia〜
プロト〜サービスアウトまでの開発支援ツールの作り方〜CrystalFantasia〜
Keisuke Utsumi
おーぷん万葉プロジェクトとは
おーぷん万葉プロジェクトとは
Masahiko Hashimoto
Similar to ホットな日本語入力技術のお勉強。〜 OSC 2016 Hamanako 編 〜
(20)
Nginxで日本語入力を遊んでみよう!
Nginxで日本語入力を遊んでみよう!
アヒルヤキを変換してみよう
アヒルヤキを変換してみよう
C言語なWebSocketの遊び方。
C言語なWebSocketの遊び方。
京都発祥日本語入力「FreeWnn」は(今度こそ)どこまで賢くなれるか?
京都発祥日本語入力「FreeWnn」は(今度こそ)どこまで賢くなれるか?
We are OSS Communities: Introduction of Start Python Club
We are OSS Communities: Introduction of Start Python Club
オンライン・ワークショップで最新のスキルを共有しよう。
オンライン・ワークショップで最新のスキルを共有しよう。
もっとドキュメントが日本語になりますように
もっとドキュメントが日本語になりますように
おーぷん万葉プロジェクトの進捗とIzumoのその後
おーぷん万葉プロジェクトの進捗とIzumoのその後
oscooヤラナイカ?
oscooヤラナイカ?
かな漢字変換ソフト「Genji」をつくってみた
かな漢字変換ソフト「Genji」をつくってみた
TrieとLOUDS??
TrieとLOUDS??
Linuxデスクトップのお手軽セミナー 〜クラウドとかも使いこなしちゃえ〜
Linuxデスクトップのお手軽セミナー 〜クラウドとかも使いこなしちゃえ〜
Goで始める言語処理系実装入門
Goで始める言語処理系実装入門
WordCamp Yokohama2010 プレゼン
WordCamp Yokohama2010 プレゼン
オープンソースとロボット
オープンソースとロボット
CLSイベント企画について
CLSイベント企画について
Aizu.LT::Tokyo #2
Aizu.LT::Tokyo #2
第0回徳島スマホアプリ開発勉強会
第0回徳島スマホアプリ開発勉強会
プロト〜サービスアウトまでの開発支援ツールの作り方〜CrystalFantasia〜
プロト〜サービスアウトまでの開発支援ツールの作り方〜CrystalFantasia〜
おーぷん万葉プロジェクトとは
おーぷん万葉プロジェクトとは
More from Masahiko Hashimoto
DNNを使用した新しいかな漢字変換『EgoisticLily』 その仕組みとは?
DNNを使用した新しいかな漢字変換『EgoisticLily』 その仕組みとは?
Masahiko Hashimoto
Dockerいろいろ使って思うこと
Dockerいろいろ使って思うこと
Masahiko Hashimoto
BrowserMob-Proxyのお話
BrowserMob-Proxyのお話
Masahiko Hashimoto
DeepLearning入門以前
DeepLearning入門以前
Masahiko Hashimoto
あひるに焼かれた話と今後のおーぷん万葉について
あひるに焼かれた話と今後のおーぷん万葉について
Masahiko Hashimoto
C++アプリをCmakeとEclipseで開発するお話
C++アプリをCmakeとEclipseで開発するお話
Masahiko Hashimoto
続・Cannaをフォークしてみた
続・Cannaをフォークしてみた
Masahiko Hashimoto
Cannaをフォークしてみた
Cannaをフォークしてみた
Masahiko Hashimoto
秘伝:クラウドに開発環境をえいっ!と構築する方法
秘伝:クラウドに開発環境をえいっ!と構築する方法
Masahiko Hashimoto
AzureとSUSE Studioのあつ~い関係
AzureとSUSE Studioのあつ~い関係
Masahiko Hashimoto
X window managerで遊んでみた
X window managerで遊んでみた
Masahiko Hashimoto
オープンソースで始める「超」VPN 構築術
オープンソースで始める「超」VPN 構築術
Masahiko Hashimoto
自分色のLinuxホームサーバーを作ってみよう
自分色のLinuxホームサーバーを作ってみよう
Masahiko Hashimoto
More from Masahiko Hashimoto
(13)
DNNを使用した新しいかな漢字変換『EgoisticLily』 その仕組みとは?
DNNを使用した新しいかな漢字変換『EgoisticLily』 その仕組みとは?
Dockerいろいろ使って思うこと
Dockerいろいろ使って思うこと
BrowserMob-Proxyのお話
BrowserMob-Proxyのお話
DeepLearning入門以前
DeepLearning入門以前
あひるに焼かれた話と今後のおーぷん万葉について
あひるに焼かれた話と今後のおーぷん万葉について
C++アプリをCmakeとEclipseで開発するお話
C++アプリをCmakeとEclipseで開発するお話
続・Cannaをフォークしてみた
続・Cannaをフォークしてみた
Cannaをフォークしてみた
Cannaをフォークしてみた
秘伝:クラウドに開発環境をえいっ!と構築する方法
秘伝:クラウドに開発環境をえいっ!と構築する方法
AzureとSUSE Studioのあつ~い関係
AzureとSUSE Studioのあつ~い関係
X window managerで遊んでみた
X window managerで遊んでみた
オープンソースで始める「超」VPN 構築術
オープンソースで始める「超」VPN 構築術
自分色のLinuxホームサーバーを作ってみよう
自分色のLinuxホームサーバーを作ってみよう
Recently uploaded
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NTT DATA Technology & Innovation
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
Toru Tamaki
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
CRI Japan, Inc.
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
Toru Tamaki
新人研修 後半 2024/04/26の勉強会で発表されたものです。
新人研修 後半 2024/04/26の勉強会で発表されたものです。
iPride Co., Ltd.
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
Hiroshi Tomioka
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
iPride Co., Ltd.
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
CRI Japan, Inc.
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
iPride Co., Ltd.
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
Hiroshi Tomioka
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
atsushi061452
Recently uploaded
(11)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
新人研修 後半 2024/04/26の勉強会で発表されたものです。
新人研修 後半 2024/04/26の勉強会で発表されたものです。
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
ホットな日本語入力技術のお勉強。〜 OSC 2016 Hamanako 編 〜
1.
ホットな日本語入力技術のお勉強。 〜 OSC 2016
Hamanako 編 〜 2016/1/23 OSC 2016 Hamanako はしもとまさひこ
2.
簡単に自己紹介。 ● 東海道らぐ(Tokaido Linux
User Group)案内人 – 東京〜静岡〜名古屋〜京都〜大阪で活動するらぐ – 明日、鴨江アートセンターでオフ会やります!!! 詳しくは東海道らぐブースのビラを参照(余ってるはず) ● ちびぎーこ保護者会(別名日本openSUSEユーザ会)の人 ● 最近は日本語入力についていろいろ勉強している人
3.
まず、質問です(^^) これからいくつか質問をします。 ご協力をお願いします!
4.
Q1.日本語入力ソフトを意識して使っていますか? 1. 自分はこれしか使わない!というソフトがある (※MS-IME, ATOK,
Google日本語入力等) 2. ソフトは知らないけど優れたソフトを使いたい! 3. 特に意識したことはない 注: OSとか関係なく回答ください
5.
Q2. OSSなOSをデスクトップで使っていますか? 1. Linux,
BSD等をデスクトップで使ってます! 2. デスクトップはMacしか使わないよ! 3. デスクトップはWindowsに決まってるでしょ! 注: 正直に回答ください(^^)
6.
今日はオープンソースの日本語入力についてです 1. 最近の日本語入力技術とは? 1. 辞書データ構築技術について
〜Trie〜 2. かな漢字変換アルゴリズム① 〜Mozc〜 3. かな漢字変換アルゴリズム② 〜libkkc〜 2. まとめ 1. 最近のオープンソースな日本語入力事情 2. おーぷん万葉の紹介
7.
1-1. 最新の日本語入力技術とは 辞書データ構築編
8.
まず初めは辞書のお話 かな漢字変換を使う際、必ず必要となるのが 辞書、もしくは変換に必要なデータです それを格納するための技術も日々(?)進化してます かな漢字変換ソフト 辞書データ 入力 辞書登録 この文字変換できないから 辞書に登録しなくちゃ! これのこと
9.
データを格納するための技術 〜Trie〜 ● 通常の木構造に対し、枝にラベルがついたもの – メリット:共通接頭検索が可能になる 0 1 2
3 4 5 6 7 8 か み た す び わ た し これがいわゆるラベル ラベルがついてるとTrieと呼ぶ ラベルをたどることで 辞書検索が可能になります →データ圧縮にもつながる
10.
Trieの実装 〜LOUDS〜 10 1110
10 110 10 0 0 0 10 0 0 1 2 3 4 5 6 7 8 か み た す び わ た し 仮想ノード 「0」から 3つに分岐 「1」は 分岐なし 「2」から 2つに分岐 「3」は 分岐なし 「4」「5」「6」は 末端ノード 「7」は 分岐なし 「8」は 末端ノード Trieをビットで表現したもの それが「LOUDS」(らうず) 課題として下記のようなものがあります ・ノードを動的に追加することが困難 ・Trie構築後にビットを作成しないと厳しい?
11.
現在の主流はTrie ● その他のTrieの実装としてダブル配列等があります – LOUDSより高速ですが、メモリ消費が大きいので かな漢字変換には不向きと言われてます –
形態素解析器mecabはダブル配列を採用してます ● オープンソースのライブラリが数多く存在します – 自分で実装すると大変! まずはオープンソースで試してみましょう ● Tx / Ux : 非常にコンパクトなLOUDSのライブラリ ● Rx: mozcで採用されているLOUDSのライブラリ ● marisa-trie: libkkcで採用されているLOUDSのライブラリ
12.
1-2. 最新の日本語入力技術とは かな漢字変換アルゴリズム編
13.
注: 繰り返しますが… 本日お話する内容は全て オープンソースの実装ついて です ※AT○KとかMicr○s○ftの技術については知りません!(笑)
14.
オープンソースなかな漢字変換の歴史 ● 1987年 :
Wnn (FreeWnnの前身) ● 1989年 : Canna ● 2002年 : Anthy ● 2010年 : mozc ● 2013年 : libkkc (Fedora19よりデフォルトIMEへ) 簡単な年表ですが…^^;
15.
従来の変換アルゴリズム例: N文節最長一致法 ● 例文: 「きょうはあひるやきです」 今日 歯
あ 昼 焼きで 酢 今日は あ 昼 焼きです 今日は 家鴨 焼きです 今日は あひる焼きです 6文節 4文節 3文節 2文節 一番少ないのでこれを選択! ポイント: 文節 = 自立語(名詞・動詞等) + 付属語(助詞等) Canna等で採用
16.
かな漢字変換アルゴリズム① 〜Mozc〜 ● Mozc –
Google日本語入力のオープンソース版 – 2010年 Googleによってリリース ● 形態素解析を用いた変換アルゴリズム – コスト最小法。現在の主流になりつつある
17.
コスト最小法 とは 文 頭 私 の 名前 は 中野 注:ちょっと(かなり?)端折って説明します^^; です 文 末ので
す 中 綿 市 花 課 例: 「わたしのなまえはなかのです」を変換する場合 (コストの値はテキトーです^^;) 10 30 15 30 15 10 15 40 20 50 ● 単語生起コスト: 単語の出現優先度を表したコスト ● 連接コスト: 単語と単語の結びつきやすさを表したコスト → 全て足して、合計値が最も低いルートが 候補になります 15 30 40 45 20 20 20 20 50 20 25 30 40 45 20 20 出現頻度の高い単語は 単語生起コストが低い 「名前」と「花」という単語は結びつきにくいので 連接コストは高い
18.
コスト最小法も完璧ではない? Mozcで変換できないものもある… 「にわにはにわにわとりがいる」 → 「庭には庭鶏がいる」になってしまう 庭 庭
鶏には が いる 庭 二 鶏には が いる羽 正解の変換のほうが単語数が多いため 単語生起コストがどうしても高くなる
19.
かな漢字変換アルゴリズム② 〜libkkc〜 ● libkkc –
2013年 Fedora19のデフォルトIMEになる – RedHat社のUeno氏によって開発 ● N-gramによるかな漢字変換 – 形態素解析を行わないアルゴリズム = 辞書データに品詞情報を持たない – ビッグデータ(巨大コーパス)を十分に活かせる可能性 ここが重要!!!
20.
N-gramとは? N文字の共起関係からテキストの特徴を分析する – 2文字: 2-gram (=
bi-gram) – 3文字: 3-gram (= tri-gram) 例文) 私の名前は中野です → 2-gram 「私の」 「の名」 「名前」 「前は」 「は中」 「中野」 「野で」 「です」 この単位で確率を求め 変換用データを作成します
21.
例えばlibkkcの変換用データは… -1.114728 ぬいぐるみ/ぬいぐるみ 」/」
ていど/程度 -0.667107 ぬいぐるみ/ぬいぐるみ 」/」 と/と -0.643911 ぬいぐるみ/ぬいぐるみ うらない/占い を/を -0.740726 ぬいぐるみ/ぬいぐるみ たすう/多数 を/を -0.454970 ぬいぐるみ/ぬいぐるみ だ/だ が/が -0.814252 ぬいぐるみ/ぬいぐるみ で/で わりお/ワリオ -1.110465 ぬいぐるみ/ぬいぐるみ は/は かのじょ/彼女 -0.802579 ぬいぐるみ/ぬいぐるみ やら/やら しゃしん/写真 -1.626115 ぬいぐるみ/ぬいぐるみ を/を 「/「 -1.708439 ぬいぐるみ/ぬいぐるみ を/を せいさく/製作 -1.631926 ぬいぐるみ/ぬいぐるみ を/を つく/作 -1.713616 ぬいぐるみ/ぬいぐるみ を/を なげつけ/投げつけ -1.681401 ぬいぐるみ/ぬいぐるみ を/を のこ/残 -1.713256 ぬいぐるみ/ぬいぐるみ を/を もちこ/持ち込 -1.714574 ぬいぐるみ/ぬいぐるみ を/を よご/汚 -1.716680 ぬいぐるみ/ぬいぐるみ を/を りんぐ/リング -0.813648 ぬいぐるみ/ぬいぐるみ (/( じょん/ジョン -0.803737 ぬいぐるみ/ヌイグルミ の/の こと/こと 単語単位ではなく 単語の組み合わせ単位で 変換用データとして 登録されていますね なんだかノイズデータっぽいのもいるのですが…
22.
結構さくさく変換できる…が!? ● 苦手な変換ももちろんある – 「ぬいぐるみをぬう」 →「ぬいぐるみを縫う」(正解) –
「ぬいぐるみ」 →「縫い包み」(そうなるの!?) – 「ぬいぐるみのことをおもう」→「ヌイグルミのことを思う」 ● 形態素解析を行わない → 文節区切りができない → 変換したい箇所にフォーカスを当てるのがやや大変! 「この漢字をどうしましょ」 ←こんな感じでフォーカスが当たってしまうorz 前ページのノイズデータを 思いっきり拾った感じですね…
23.
2.まとめ
24.
現在のLinuxのかな漢字変換 ● およそMozc一色 – Ubuntu,
Debian, openSUSE, VineLinux… – まぁそれでもいいのではないかと言われているが… – 途中いろいろ問題発生しつつ乗り越えてる感ある ● とはいえ、既に一部でサポートフェーズと言われているのも事実 ● Redhat系はlibkkcですね – Fedora, CentOS…
25.
皆さん、本当にそれでいいですか?
26.
おーぷん万葉プロジェクトとは ● 目的「自由な日本語辞書を手に入れよう!」 – 現在: かな漢字変換ソフト「Genji」を開発中。 ● 現状の問題点: –
ビックデータと叫ばれる時代に、開発がアクティブで コミュニティー主体の日本語入力システムがない??? → そんな現状を打破したい!てのが目的です。
27.
日本語をもっと自由に 楽しみましょう!
28.
ご清聴、ありがとうございました。
Download now