Apache Solr 検索エンジン入門

550 Views

May 16, 16

スライド概要

Apache Solr 検索エンジン入門

profile-image

2023年10月からSpeaker Deckに移行しました。最新情報はこちらをご覧ください。 https://speakerdeck.com/lycorptech_jp

シェア

またはPlayer版

埋め込む »CMSなどでJSが使えない場合

(ダウンロード不可)

関連スライド

各ページのテキスト
1.

Apache Solr 検索エンジン入門 [email protected]

2.

自己紹介 大須賀 稔 (おおすか みのる) ・ヤフー株式会社 (Yahoo Japan Corp.) システム統括本部 Solr黒帯 ・ゼットラボ株式会社 (Z Lab Corp.) エンジニア ・Apache ソフトウェア財団 (Apache Software Foundation) ManifoldCFプロジェクト コミッター兼PMCメンバー Solrプロジェクト コントリビューター ・[改訂新版] Apache Solr 入門 (技術評論社)

3.

あるキーワードを含むページを 次のものから探してください。 みなさんなら どうしますか?

4.

例1 整理されていない書類の山 Some rights reserved by jepoirrier https://www.flickr.com/photos/jepoirrier/376900808/sizes/o/

5.

例1 すべてのページの先頭から探す Some rights reserved by Siemar https://www.flickr.com/photos/javiersierra/4458644494/sizes/l

6.

例2 装丁された書籍 Some rights reserved by pedrosimoes7 https://www.flickr.com/photos/pedrosimoes7/6187758941/sizes/l

7.

例2 索引を使って探す Some rights reserved by dan taylor https://www.flickr.com/photos/dantaylor/1145628275/sizes/l

8.

検索エンジンも同じです。

9.

検索エンジンとは Some rights reserved by GotCredit https://www.flickr.com/photos/jakerust/16226034713/sizes/l

10.

全文検索エンジン (full-text search engine) ・全文検索とは、複数のドキュメントから、 特定の文字列を検索すること。 ・全文検索には、大きく分けて、以下の2つの手法がある。 1. 逐次型 文頭から単語を探す 2. インデックス(索引)型 インデックスから単語を探す Copyright (C) 2015 Yahoo Japan Corporation. All Rights Reserved.

11.

逐次型 ・検索対象となる全ドキュメントに対して、 文頭から単語を探すことで、 目的のドキュメントを検索する。 ・ドキュメント数が少ない場合に向いている。 PC内のドキュメントやドキュメント内のテキスト。 例) 「雨」を含むドキュメントの検索 ドキュメントID 文書 1 明日の天気は雨のち曇りです 2 今日の天気は晴れのち曇りです Copyright (C) 2015 Yahoo Japan Corporation. All Rights Reserved.

12.

インデックス(索引)型 ・検索対象の全ドキュメントに出現する単語の インデックスを作成し、そのインデックスから 単語を探すことで、目的のドキュメントを検索する。 ・ドキュメント数が多い場合に向いている。 インターネット上のドキュメントや、 企業など、組織内のドキュメント。 Copyright (C) 2015 Yahoo Japan Corporation. All Rights Reserved.

13.

転置インデックス ・単語から、目的とするドキュメントを探すための データベース。 ・書籍の巻末にある索引は、 本における転置インデックスといえる。 Copyright (C) 2015 Yahoo Japan Corporation. All Rights Reserved.

14.

転置インデックスの作成 ドキュメントID ドキュメント D1 明日の天気は雨のち曇りです D2 今日の天気は晴れのち曇りです 単語を抽出し、表を作成 明日 天気 雨 曇り 今日 晴れ D1 1 1 1 1 0 0 D2 0 1 0 1 1 1 単語で並び替えて転置 D1 D2 明日 1 0 雨 1 0 今日 0 1 曇り 1 1 天気 1 1 晴れ 0 1 空間効率を最適化 「雨」を含むドキュメントの検索 単語 ドキュメントID 明日 D2 雨 D2 今日 D1 曇り D1,D2 天気 D1,D2 晴れ D1 Copyright (C) 2015 Yahoo Japan Corporation. All Rights Reserved.

15.

逐次型とインデックス型の比較 逐次型 インデックス型 特徴 ・先頭から一文字ずつ見ていく ・インデックスを利用する 長所 ・検索対象の内容の変化に すぐに対応が可能 ・事前準備が不要で手軽に実行可能 ・ドキュメントが増えても 検索速度の劣化が少ない ・大量のドキュメントの 高速な検索が可能 短所 ・ドキュメントが増えてくると 検索速度が低下してくる ・検索実行時の時間効率が悪い ・検索対象の内容の変化に すぐに対応することが不可能 ・事前にインデックスの作成が必要 Copyright (C) 2015 Yahoo Japan Corporation. All Rights Reserved.

16.

検索の適用範囲 大 インターネット上のドキュメント 企業などの組織内のドキュメントや ニュースなどの特定サービスのドキュメント 規 模 PC内のドキュメント 小 ドキュメント内のテキスト Copyright (C) 2015 Yahoo Japan Corporation. All Rights Reserved.

17.

検索エンジンの構成 Some rights reserved by tec_estromberg https://www.flickr.com/photos/92334668@N07/11122773785/sizes/l

18.

検索エンジン(広義) ・情報を検索するためのソフトウェア 検索エンジン(広義) アナライザー クエリー サーチャー インデクサー ドキュメント インデックス 単語 ドキュメントID T1 D1 T2 D1,D2 ... ... Copyright (C) 2015 Yahoo Japan Corporation. All Rights Reserved.

19.

検索エンジン(狭義) ・情報を検索するための機能およびウェブサイト 検索エンジン(狭義) ウェブサーバ クエリー 検索エンジン(広義) ドキュメント クローラー PC Smart Phone ユーザ Database ウェブ Copyright (C) 2015 Yahoo Japan Corporation. All Rights Reserved.

20.

日本語の扱い Some rights reserved by eiko_eiko https://www.flickr.com/photos/eikoeikoeko/4530351367/sizes/o/

21.

日本語の取り扱い ・最も重要なコンポーネントは「アナライザー」 検索エンジン(広義) アナライザー クエリー サーチャー インデクサー ドキュメント インデックス Copyright (C) 2015 Yahoo Japan Corporation. All Rights Reserved.

22.

英語文書の分割 アナライザー 文字フィルタ I came from Japan. 文字単位での正規化処理を行う i came from japan. 文章を単語に分かち書き トークナイザ i came from japan . 不要な単語の除去や単語の正規化処理など トークン フィルタ i come japan Copyright (C) 2015 Yahoo Japan Corporation. All Rights Reserved.

23.

文章を分割する方法 ・日本語の文章を、文字の並びや単語に分割する方法には 大きく2つの方法がある 1. 形態素解析 日本語辞書を用いて、文書を単語に分割 2. N-gram 機械的に、ある文字数 (N) 単位で、 1文字ずつずらしながら単語として分割 Copyright (C) 2015 Yahoo Japan Corporation. All Rights Reserved.

24.

日本語文書の形態素解析による分割 アナライザー 文字フィルタ 私はメガネを1本だけ買った 半角片仮名、全角数字などの正規化処理など 私はメガネを1本だけ買った 日本語辞書 トークナイザ 日本語辞書を参照しながら文章を単語に分かち書き 私 は メガネ を 1 本 だけ 買っ た 検索に不要な単語の除去、類義語への展開など トークン フィルタ 私 メガネ 眼鏡 1 本 買う Copyright (C) 2015 Yahoo Japan Corporation. All Rights Reserved.

25.

N-gramによる分割 アナライザー 文字フィルタ 私はメガネを1本だけ買った 半角片仮名、全角数字などの正規化処理など 私はメガネを1本だけ買った 2-gram (Bi-gram) で分割 トークナイザ 私は はメ メガネ ガネ ネを を1 1本 本だ だけ け買 買っ った Copyright (C) 2015 Yahoo Japan Corporation. All Rights Reserved.

26.

形態素解析とN-gramの比較 長所 短所 形態素解析 ・インデックスサイズが小さい ・検索実行時の処理が速い ・検索結果のノイズが少ない ・インデックス作成に時間がかかる ・辞書が必要 ・検索漏れが発生する N-gram ・インデックスの作成が速い ・辞書を必要としない ・検索漏れがない ・インデックスサイズが大きい ・検索実行時の処理が遅い ・検索結果にノイズが多い ・現在は、形態素解析による分割が一般的 ・N-gram は、形態素解析と併用して、 検索漏れがないようにする目的で利用される Copyright (C) 2015 Yahoo Japan Corporation. All Rights Reserved.

27.

性能評価 Some rights reserved by ccarlstead https://www.flickr.com/photos/cristic/538205228/sizes/l

28.

適合率 : precision ・検索結果のドキュメント中 (N) に、どれだけ 正解ドキュメント (R) を含んでいるかという正確性の指標。 precision = R N = 25 120 = 0.20833 N 検索結果のドキュメント R 検索できた正解ドキュメント C 検索結果としての正解ドキュメント Copyright (C) 2015 Yahoo Japan Corporation. All Rights Reserved.

29.

再現率 : recall ・検索結果としての正解ドキュメント (C) が、 どれだけ検索できているかという網羅性の指標。 recall = R C = 25 100 = 0.25 N 検索結果のドキュメント R 検索できた正解ドキュメント C 検索結果としての正解ドキュメント Copyright (C) 2015 Yahoo Japan Corporation. All Rights Reserved.

30.

F値 : F-measure ・適合率、再現率の総合的な評価に用いられる。 F-measure = 2・precision・recall = R precision + recall 1 (N + C) 2 = 25 1 (120 + 100) 2 = 0.22727273 N 検索結果のドキュメント R 検索できた正解ドキュメント C 検索結果としての正解ドキュメント Copyright (C) 2015 Yahoo Japan Corporation. All Rights Reserved.

31.

再現率を上げる ・表記揺れ ・旧字体、新字体の正規化 (圓⇔円) ・クエリーの類義語展開 (家⇔住宅) ・単語区切りのミス ・日本語辞書メンテナンス ・N-gram の使用 検索漏れ Copyright (C) 2015 Yahoo Japan Corporation. All Rights Reserved.

32.

適合率を上げる ・再現率を高めると 検索ノイズが問題になる。 ・適切な条件を 付与することで、 検索ノイズを排除する。 検索ノイズ Copyright (C) 2015 Yahoo Japan Corporation. All Rights Reserved.

33.

日本語を扱う上での課題 Some rights reserved by aturkus https://www.flickr.com/photos/aturkus/2557151889/sizes/l

34.

形態素解析とN-gramの課題 長所 短所 形態素解析 ・インデックスサイズが小さい ・検索実行時の処理が速い ・検索結果にノイズが少ない ・インデックス作成に時間がかかる ・辞書が必要 ・検索漏れが発生する N-gram ・インデックスの作成が速い ・辞書を必要としない ・検索漏れがない ・インデックスサイズが大きい ・検索実行時の処理が遅い ・検索結果にノイズが多い ・現在は、形態素解析による分割が一般的 ・N-gram は、形態素解析と併用して、 検索漏れがないようにする目的で利用される Copyright (C) 2015 Yahoo Japan Corporation. All Rights Reserved.

35.

形態素解析による検索漏れの例 革のショルダーバッグ 日本語辞書 トークナイザ 文章を単語に分かち書き 革 の ショルダーバッグ 表層 品詞 ... ... ... ... ショルダーバッグ 名詞 ... ... ... ... 「バッグ」では検索できない バッグ ユーザ 新しいバッグ が欲しいな Copyright (C) 2015 Yahoo Japan Corporation. All Rights Reserved.

36.

N-gramによる検索ノイズの例 東京都港区赤坂 トークナイザ 2-gram (Bi-gram) で分割 東京 京都 都港 港区 区赤 赤坂 「京都」で検索できてしまう 京都へ旅行に 行きたいな 京都 ユーザ Copyright (C) 2015 Yahoo Japan Corporation. All Rights Reserved.

37.

検索エンジンの課題 いかに検索漏れ、および検索ノイズを減らすかが課題。 検索ノイズ 検索漏れ N 検索結果のドキュメント R 検索できた正解ドキュメント C 検索結果としての正解ドキュメント Copyright (C) 2015 Yahoo Japan Corporation. All Rights Reserved.

38.

形態素解析の仕組み Some rights reserved by eblaser https://www.flickr.com/photos/evanblaser/5431117952/sizes/l

39.

形態素とは 形態素とは、言語学の用語で、意味を持つ最小の単位の こと。ある言語において、それ以上分解して意味をな さなくなるまで分解して抽出された、音素のまと まり。 赤坂でランチを食べて元気になった 赤坂 ランチ で て 元気 に になっ た 名詞 名詞 助詞 助詞 名詞 助詞 動詞 助詞 赤 坂 食べ を 元 気 なっ 名詞 名詞 動詞 助詞 名詞 名詞 動詞 Copyright (C) 2015 Yahoo Japan Corporation. All Rights Reserved.

40.

形態素辞書 形態素辞書 表層 品詞 ... コスト 赤坂 名詞 - 4 赤 名詞 - 3 坂 名詞 - 7 で 助詞 - 5 ランチ 名詞 - 5 を 助詞 - 3 食べ 動詞 - 7 て 助詞 - 5 元気 名詞 - 3 元 名詞 - 5 気 名詞 - 6 になっ 動詞 - 10 に 助詞 - 4 なっ 動詞 - 5 た 助詞 - 5 接続コスト表 右側 名詞 助詞 動詞 ... 左 側 名詞 1 4 20 - 助詞 3 6 6 - 動詞 7 3 19 - : - - - - ※形態素辞書、接続コスト表は 簡略化しています Copyright (C) 2015 Yahoo Japan Corporation. All Rights Reserved.

41.

接続コスト エンジニアになった に なっ 助詞 動詞 6 繋がやすい コスト小 BOS エンジニア 名詞 4 繋がやすい コスト小 た 助詞 EOS 3 繋がやすい コスト小 20 繋がにくい コスト大 に なっ 動詞 3 繋がやすい コスト小 合計 13 合計 23 Copyright (C) 2015 Yahoo Japan Corporation. All Rights Reserved.

42.

単語生起コスト カードローンの カード ローン 名詞 名詞 1 繋がやすい 6 出現しやすい コスト小 6 出現しやすい コスト小 BOS の 助詞 EOS 4 繋がやすい 4 繋がやすい カー ドローン 名詞 名詞 1 繋がやすい 6 出現しやすい コスト小 24 出現しにくい コスト大 合計 19 合計 37 Copyright (C) 2015 Yahoo Japan Corporation. All Rights Reserved.

43.

形態素解析の仕組み 赤坂でランチを食べて元気になった BOS 赤坂 名詞 4 4 で 助詞 5 ランチ 名詞 5 3 を 助詞 3 4 食べ 動詞 7 6 て 助詞 5 3 元 名詞 5 1 気 名詞 6 4 に 助詞 4 6 なっ 動詞 5 3 た 助詞 5 EOS 赤 名詞 3 坂 名詞 7 1 4 元気 名詞 3 3 20 になっ 動詞 10 20 3 接続コスト、単語生起コストの合計が小さいものが、 より良い形態素の並びである。 Copyright (C) 2015 Yahoo Japan Corporation. All Rights Reserved.

44.

N-gramの併用による解決 新しいバッグ が欲しいな ユーザ 革のショルダーバッグ q=field_ma:バッグ OR field_ng:バッグ field_ma (形態素解析) 革 の ショルダーバッグ バッグ field_ng (N-gram) 革の のシ ショ ョル ルダ ダー ーバ バッ ッグ バッグ Copyright (C) 2015 Yahoo Japan Corporation. All Rights Reserved.

45.

N-gramの併用による課題 検索漏れを大きく改善できるが、検索ノイズが大量に発 生する恐れがある。 意味のない単語で無駄な インデックス領域を消費。 検索ノイズ 検索漏れ N 検索結果のドキュメント R 検索できた正解ドキュメント C 検索結果としての正解ドキュメント Copyright (C) 2015 Yahoo Japan Corporation. All Rights Reserved.

46.

辞書の登録による解決 革のトートバッグ 日本語辞書 トークナイザ 文章を単語に分かち書き 革 の トートバッグ 「バッグ」では検索できない 革のトートバッグ 日本語辞書 ユーザ辞書 トークナイザ 文章を単語に分かち書き 革 の トート バッグ 表層 品詞 ... トート 名詞 ... ... ... ... 「バッグ」で検索できる バッグ ユーザ 新しいバッグ が欲しいな Copyright (C) 2015 Yahoo Japan Corporation. All Rights Reserved.

47.

辞書の登録による課題 全ての単語を登録しきれない。 辞書登録による意図しない単語の分割がされ、 検索ノイズが発生 することもある。 検索ノイズ 検索漏れ N 検索結果のドキュメント R 検索できた正解ドキュメント C 検索結果としての正解ドキュメント Copyright (C) 2015 Yahoo Japan Corporation. All Rights Reserved.

48.

JapaneseTokenizer のモード設定による解決 1. normal モード ・登録されている辞書の単語で分割する。 2. search モード (デフォルト) ・normal モードと同様に単語を分割を行うが、辞書に登録されている単語の 複合語で分割可能である場合、さらに細かく分割し、複合語も出力する。 3. extended モード ・search モードと同様に複合語の処理を行うが、複合語は出力しない。 また、辞書に登録ない未知語をUni-gram (1-gram) でトークナイズする。 Copyright (C) 2015 Yahoo Japan Corporation. All Rights Reserved.

49.

JapaneseTokenizer のモードの使用 羽田空港オリジナルトートバッグ normal モード 羽田空港 オリジナルトートバッグ search モード 羽田空港 羽田 空港 オリジナルトートバッグ オリジナル トートバッグ extended モード 羽田 空港 オリジナル ト ー ト バ ッ グ Copyright (C) 2015 Yahoo Japan Corporation. All Rights Reserved.

50.

JapaneseTokenizer のモード設定による課題 search モード、extended モードを使用することで 手軽に再現率を向上させることが可能だが、 全ての問題を解決できない。 検索ノイズ 検索漏れ N 検索結果のドキュメント R 検索できた正解ドキュメント C 検索結果としての正解ドキュメント Copyright (C) 2015 Yahoo Japan Corporation. All Rights Reserved.

51.

JapaneseTokenizer の課題 ・形態素解析によって出力される単語は、接続コスト、 単語生起コストを基に最適と思われる単語に分割 されるが、意図しない分割がされる場合がある。 ・最良と思われる、1つの形態素の連結パターンしか 出力できないため、複数の解釈が可能な文字列には 対応できない。 Copyright (C) 2015 Yahoo Japan Corporation. All Rights Reserved.

52.

意図しない分割をされる例 外国人参政権 Voting. 外国 / 人 / 参政 / 権 Voting rights for foreign residents. 誤解釈 外国 / 人参 / 政権 The Carrot Administration of a foreign country. Carrot ? Copyright (C) 2015 Yahoo Japan Corporation. All Rights Reserved.

53.

「外国人参政権」の例 外国人参政権 normal モード 外国 人参 政権 search モード 外国 人参 政権 extended モード 外国 人参 政権 期待する 人 参政 権 が出力されない Copyright (C) 2015 Yahoo Japan Corporation. All Rights Reserved.

54.

複数の解釈が可能な例 こちらは社長室長谷川です こちら / は / 社長 / 室 / 長谷川 / です This is Hasegawa, member of President’s Office. または こちら / は / 社長 / 室長 / 谷川 / です This is Tanigawa, executive secretary of President’s Office. 長谷川です 谷川です Copyright (C) 2015 Yahoo Japan Corporation. All Rights Reserved.

55.

「こちらは社長室長谷川です」の例 こちらは社長室長谷川です normal モード こちら は 社長 室 長谷川 です search モード こちら は 社長 室 長谷川 長谷 川 です extended モード こちら は 社長 室 長谷川 川 です 期待していない 長谷 川 が出力される Copyright (C) 2015 Yahoo Japan Corporation. All Rights Reserved.

56.

search モード、extended モードの課題 社長室長谷川 できること BOS 社長 名詞 室 名詞 長谷川 名詞 EOS 複合語の分割が可能な場合のみ 長谷 名詞 川 名詞 できないこと 複数の分割候補の出力はできない BOS 社長 名詞 室 名詞 室長 名詞 長谷川 名詞 谷川 名詞 EOS Copyright (C) 2015 Yahoo Japan Corporation. All Rights Reserved.

57.

アルゴリズム Some rights reserved by Sam Wolff https://www.flickr.com/photos/swolff13/6129293752/sizes/l

58.

アルゴリズム ・検索結果に含まれるドキュメントをクエリーとの 関連性が高い(と思われる)順序に並べること ・ドキュメントの持つデータから 特徴量(素性: Feature)を見つけ出し、 それぞれを係数化、組み合わせて順位を決定する ・ランキングとソーティングは、情報検索では全く別物 ソーティングとは:50音順、日付順、価格順、etc Copyright (C) 2015 Yahoo Japan Corporation. All Rights Reserved.

59.

アルゴリズム ・適切な条件で絞り込んでも、まだ、 検索結果は満足いくものではない可能性がある。 ・キーワードに対しての関連度が 高い順に表示できるようにする 必要がある。 1ページ目に関連度の 低いドキュメントが現 れることがある 1 8 2 13 N 3 6 10 14 R 7 12 4 11 9 5 C Copyright (C) 2015 Yahoo Japan Corporation. All Rights Reserved.

60.

代表的な Ranking Feature ・TF-IDF 文書中に現れる単語に着目 ・ベクトル空間モデル クエリーとドキュメントの類似度に着目 ・Link Popularity (Page Rank) ウェブページ間のリンク・被リンクの関係に着目 Copyright (C) 2015 Yahoo Japan Corporation. All Rights Reserved.

61.

TF-IDF (Term Frequency - Inverse Document Frequency) ・文書における、単語の重みの指標を表現する 代表的な手法。 ・文書中に、その単語がどれだけ出現するか、その単語が 文書集合中で、どれだけ希少性が高いかの指標。 単語出現頻度 tfidf(t,d) = tf(t,d)・idf(t) 逆文書頻度 Copyright (C) 2015 Yahoo Japan Corporation. All Rights Reserved.

62.

TF (Term Frequency) : 単語出現頻度 D7: 吾輩は鼠である。名前はまだ無 い D2: 吾輩は犬である。名前はまだ無 D1: 吾輩は猫である。名前はまだ無 い。 ぬ どこで生れたかとんと見当がつか ワ ぬ。何でも薄暗いじめじめした所で て ニャーニャー泣いていた事だけは記 い 憶している。吾輩はここで始めて人 と 間というものを見た。しかもあとで 悪 聞くとそれは書生という人間中で一 と 番獰悪な種族であったそうだ。この 煮 書生というのは時々我々を捕つかま の えて煮て食うという話である。しか 別 しその当時は何という考もなかった から別段恐しいとも思わなかった。 「吾輩」という単語で全7文書中、 3文書(D1、D2、D7)が検索できた場合 単語tの文書d内での出現回数 tf(t,d) = nt,d Σs∈dns,d 文書d内のすべての単語の出現回数の和 tf(吾輩,D1) = 2 106 = 0.018867924528301886 D1中の「吾輩」の出現頻度 Copyright (C) 2015 Yahoo Japan Corporation. All Rights Reserved.

63.

IDF (Inverse Document Frequency) : 逆文書出現頻度 D7: 吾輩は鼠である。名前はまだ無 い D2: 吾輩は犬である。名前はまだ無 D1: 吾輩は猫である。名前はまだ無 い。 ぬ どこで生れたかとんと見当がつか ワ ぬ。何でも薄暗いじめじめした所で て ニャーニャー泣いていた事だけは記 い 憶している。吾輩はここで始めて人 と 間というものを見た。しかもあとで 悪 聞くとそれは書生という人間中で一 と 番獰悪な種族であったそうだ。この 煮 書生というのは時々我々を捕つかま の えて煮て食うという話である。しか 別 しその当時は何という考もなかった から別段恐しいとも思わなかった。 「吾輩」という単語で全7文書中、 3文書(D1、D2、D7)が検索できた場合 全文書数 idf(t) = log N df(t) 単語tが出現する文書数 idf(吾輩) = log 7 3 = 0.8472978603872037 全文書中の「吾輩」の希少度 Copyright (C) 2015 Yahoo Japan Corporation. All Rights Reserved.

64.

TF-IDF (Term Frequency - Inverse Document Frequency) D7: 吾輩は鼠である。名前はまだ無 い D2: 吾輩は犬である。名前はまだ無 D1: 吾輩は猫である。名前はまだ無 い。 ぬ どこで生れたかとんと見当がつか ワ ぬ。何でも薄暗いじめじめした所で て ニャーニャー泣いていた事だけは記 い 憶している。吾輩はここで始めて人 と 間というものを見た。しかもあとで 悪 聞くとそれは書生という人間中で一 と 番獰悪な種族であったそうだ。この 煮 書生というのは時々我々を捕つかま の えて煮て食うという話である。しか 別 しその当時は何という考もなかった から別段恐しいとも思わなかった。 「吾輩」という単語で全7文書中、 3文書(D1、D2、D7)が検索できた場合 tfidf(t,d) = tf(t,d)・idf(t) tfidf(吾輩, D1) = 0.015986752082777427 D1中の「吾輩」のTF-IDF値 検索できた文書のすべてのTF-IDF値 を計算し、スコアの高い順に並べるこ とで、キーワードとの関連度が高い文 書を上位に表示することが可能となる。 Copyright (C) 2015 Yahoo Japan Corporation. All Rights Reserved.

65.

ベクトル空間モデル (Vector space model) ・検索に用いられた単語と検索された文書が どれだけ類似しているかを指標とする手法。 ・単語と文書をベクトル空間上で、 そのベクトルの傾きの角度を比較することで、 角度が小さければ、類似度が大きく、 角度が大きければ、類似度は小さいとする。

66.

ベクトル空間モデル (Vector space model) T1 T2 ... Tn D1 W11 W12 ... W1n D2 W21 W22 ... W2n : : : . : : Dm Wm1 Wm2 Wm3 Wmn Tn 文書集合中に出現する単語 Dm 文書集合中に出現する文書 Wmn 文書dm中に出現する単語tnの重み T1 T2 ... Tn Q ( Wq1 Wq2 ... Wqn ) Wqn クエリーQ中に出現する単語tnの重み 文書Dmの特徴ベクトル → Dm = (Wm1, Wm2, ... , Wmn) クエリーQの特徴ベクトル → Q = (Wq1, Wq2, ... , Wqn) Copyright (C) 2015 Yahoo Japan Corporation. All Rights Reserved.

67.

ベクトル空間モデル (Vector space model) クエリー 検索結果 Q 晴れ OR 雨 D1 晴れのち雨、ときどき晴れ D2 雨ときどき曇り D3 晴れのち曇り、ときどき雨 Copyright (C) 2015 Yahoo Japan Corporation. All Rights Reserved.

68.

ベクトル空間モデル (Vector space model) ドキュメント (D1、D2、D3) の行列構造 ドキュメントID ドキュメント 晴れ 雨 曇り D1 晴れのち雨、ときどき晴れ D1 2 1 0 D2 雨ときどき曇り D2 0 1 1 D3 晴れのち曇り、ときどき雨 D3 1 1 1 晴れ 雨 曇り D1 ( 2 1 0 ) D2 ( 0 1 1 ) D3 ( 1 1 1 ) 特徴ベクトル → D1 = (2, 1, 0) → D2 = (0, 1, 1) → D3 = (1, 1, 1) Copyright (C) 2015 Yahoo Japan Corporation. All Rights Reserved.

69.

ベクトル空間モデル (Vector space model) クエリ (Q) の行列構造 クエリー Q 晴れ OR 雨 晴れ 雨 曇り Q 1 1 0 晴れ 雨 曇り Q ( 1 1 0 ) 特徴ベクトル → Q = (1, 1, 0) Copyright (C) 2015 Yahoo Japan Corporation. All Rights Reserved.

70.

ベクトル空間モデル (Vector space model) z 雨 D2 雨:1 曇り:1 D3 晴れ:1 雨:1 曇り:1 Q 晴れ:1 雨:1 D1 晴れ:2 雨:1 曇り x y 晴れ Copyright (C) 2015 Yahoo Japan Corporation. All Rights Reserved.

71.

ベクトル空間モデル (Vector space model) sim(Dm, Q) = Dm・Q |Dm||Q| = Σ Wmi Wqi i=1 √Σ Wmi 2 √Σ Wqi 2 = Wm1 Wq1 + Wm2 Wq2 + ... + Wmn Wqn √Wm1 2 + Wm1 2 + ... + Wmn 2 ・ √Wq1 2 + Wq1 2 + ... + Wq 2 = cosθ Copyright (C) 2015 Yahoo Japan Corporation. All Rights Reserved.

72.

ベクトル空間モデル (Vector space model) 晴れ 雨 曇り D1 2 1 0 クエリ (Q) とドキュメント (D1) を比較 Q 1 1 0 sim(D1, Q) = 2×1 + 1×1 + 0×0 √2 2 + 1 2 + 0 2 × √1 2 + 1 2 + 0 2 = 3 √5 × √2 = 0.9486832980505138 D1とQの類似度 Copyright (C) 2015 Yahoo Japan Corporation. All Rights Reserved.

73.

ベクトル空間モデル (Vector space model) z 雨 sim(D2,Q) = 0.49999999999999999 D2 雨:1 曇り:1 D3 晴れ:1 雨:1 曇り:1 Q 晴れ:1 雨:1 D1 晴れ:2 雨:1 sim(D1,Q) = 0.9486832980505138 sim(D3,Q) = 0.8164965809277259 曇り x y 晴れ Copyright (C) 2015 Yahoo Japan Corporation. All Rights Reserved.

74.

Link Popularity (Page Rank) ・文書や単語ではなく、文書のリンク・被リンク関係 で、文書自体の重要度を決定する手法。 ・重要な文書はより多くの重要な文書からリンクされて いる。 ・ただし、乱発されたリンクにはあまり価値がない。

75.

Link Popularity (Page Rank) ウェブ G L J F A K N D C 1 2 3 4 H O B I M E これ? Copyright (C) 2015 Yahoo Japan Corporation. All Rights Reserved.

76.

Link Popularity (Page Rank) PR(A) = (1 - d) + d Σ PR(Ti) i=1 C(Ti) = (1 - d) + d ( PR(T1) + PR(T2) + ... + PR(Tn) ) C(T1) C(T2) C(Tn) PR(A) ページAのページランク PR(Tn) ページAにリンクしているページのページランク 仮にページAに対して3つのページがリンクしているとした場合、 T1からT3までの各ページを表す C(Tn) ページTnに含まれる他ページへのリンクの総数 d ダンピング・ファクター 通常0.85に設定される Copyright (C) 2015 Yahoo Japan Corporation. All Rights Reserved.

77.

Link Popularity (Page Rank) A B C D E F G H I J K L M N O A - 0 0 0 0 0 0 1 0 0 1 0 0 0 0 B 0 - 0 0 1 0 0 0 0 0 0 0 0 1 0 C 1 0 - 0 0 0 0 0 0 0 0 0 0 0 0 D 0 0 0 - 0 1 0 0 1 0 0 0 0 0 0 E 0 1 0 0 - 0 0 1 0 0 0 0 0 0 0 F 0 0 0 1 0 - 0 0 0 1 0 0 0 0 0 G 1 0 0 0 0 0 - 0 0 0 1 1 0 0 0 H 1 0 1 0 1 0 0 - 0 0 0 0 0 0 1 I 0 1 0 1 0 0 0 0 - 0 0 0 1 0 0 J 0 0 0 0 0 1 0 0 0 - 0 0 0 1 0 K 1 0 0 0 0 0 0 0 0 0 - 1 0 0 0 L 0 0 0 0 0 0 1 0 0 0 0 - 0 0 0 M 0 0 0 1 1 0 0 0 1 0 0 0 - 0 0 N 0 0 0 0 0 1 0 0 0 1 0 0 0 - 0 O 0 0 0 0 0 0 0 1 0 0 0 1 0 0 - 列(横)をリンク元、行(縦)をリンク先として、リンク・被リンク関係を行列で表現 Copyright (C) 2015 Yahoo Japan Corporation. All Rights Reserved.

78.

Link Popularity (Page Rank) PR(A) = (1 - d) + d ( PR(T1) + PR(T2) + ... + PR(Tn) ) C(T1) C(T2) C(Tn) = (1 - 0.85) + 0.85 ( PR(H) + PR(K) ) C(H) C(K) = 0.15 + 0.85 ( 1 + 1 ) 3 2 = 0.8583333333333333 AはHとKからリンクされている 初めて計算するときは、PR(H)とPR(K) は解らないので、1とする Copyright (C) 2015 Yahoo Japan Corporation. All Rights Reserved.

79.

Link Popularity (Page Rank) 1回目の計算 2回目の計算 ... 172回目の計算 173回目の計算 174回目の計算 A 0.8583333333333333 0.968715277777778 ... 0.636805779782344 0.636805779782344 0.636805779782344 B 0.8583333333333333 0.818194444444444 ... 0.744458275711195 0.744458275711195 0.744458275711195 C 0.3625 0.332395833333333 ... 0.285321228203748 0.285321228203748 0.285321228203748 D 1.0 1.24083333333333 ... 1.58473236565429 1.58473236565429 1.58473236565429 E 0.8583333333333333 1.17944444444444 ... 0.831939024973009 0.831939024973009 0.831939024973009 F 0.8583333333333333 0.858333333333333 ... 0.907443397591546 0.907443397591546 0.907443397591546 G 1.07083333333333 0.649375 ... 0.510563050903277 0.510563050903277 0.510563050903277 H 2.34583333333333 1.49288194444444 ... 1.290156203985 1.290156203985 1.290156203985 I 1.70833333333333 1.76854166666667 ... 2.54390183539003 2.54390183539003 2.54390183539003 J 1.0 1.03010416666667 ... 0.725731515269402 0.725731515269402 0.725731515269402 K 0.3625 0.332395833333333 ... 0.285321228203748 0.285321228203748 0.285321228203748 L 0.575 0.605104166666667 ... 0.366989296633893 0.366989296633893 0.366989296633893 M 1.14166666666667 1.40256944444444 ... 1.9158818407185 1.9158818407185 1.9158818407185 N 1.0 0.939791666666667 ... 0.844099337965903 0.844099337965903 0.844099337965903 O 0.716666666666667 0.977569444444444 ... 0.619524558508688 0.619524558508688 0.619524558508688 Copyright (C) 2015 Yahoo Japan Corporation. All Rights Reserved.

80.

Link Popularity (Page Rank) ウェブ G L J F A K N D C H O B I M E PR(I) = 2.54390183539003 PR(M) = 1.9158818407185 PR(D) = 1.58473236565429 PR(H) = 1.290156203985 : Copyright (C) 2015 Yahoo Japan Corporation. All Rights Reserved.

81.

Lucene のスコアリング score(q,d) = coord(q,d)・queryNorm(q)・Σ(tf(t in d)・idf(t)2・t.getBoost()・Norm(t,d)) t in q coord(q,d) : クエリが複数指定された場合、そのクエリが フィールド中にいくつ出現したか queryNorm(q) : 異なるクエリ同士でスコアを比較 できるようにするため 正規化係数 tf(t in d)・idf(t)2 : クエリの TF-IDF 値 t.getBoost() : クエリのブースト値 Norm(t,d) : 単語数 多いフィールドと少ない フィールドを比較するため 正規化係数 Copyright (C) 2015 Yahoo Japan Corporation. All Rights Reserved.

82.

ランキング ・幾つもの Ranking Feature (素性) を組み合わせ、 最良の検索結果を提供。 ・常に改善することが必要。 1ページ目に関連度の 高いドキュメントが現 れることが必要 14 N 6 13 12 11 5 2 9 3 8 1 4 7 C Copyright (C) 2015 Yahoo Japan Corporation. All Rights Reserved.

83.

チューニング Some rights reserved by CoreForce https://www.flickr.com/photos/coreforce/4210715316/sizes/l

84.

ランキングチューニング ランキングチューニングとは、検索結果の上位に、 質の高いドキュメントを表示するための作業。 ・フィールドの重みを変更。 ・Similarity クラスを変更。 Copyright (C) 2015 Yahoo Japan Corporation. All Rights Reserved.

85.

ランキングチューニング フィールドの重みを変更する ・qf=title_ma^10 title_ng^2 body_ma^5 body_ng^1 フィールドの重みを変更 事前に計算しておいてスコアを加算 ・bf=production(field(ctr),10) あらかじめインデックスに含めておいた値を加算 Copyright (C) 2015 Yahoo Japan Corporation. All Rights Reserved.

86.

ランキングチューニング Similarityクラスを変更する <similarity class="solr.SchemaSimilarityFactory"> <str name="defaultSimFromFieldType">text_dfr</str> <similarity> <fieldType name="text_dfr" class="solr.TextField"> <analyzer ... /> <similarity class="solr.DFRSimilarityFactory"> <str name="basicModel">I(F)</str> <str name="afterEffect">B</str> <str name="normalization">H3</str> <float name="mu">900</float> </similarity> </fieldType> ・インデックス、またはフィールドに適用させる Similarity クラスを変更 Copyright (C) 2015 Yahoo Japan Corporation. All Rights Reserved.

87.

ランキングチューニングの課題 フィールドへ重みをどう決めるか ・とりあえず、ドキュメントのタイトルは強めの重み? ランキングが良くなっているか分かりにくい ・あるクエリで良くなっているけど、別のクエリではどうか? 公正な評価になっているか ・評価が評価者の主観に寄りがち? Copyright (C) 2015 Yahoo Japan Corporation. All Rights Reserved.

88.

ランキングの定量評価 メリット ・ランキングを客観的に評価し、 ランキングが良くなる重みを探し出せる ・チューニング作業の一部を自動化可能 デメリット ・導入コストが高い ・定量評価を行う計算に時間がかかる場合がある Copyright (C) 2015 Yahoo Japan Corporation. All Rights Reserved.

89.

NDCG (Normalized Discounted Cumulative Gain) ・ランキングの並び順を評価する指標 ・クエリとの適合度が高いドキュメントが上位にきているほど高評価 NDCG = DCG IDCG DCG = Σ 2reli - 1 i log(1 + i) DCG : 順位と適合度を元にしたスコア IDCG : 理想とする並びになった場合のDCG i : 検索順位 rel : i位に順位付けられたドキュメントのクエリとの適合度 Copyright (C) 2015 Yahoo Japan Corporation. All Rights Reserved.

90.

NDCG (Normalized Discounted Cumulative Gain) あるクエリでの検索結果 検索結果の並び順 順位 ドキュメント 評価 1 A 1 2 B 4 3 C 3 理想とする並び順 順位 ドキュメント 評価 1 B 4 2 C 3 3 A 1 4 : Very good 3 : Good 2 : Bad 1 : Very bad 評価者が目視で評価する Copyright (C) 2015 Yahoo Japan Corporation. All Rights Reserved.

91.

DCG (Discounted Cumulative Gain) 検索結果の並び順 順位 ドキュメント 評価 1 A 1 2 B 4 3 C 3 DCG = Σ 2reli - 1 i log(1 + i) = 21 - 1 + 24 - 1 + 23 - 1 log(1 + 1) log(1 + 2) log(1 + 3) = 1 + 15 + 6 = 13.99 1 1.58 2 Copyright (C) 2015 Yahoo Japan Corporation. All Rights Reserved.

92.

IDCG (Ideal Discounted Cumulative Gain) 理想とする並び順 順位 ドキュメント 評価 1 B 4 2 C 3 3 A 1 IDCG = Σ 2reli - 1 i log(1 + i) = 24 - 1 + 23 - 1 + 21 - 1 log(1 + 1) log(1 + 2) log(1 + 3) = 15 + 7 + 1 = 19.93 1 1.58 2 Copyright (C) 2015 Yahoo Japan Corporation. All Rights Reserved.

93.

NDCG (Normalized Discounted Cumulative Gain) 検索結果の並び順と理想とする並び順を比べる NDCG = DCG IDCG = 13.99 19.93 = 0.7019 検索結果の並び順 順位 ドキュメント 評価 1 A 1 2 B 4 3 C 3 理想とする並び順 順位 ドキュメント 評価 1 B 4 2 C 3 3 A 1 Copyright (C) 2015 Yahoo Japan Corporation. All Rights Reserved.

94.

NDCG (Normalized Discounted Cumulative Gain) 事前準備 ・ランキングを評価するクエリを決定する。 ・検索数上位50位のクエリなど ・評価用のクエリで検索を行い、ドキュメントの適合 度を評価しておく(正解データの準備)。 Copyright (C) 2015 Yahoo Japan Corporation. All Rights Reserved.

95.

NDCG (Normalized Discounted Cumulative Gain) チューニング作業 1. 各フィールドへの重みを決定する。 ・qf=title_ma^10 title_ng^2 body_ma^5 body_ng^1 2. 評価用のクエリで検索を行い、NDCGを算出。 ・各クエリで算出した NDCG の平均などを算出 3. 1-2を繰り返す。 Copyright (C) 2015 Yahoo Japan Corporation. All Rights Reserved.

96.

NDCG (Normalized Discounted Cumulative Gain) title_ma title_ng body_ma body_ng NDCG Case 1 10 2 5 1 0.55 Case 2 15 2 5 1 0.58 Case 3 20 2 5 1 0.62 Case 4 1.0 4 5 1 0.53 Casa 5 10 6 5 1 0.51 Case 6 10 8 5 1 0.49 Case 3 の重み付けが最適と考えられる Copyright (C) 2015 Yahoo Japan Corporation. All Rights Reserved.

97.

NDCG (Normalized Discounted Cumulative Gain) メリット ・客観的にランキングを評価でき、最もランキングが 良くなる重みを探し出せる ・チューニング作業の一部を自動化可能 ・一度この手法を取り入れれば継続的に検索結果を改 善できる Copyright (C) 2015 Yahoo Japan Corporation. All Rights Reserved.

98.

NDCG (Normalized Discounted Cumulative Gain) デメリット ・正解データを準備するコストが高い ・評価用クエリ100個で、1クエリ当たりで評価するドキュ メント数が5件の場合、500件分評価しておく必要がある ・NDCGの算出に時間がかかる場合がある ・チューニングするフィールド数が4、調査する重み範囲が 1~10の場合、10^4 (10000) 通りの試行回数が必要となる Copyright (C) 2015 Yahoo Japan Corporation. All Rights Reserved.

99.

まとめ Some rights reserved by ecosistema urbano https://www.flickr.com/photos/ecosistemaurbano/22136038825/sizes/l

100.

まとめ 様々な工程を経てインデックスが作成される 日本語を扱う時は、単語抽出が重要となる 検索結果の並び順は多くの要素から決定される 検索エンジンの品質維持は大変な労力が必要 Copyright (C) 2015 Yahoo Japan Corporation. All Rights Reserved.

101.

まとめ Database ウェブ ドキュメント 検索 PC Smart Phone ユーザ エンジニア チューニング Solr 検索ログ 素性 / メタデータ Feature / Metadata Logs 分析 アナリスト 素性抽出 しっかりチューニングすることで 品質の高い検索結果を提供可能 Copyright (C) 2015 Yahoo Japan Corporation. All Rights Reserved.

102.

Solr 6

103.

Solr 6 ・パラレル SQL ・データセンター間レプリケーション ・グラフクエリ ・モダン API ・HTTP/2 サポート ・N-best オプション追加(日本語形態素解析) http://www.slideshare.net/lucidworks/webinar-whats-new-in-solr-6 Copyright (C) 2015 Yahoo Japan Corporation. All Rights Reserved.

104.

パラレル SQL ・リアルタイム MapRecude(っぽい)、またはファセット アグリゲーションのモデル ・SolrCloudに対してパラレルでクエリを実行 ・強力なクエリのための高度なSQL構文 ・JDBC ドライバ提供により、DBの可視化ツール (Apache Zeppelin、Squirrel、DBVisualize など) との連携強化 Copyright (C) 2015 Yahoo Japan Corporation. All Rights Reserved.

105.

データセンター間レプリケーション ・複数のデータセンター間でレプリケーション可能 ZK ZK ZK ZK ZK peer_clusters: name=DC2 addr=zk_quorum2 shard1 shard2 ZK client Leader ZK client Leader Replica Replica Replica Replica ZK ZK ZK ZK ZK peer_clusters: name=DC1 addr=zk_quorum1 shard1 shard2 ZK client Leader ZK client Leader Replica Replica Replica Replica update Copyright (C) 2015 Yahoo Japan Corporation. All Rights Reserved.

106.

グラフクエリ ・エッジノードの追跡 ・ユースケース ・あるユーザがフォローしているユーザによる"Solr"に言及している ツイートを全て検索する。 ・知人の開発者が書いた“パラレル SQL”に関するブログ記事を検索 する。 ・去年、友人が滞在した3つ星ホテルを検索する。 q=Solr&fq={!graph from=following_id to=id maxDepth=1}id:"childerelda" Copyright (C) 2015 Yahoo Japan Corporation. All Rights Reserved.

107.

モダン API ・API の出力フォーマットのデフォルトを XML から JSON へ変更 ・可読性の向上 ・API エンドポイントの変更 http://localhost:8983/solr/v2/... Copyright (C) 2015 Yahoo Japan Corporation. All Rights Reserved.

108.

HTTP/2 サポート ・通信を単一コネクションで多重化 ・非同期ネットワーク I/O http2 jetty:// Copyright (C) 2015 Yahoo Japan Corporation. All Rights Reserved.

109.

N-best オプション 社長室長谷川 Solr 5.x BOS 社長 名詞 室 名詞 長谷川 名詞 EOS 複合語の分割が可能な場合のみ 長谷 名詞 川 名詞 複数の分割候補の出力が可能 Solr 6.x BOS 社長 名詞 室 名詞 室長 名詞 長谷川 名詞 谷川 名詞 EOS Copyright (C) 2015 Yahoo Japan Corporation. All Rights Reserved.

110.

N-bestの実装 目的 ・解釈によって異なる複数パターンでの分割、複合 語の分割を可能にし、再現率の向上を目指す。 ・N-best といってもNを直接指定するのではなく、 ベストパスからのコスト値の差を指定することで、 無理のある分割がされないようにする。 Copyright (C) 2015 Yahoo Japan Corporation. All Rights Reserved.

111.

N-bestの実装 仕様 ・nbestCost、nbestExamples パラメータの設定で N-best 出力を制御する。 ・0 < nbestCost なら N-best を出力する。nbestCost は N-best 出力として 許容される最大のコスト差分 (allowable cost difference for nbest) を示す。 ・適切なコスト差分を求めるために、nbestExamples で例文を指定できる。 ・例文からコスト差分を求めることができれば、例文からのコスト差分と 直接指定のコスト差分のうち大きな値が有効にする。 Copyright (C) 2015 Yahoo Japan Corporation. All Rights Reserved.

112.

N-bestの実装 サンプル schema.xml <fieldType name="text_ja" class="solr.TextField" positionIncrementGap="100" autoGeneratePhraseQueries="true"> <analyzer type="index"> ... <tokenizer class="solr.JapaneseTokenizerFactory" mode="normal" nbestCost="2000" nbestExamples="/社長室長谷川-長谷川/社長室長谷川-谷川/" /> ... </analyzer> <analyzer type="query"> <tokenizer class="solr.JapaneseTokenizerFactory" mode="normal" /> ... </analyzer> </fieldType> Copyright (C) 2015 Yahoo Japan Corporation. All Rights Reserved.

113.

N-bestの実行確認 mode="normal" Field Value (Index) 社長室長谷川 Field Value (Query) Analyse Fieldname / FieldType: text_ja_normal Verbose Output Analyse Values JT text 社長 室 長谷川 raw_bytes [e7 a4 be e9 95 b7] [e5 ae a4] [e9 95 b7 e8 b0 b7 e5 b7 9d] start 0 2 3 end 2 3 6 positionLength 1 1 1 type word word word baseForm partOfSpeech 名詞-一般 名詞-接尾-一般 名詞-固有名詞-人名-姓 partOfSpeech (en) noun-common noun-suffix-misc noun-proper-person-surname reading シャチョウ シ ハセガワ reading (en) shachō shitsu hasegawa pronunciation シャチョー シツ ハセガワ pronunciation (en) shacho shitsu hasegawa inflectionType inflectionType (en) inflectionForm inflectionForm (en) position 1 2 3 Copyright (C) 2015 Yahoo Japan Corporation. All Rights Reserved.

114.

N-bestの実行確認 mode="normal" nbestCost=2000 Field Value (Index) 社長室長谷川 Field Value (Query) Analyse Fieldname / FieldType: text_ja_normal_nbest_2000 Verbose Output Analyse Values JT text 社長 室 室長 長谷川 谷川 raw_bytes [e7 a4 be e9 95 b7] [e5 ae a4] [e5 ae a4 e9 95 b7] [e9 95 b7 e8 b0 b7 e5 b7 9d] [e8 b0 b7 e5 b7 9d] start 0 2 2 3 4 end 2 3 4 6 6 positionLength 1 1 2 2 1 type word word word word word baseForm partOfSpeech 名詞-一般 名詞-接尾-一般 名詞-一般 名詞-固有名詞-人名-姓 名詞-固有名詞-人名-姓 partOfSpeech (en) noun-common noun-suffix-misc noun-common noun-proper-person-surname noun-proper-person-surname reading シャチョウ シ シッチョウ ハセガワ タニガワ reading (en) shachō shitsu shitsuchō hasegawa tanigawa pronunciation シャチョー シツ シッチョウ ハセガワ タニガワ pronunciation (en) shacho shitsu shitsucho hasegawa tanigawa inflectionType inflectionType (en) inflectionForm inflectionForm (en) position 1 2 2 3 4 Copyright (C) 2015 Yahoo Japan Corporation. All Rights Reserved.

115.

N-bestの実行確認 mode="normal" 「デジタル一眼レフ」は「一眼レフ」で検索できない Field Value (Index) デジタル一眼レフ Field Value (Query) 一眼レフ Analyse Fieldname / FieldType: text_ja_normal Verbose Output Analyse Values JT text デジタル 一 眼 レフ JT text 一眼 レフ raw_bytes [e3 83 87 e3 82 b8 e3 82 bf e3 83 ab] [e4 b8 80] [e7 9c bc] [e3 83 ac e3 83 95] raw_bytes [e4 b8 80 e7 9c bc] [e3 83 ac e3 83 95] start 0 4 5 6 start 0 2 end 4 5 6 8 end 2 4 positionLength 1 1 1 1 positionLength 1 1 type word word word word type word word partOfSpeech 名詞-一般 名詞-数 名詞-一般 名詞-一般 partOfSpeech 名詞-一般 名詞-一般 partOfSpeech (en) noun-common noun-numeric noun-common noun-common partOfSpeech (en) noun-common noun-common reading デジタル イチ メ レフ reading イチガン レフ pronunciation デジタル イチ メ レフ pronunciation イチガン レフ position 1 2 3 4 position 1 2 一致しない 一致 Copyright (C) 2015 Yahoo Japan Corporation. All Rights Reserved.

116.

N-bestの実行確認 mode="normal" nbestCost=2000 「デジタル一眼レフ」が「一眼レフ」で検索できる Field Value (Index) デジタル一眼レフ Field Value (Query) 一眼レフ Analyse Fieldname / FieldType: text_ja_normal_nbest_2000 Verbose Output Analyse Values JT text デジタル 一眼 眼 レフ JT text 一眼 レフ raw_bytes [e3 83 87 e3 82 b8 e3 82 bf e3 83 ab] [e4 b8 80 e7 9c bc] [e7 9c bc] [e3 83 ac e3 83 95] raw_bytes [e4 b8 80 e7 9c bc] [e3 83 ac e3 83 95] start 0 4 5 6 start 0 2 end 4 6 6 8 end 2 4 positionLength 1 2 1 1 positionLength 1 1 type word word word word type word word partOfSpeech 名詞-一般 名詞-一般 名詞-一般 名詞-一般 partOfSpeech 名詞-一般 名詞-一般 partOfSpeech (en) noun-common noun-common noun-common noun-common partOfSpeech (en) noun-common noun-common reading デジタル イチガン メ レフ reading イチガン レフ pronunciation デジタル イチガン メ レフ pronunciation イチガン レフ position 1 2 3 4 position 1 2 一致 一致 Copyright (C) 2015 Yahoo Japan Corporation. All Rights Reserved.

117.

N-bestの評価 ・評価用データ ・Wikipedia ダンプから取得したタイトル (1,541,544タイトル) ・評価方法 ・nbestCost を 0 から 5000 まで 1000 毎に変化させ、 評価用データからトークンを出力 ・出力されたトークンの差分を目視で確認し、 Good、Neutral、Bad の3段階でジャッジ アンパサンド 言語 日本語 地理学 EU (曖昧さ回避) 国の一覧 SandBox パリ ヨーロッパ ... Good : 良い Neutral : 中立 Bad : 悪い Copyright (C) 2015 Yahoo Japan Corporation. All Rights Reserved.

118.

N-bestの評価 nbestCost 総トークン数 総トークン数 nbestCost=0比 総出力文字数 総出力文字数 nbestCost=0比 N-best 出現タイトル数 N-best 出現タイトル数 /全タイトル比 0 5,362,695 1.000 12,401,591 1.000 0 0 1,000 5,509,840 1.027 12,761,015 1.029 94,950 0.0616 2,000 5,677,682 1.059 13,222,013 1.066 187,636 0.1217 3,000 5,878.931 1.096 13,695,738 1.104 281,788 0.1828 4,000 6,168,215 1.150 14,198,753 1.145 392,367 0.2545 5,000 6,557,197 1.224 14,796,834 1.193 511,730 0.3320 nbestCost N-best出力差分出 現タイトル数 N-best出力差分出 現タイトル比 ジャッジ数 ジャッジ比 0 0 0 0 0 0 - 1,000 94,950 0.0616 300 0.003160 1,000 - 2,000 100,452 0.0652 300 0.002987 2,000 - 3,000 109,397 0.0710 300 0.002742 3,000 - 4,000 140,501 0.0911 300 0.002135 4,000 - 5,000 180,897 0.1173 300 0.001658 ※JapaneseTokenizerのnormalモードで評価 Copyright (C) 2015 Yahoo Japan Corporation. All Rights Reserved.

119.

N-bestの評価指標 - Good ・複合語が正しい単語で区切られる title nbestCost=0 nbestCost=1000 ヒルマン・ミンクス ヒルマン / ・ / ミン / クス ヒルマン / ・ / ミン / ミンクス / クス 岡山県道69号西大寺備前線 (おかやまけんどう69ごう さいだいじびぜんせん) 岡山 / 県 / 道 / 69 / 号 / 西大寺 / 備前 / 線 岡山 / 県 / 県道 / 道 / 69 / 号 / 西大寺 / 備前 / 線 ドラッグマスターファイル ドラッグマスターファイル ドラッグ / マスター / ファイル Copyright (C) 2015 Yahoo Japan Corporation. All Rights Reserved.

120.

N-bestの評価指標 - Neutral ・どちらも誤解析 title nbestCost=0 nbestCost=1000 鈴木里一郎 (すずき さといちろう) 鈴木 / 里 / 一郎 鈴木 / 里 / 一 / 一郎 / 郎 あしたまにあーな あし / たま / に / あー / な あし / たま / たまに / に / あー / な ・元の結果でも問題ない title nbestCost=0 nbestCost=1000 山田温泉 (やまだおんせん) 山田 / 温泉 山田 / 山田温泉 / 温泉 フィルムアウト フィルム / アウト フィルム / フィルムアウト / アウト Copyright (C) 2015 Yahoo Japan Corporation. All Rights Reserved.

121.

N-bestの評価指標 - Bad ・ノイズが発生する title nbestCost=0 nbestCost=1000 ジャン・ピエール・ランパル ジャン / ・ / ピエール / ・ / ランパル ジャン / ・ / ピエール / ・ / ラン / ランパル / パル 供御職 (くごしょく) 供御 / 職 供 / 供御 / 御職 / 職 市川市立高谷中学校 (いちかわしりつ こうやちゅうがっこう) 市川 / 市立 / 高谷 / 中学校 市川 / 市立 / 高 / 高谷 / 谷中 / 中学校 / 学校 Copyright (C) 2015 Yahoo Japan Corporation. All Rights Reserved.

122.

N-bestの評価結果 nbestCostの値の変更前と変更後で、出力に見られ たタイトル 300 件を無作為に抽出して評価。 nbestCost ジャッジ数 Good Neutral Bad (Good - Bad) / 300 0 - 1,000 300 190 30 80 0.37 1,000 - 2,000 300 133 82 85 0.16 2,000 - 3,000 300 109 60 131 -0.07 3,000 - 4,000 300 95 34 171 -0.25 4,000 - 5,000 300 87 48 165 -0.26 0.6 0.45 0.3 0.15 0 -0.15 0 1000 2000 3000 4000 5000 +0.37 +0.16 -0.07 -0.25 -0.26 Copyright (C) 2015 Yahoo Japan Corporation. All Rights Reserved.

123.

N-bestの比較とまとめ 長所 短所 形態素解析 非N-best ・インデックスサイズが小さい ・検索実行時の処理が速い ・検索結果にノイズが少ない ・インデックス作成に時間がかかる ・辞書が必要 ・検索漏れが発生する N-best ・N-gramよりインデックスサイズが小さい ・N-gramより検索結果のノイズが少ない ・非N-bestより検索漏れが少ない ・非N-bestよりインデックスサイズが大きい ・非N-bestより検索結果のノイズが多い ・N-gramより検索漏れが多い N-gram ・インデックスの作成が速い ・辞書を必要としない ・検索漏れがない ・インデックスサイズが大きい ・検索実行時の処理が遅い ・検索結果にノイズが多い ・N-gramとの併用よりも意味のある単語でより細かく分割が可能。 ・複数の解釈が可能な文字列への対応が可能。 Copyright (C) 2015 Yahoo Japan Corporation. All Rights Reserved.

124.

より詳細な情報 ・Solr Reference Guide ・https://cwiki.apache.org/confluence/display/ solr/Apache+Solr+Reference+Guide ・Changes.html ・https://lucene.apache.org/solr/6_0_0/changes/ Changes.html Copyright (C) 2015 Yahoo Japan Corporation. All Rights Reserved.

125.

お知らせ

126.

人材募集中 Yahoo! JAPAN RECRUITMENT MESSAGE INTERVIEW INFOGRAPHICS WORKPLACE INTERNSHIP RECRUIT 社長メッセージ 社員インタビュー データで紐解くヤフー 制度・環境 インターンシップ 採用情報一覧 新卒 ENTRY 中途 TOP Yahoo! JAPAN RECRUITMENT 2016.3.8 【コーポレート】秘書 ※東京/正社員の募集を開始 もっと見る Copyright (C) 2015 Yahoo Japan Corporation. All Rights Reserved.

127.

人材募集中 ENGINEER エンジニア部門 技術を駆使して、Yahoo! JAPANのエンジニアリングを担当 > アプリ開発エンジニア ※東京/正社員 Yahoo! JAPANが提供する各サービスのスマートフォンアプリ (iOS/Android)の開発を担当 > インフラ・セキュリティエンジニア ※東京、大阪/正 社員 Yahoo! JAPANのサービスを支えるインフラ、セキュリティ分野を担当 > サービス開発エンジニア ※東京、大阪/正社員 Yahoo! JAPANにおける各サービスのフロントエンド・バックエンド部分の 開発を担当 > プラットフォーム開発エンジニア ※東京/正社員 Yahoo! JAPANの各サービスを支えるプラットフォーム開発を担当 > リサーチエンジニア ※東京、大阪/正社員 Yahoo! JAPANの各種サービスに活用していくデータサイエンス分野を担当 > 社内SE ※東京/正社員 社内で利用されるアプリケーションの開発やネットワークをはじめとするイ ンフラ構築・運用などを担当 > 【新会社】基盤研究開発エンジニア ※東京/正社員 基盤研究開発を担う関連会社(ゼットラボ株式会社)での研究開発業務を担 当 > 【GYAO!】アプリ開発エンジニア ※東京/正社員 GYAO!におけるiOSおよびAndroidを使用した動画再生アプリの開発を担当 > 【GYAO!】パーソナライズサービス開発エンジニア ※東京/正社員 動画配信サービスGYAO!に集まるコンテンツとユーザーの情報を解析し、最 適なコンテンツを提案するシステムの開発を担当 > 【GYAO!】動画配信エンジニア ※東京/正社員 Yahoo! JAPANのサービスが動画を配信するための動画技術開発と保守を担 当 Copyright (C) 2015 Yahoo Japan Corporation. All Rights Reserved.