SlideShare a Scribd company logo
1 of 14
自動補完(AutoComplete)と!
もしかして?(Did You Mean?)
minoru@apache.org
コンテンツ
自動補完(AutoComplete)!
もしかして?(Did You Mean ?)!
初版 Apache Solr 入門では!
日本語の取り扱いの問題!
日本語IMEの介在!
日本語の文字種、単語長!
改訂新版 Apache Solr 入門では!
デモンストレーション
自動補完(AutoComplete)
キーボードからの検索キーワードの入力を自動補完する機能。
過去の入力履歴や、データベース内のキーワードなどを元に、
入力された文字列から残りの文字列を予測して提案すること。!
長いキーワードや、同じキーワードの繰り返しの入力の際に、
ユーザの入力の手間を省く事ができる。また、キーワードの入
力間違いの防止にも役立つ。

入力!

サジェスチョン候補!

sol

solar!
solaris!
solr!
solrmeter!
solrritas
もしかして?(Did You Mean ?)
アルファベットのスペルミスや漢字の誤字、脱字などの可能性
がある際に、入力されたキーワードに近いキーワードを提案す
る機能。キーワードがどれだけ近いかはレーベンシュタイン距
離(Levenshtein distance)を用いる事が多い。
「solar」と「solr」の編集グラフ
1. solar (“s” 一致)!
2. solar (“o” 一致)!
3. solar (“l” 一致)!

s
s

5. solr (“r” 一致)

l
r

r

一致

o
一致

a

一致

s

4. solr (“a” 削除) 編集1回 ! o

l

o

l
一致

aの削除

a
r
初版 Apache Solr 入門では
Solr 1.4の頃(2010年)に出版された初版ではそれぞれ以下のコン
ポーネントを使用しての実装を紹介。!
•

自動補完(AutoComplete) : TermsComponent!

•

もしかして?(Did You Mean ?) : SpellCheckComponent!

しかし、日本語を取り扱うSolrにおいては、日本語キーワード
をうまくサジェストできない場面が多くある。
日本語の取り扱いの問題
Solrの自動補完(AutoComplete)やもしかして?(Did You Mean ?)
のキーワードサジェストが日本語を扱う環境で上手くいかない
大きな理由は二つ。!
IMEによる変換途中の日
本語も扱う必要がある

•

日本語入力時のIMEの介在!

•

日本語の文字種、単語長!

およそ5万字

日本で常用漢字は1945字

日本語を扱う環境のTermsComponentやSpellCheckComponent
では上記の問題に対応しきれない。
日本語IMEの介在
TermsComponentを使用した場合、変換途中の日本語の文字列
で始まるTermがインデックス内で発見できなければサジェスト
できない。

日本語IMEを
介して入力中

入力!

インデックス内のTerm!

しn

品川!

「しn」で始まる文字列を見つけられない

新宿!

ので、キーワードをサジェストできない

新大久保!
新橋!
…
日本語の文字種、単語長
日本語では単語長(文字数)が英語に比べて短かったり、平仮名・
片仮名・漢字などの多くの文字種があるため、レーベンシュタイ
ン距離による文字列類似度では正しくサジェストができない場合
がある。
もしかして:品川

を表示できない

「日本語」と「にほんご」の編集グラフ

編集距離が7となり、「日本語」と「にほん
ご」は全く似ていないと判断されてしまい、

日
に
ほ

語
に
ほ

挿入

「にほんご」に対して「もしかして、日本
語?」とサジェストすることができない。

削除

本

ん

ん

1. 本語 (“日” 削除) 編集1回!
2. 語 (“本” 削除) 編集2回!
3. (“語” 削除) 編集3回!
4. に (“に” 挿入) 編集4回 !
5. にほ (“ほ” 挿入) 編集5回!
6. にほん (“ん” 挿入) 編集6回!

ご

ご

7. にほんご (“ご” 挿入) 編集7回
改訂新版 Apache Solr 入門では
TermsComponent、SpellCheckComponentの実装に加え、
Suggesterを使用した日本語環境の自動補完(AutoComplete)、

もしかして?(Did You Mean ?)の実装例を紹介。
IMEを使った日本語入力中
もサポートできる自動補完

文字種の違いを吸収で
きるもしかして?
デモンストレーション

TermsComponent、SpellCheckComponent

VS

Suggester
書籍
[改訂新版] Apache Solr入門−−オープンソース全文検索エンジン!
技術評論社!

!

2013年11月29日発売!
著者

大谷純, 阿部慎一朗, 大須賀稔, 

北野太郎, 鈴木教嗣, 平賀一昭!
監修 

株式会社リクルートテクノロジーズ,

株式会社ロンウイット!
価格 : 3,780円
セミナー、トレーンング
セミナー (http://www.rondhuit.com/services/seminars.html)!
Apache Solr ご紹介セミナー!
トレーニング (http://www.rondhuit.com/services/training.html)!
Solr 4 基礎 / 応用 / クラウド分散運用 / DIH!
ManifoldCF 入門!
Mahoutではじめる機械学習
社員募集
ロンウイットは、ともに成長し、未来を創造していく意欲の
ある人材を募集しています!

http://www.rondhuit.com/recruit.html!
募集職種!
コンサルタント!
テクニカルサポート
Thank you for your attention !

More Related Content

Viewers also liked

JSR 352 “Batch Applications for the Java Platform”
JSR 352 “Batch Applications for the Java Platform”JSR 352 “Batch Applications for the Java Platform”
JSR 352 “Batch Applications for the Java Platform”Norito Agetsuma
 
Jbatch実践入門 #jdt2015
Jbatch実践入門 #jdt2015Jbatch実践入門 #jdt2015
Jbatch実践入門 #jdt2015Norito Agetsuma
 
Spring frameworkが大好きなおはなし
Spring frameworkが大好きなおはなしSpring frameworkが大好きなおはなし
Spring frameworkが大好きなおはなしSatoshi Kisanuki
 
Java Batch 仕様 (Public Review時点)
Java Batch 仕様 (Public Review時点) Java Batch 仕様 (Public Review時点)
Java Batch 仕様 (Public Review時点) Norito Agetsuma
 
JobStreamerではじめるJavaBatchのクラウド分散実行
JobStreamerではじめるJavaBatchのクラウド分散実行JobStreamerではじめるJavaBatchのクラウド分散実行
JobStreamerではじめるJavaBatchのクラウド分散実行Yoshitaka Kawashima
 
たとえ日本人同士でも必要な異文化理解力
たとえ日本人同士でも必要な異文化理解力たとえ日本人同士でも必要な異文化理解力
たとえ日本人同士でも必要な異文化理解力Yoshitaka Kawashima
 
イミュータブルデータモデル(世代編)
イミュータブルデータモデル(世代編)イミュータブルデータモデル(世代編)
イミュータブルデータモデル(世代編)Yoshitaka Kawashima
 

Viewers also liked (9)

第15回Solr勉強会 - Solr at Yahoo! JAPAN #SolrJP
第15回Solr勉強会 - Solr at Yahoo! JAPAN #SolrJP第15回Solr勉強会 - Solr at Yahoo! JAPAN #SolrJP
第15回Solr勉強会 - Solr at Yahoo! JAPAN #SolrJP
 
JSR 352 “Batch Applications for the Java Platform”
JSR 352 “Batch Applications for the Java Platform”JSR 352 “Batch Applications for the Java Platform”
JSR 352 “Batch Applications for the Java Platform”
 
Jbatch実践入門 #jdt2015
Jbatch実践入門 #jdt2015Jbatch実践入門 #jdt2015
Jbatch実践入門 #jdt2015
 
Spring frameworkが大好きなおはなし
Spring frameworkが大好きなおはなしSpring frameworkが大好きなおはなし
Spring frameworkが大好きなおはなし
 
Java Batch 仕様 (Public Review時点)
Java Batch 仕様 (Public Review時点) Java Batch 仕様 (Public Review時点)
Java Batch 仕様 (Public Review時点)
 
JobStreamerではじめるJavaBatchのクラウド分散実行
JobStreamerではじめるJavaBatchのクラウド分散実行JobStreamerではじめるJavaBatchのクラウド分散実行
JobStreamerではじめるJavaBatchのクラウド分散実行
 
たとえ日本人同士でも必要な異文化理解力
たとえ日本人同士でも必要な異文化理解力たとえ日本人同士でも必要な異文化理解力
たとえ日本人同士でも必要な異文化理解力
 
イミュータブルデータモデル(世代編)
イミュータブルデータモデル(世代編)イミュータブルデータモデル(世代編)
イミュータブルデータモデル(世代編)
 
Build Features, Not Apps
Build Features, Not AppsBuild Features, Not Apps
Build Features, Not Apps
 

Recently uploaded

SOPを理解する 2024/04/19 の勉強会で発表されたものです
SOPを理解する       2024/04/19 の勉強会で発表されたものですSOPを理解する       2024/04/19 の勉強会で発表されたものです
SOPを理解する 2024/04/19 の勉強会で発表されたものですiPride Co., Ltd.
 
論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A survey論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A surveyToru Tamaki
 
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介Yuma Ohgami
 
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略Ryo Sasaki
 
論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNet論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNetToru Tamaki
 
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)Hiroki Ichikura
 
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...Toru Tamaki
 
TSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdfTSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdftaisei2219
 
スマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システムスマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システムsugiuralab
 

Recently uploaded (9)

SOPを理解する 2024/04/19 の勉強会で発表されたものです
SOPを理解する       2024/04/19 の勉強会で発表されたものですSOPを理解する       2024/04/19 の勉強会で発表されたものです
SOPを理解する 2024/04/19 の勉強会で発表されたものです
 
論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A survey論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A survey
 
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
 
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
 
論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNet論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNet
 
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
 
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
 
TSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdfTSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdf
 
スマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システムスマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システム
 

Solr AutoComplete and Did You Mean?