第17回Lucene/Solr勉強会 #SolrJP – Apache Lucene Solrによる形態素解析の課題とN-bestの提案

1.7K Views

October 28, 15

スライド概要

Apache Lucene Solrによる形態素解析の課題とN-bestの提案

profile-image

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

シェア

またはPlayer版

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

(ダウンロード不可)

関連スライド

各ページのテキスト
1.

第17回 Lucene/Solr勉強会 #SolrJP Lucene/Solrでの形態素解析の課題とN-bestの提案 ヤフー株式会社 大須賀 稔 Copyright (C) 2015 Yahoo Japan Corporation. All Rights Reserved.

2.

自己紹介 Copyright (C) 2015 Yahoo Japan Corporation. All Rights Reserved.

3.

大須賀 稔 (おおすか みのる) ヤフー株式会社 CTO室 / Solr黒帯 Apacheソフトウェア財団 ManifoldCFプロジェクト コミッター / PMCメンバー Solrプロジェクト コントリビューター [改訂新版] Apache Solr入門 (技術評論社) 共著者 Copyright (C) 2015 Yahoo Japan Corporation. All Rights Reserved.

4.

アナライザの仕組み Copyright (C) 2015 Yahoo Japan Corporation. All Rights Reserved.

5.

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

6.

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

7.

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

8.

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

9.

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

10.

検索エンジンの性能評価 Copyright (C) 2015 Yahoo Japan Corporation. All Rights Reserved.

11.

性能評価のための3つの指標 1. 適合率: Precision 正確性を表す指標。 2. 再現率: Recall 網羅性を表す指標。 3. F値: F-mesure 適合率、再現率の総合的な指標。 Copyright (C) 2015 Yahoo Japan Corporation. All Rights Reserved.

12.

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

13.

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

14.

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

15.

検索エンジンの課題 Copyright (C) 2015 Yahoo Japan Corporation. All Rights Reserved.

16.

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

17.

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

18.

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

19.

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

20.

形態素解析の仕組み Copyright (C) 2015 Yahoo Japan Corporation. All Rights Reserved.

21.

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

22.

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

23.

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

24.

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

25.

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

26.

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

27.

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

28.

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

29.

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

30.

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

31.

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

32.

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

33.

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

34.

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

35.

意図しない分割をされる例 外国人参政権 ↓ 外国 / 人 / 参政 / 権 Voting rights for foreign residents. Some rights reserved by MDGovpics Carrot ? または 外国 / 人参 / 政権 Some rights reserved by Max Braun The Carrot Administration of a foreign country. Copyright (C) 2015 Yahoo Japan Corporation. All Rights Reserved.

36.

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

37.

複数の解釈が可能な例 こちらは社長室長谷川です 長谷川です 谷川です ↓ Some rights reserved by A ONE-MAN ARMY RETURNS TO NO-MANS' LAND こちら / は / 社長 / 室 / 長谷川 / です 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.

38.

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

39.

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

40.

N-bestの提案 Copyright (C) 2015 Yahoo Japan Corporation. All Rights Reserved.

41.

N-best こちらは社長室長谷川です 5 8 1 社長 名詞 BOS 5 4 こちら は 名詞 4 助詞 3 3 7 1 10 社 長 名詞 1 名詞 9 1 室長 名詞 1 4 7 1 10 室 長 助詞 3 名詞 3 複数の解釈が可能な テキスト対応したい 3 谷川 名詞 1 1 11 11 谷 川 1 名詞 8 名詞 1 長谷 名詞 6 長谷川 名詞 Copyright (C) 2015 Yahoo Japan Corporation. All Rights Reserved. 4 4 4 です 4 助動詞 EOS

42.

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

43.

N-bestの実装 ゴール • JapaneseTokenizerにN-best機能を追加する。 • normal、search、extendedの各モードとの併用を 可能とする。 • N-best出力のコスト閾値を直接指定、または例文か ら求め指定可能にする。 Copyright (C) 2015 Yahoo Japan Corporation. All Rights Reserved.

44.

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

45.

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.

46.

N-bestの実行確認 normalモード Copyright (C) 2015 Yahoo Japan Corporation. All Rights Reserved.

47.

N-bestの実行確認 normalモードかつnbestCost=2000 Copyright (C) 2015 Yahoo Japan Corporation. All Rights Reserved.

48.

N-bestの実行確認 normalモードでは 「デジタル一眼レフ」は「一眼レフ」で検索できない × 一致しない 一致 Copyright (C) 2015 Yahoo Japan Corporation. All Rights Reserved.

49.

N-bestの実行確認 normalモードかつnbestCost=2000で 「デジタル一眼レフ」が「一眼レフ」で検索できる 一致 一致 Copyright (C) 2015 Yahoo Japan Corporation. All Rights Reserved.

50.

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

51.

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.

52.

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

53.

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

54.

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

55.

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.16 0.45 -0.07 0.3 0.15 -0.15 -0.25 +0.37 0 0 1000 -0.26 2000 3000 Copyright (C) 2015 Yahoo Japan Corporation. All Rights Reserved. 4000 5000

56.

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

57.

Yahoo! JAPAN より皆さまへ Copyright (C) 2015 Yahoo Japan Corporation. All Rights Reserved.

58.

Apache Lucene/Solrの形態素解析の 課題を解決したい! Copyright (C) 2015 Yahoo Japan Corporation. All Rights Reserved.

59.

N-bestパッチ LUCENE-6837 https://issues.apache.org/jira/browse/LUCENE-6837 via Copyright (C) 2015 Yahoo Japan Corporation. All Rights Reserved.

60.

N-bestパッチの適用 # パッチのダウンロード $ curl -L -O https://issues.apache.org/jira/secure/attachment/12766268/LUCENE-6837.patch # Lucene/Solrのtrunkチェックアウト $ svn co http://svn.apache.org/repos/asf/lucene/dev/trunk lucene-solr # パッチの適用 $ cd lucene-solr $ patch -p0 -E < ../LUCENE-6837.patch # ivyセットアップ $ ant ivy-bootstrap # コンパイル $ ant compile # テスト $ ant test Copyright (C) 2015 Yahoo Japan Corporation. All Rights Reserved.

61.

N-bestパッチの適用 (続き) # Solrパッケージ作成 $ cd solr $ ant create-package # Solrパケージの展開 $ cd ../../ $ tar zxvf lucene-solr/solr/package/solr-6.0.0-SNAPSHOT.tgz # サンプルコレクションの準備 $ cp -r server/solr/configsets/sample_techproducts_configs server/solr/nbest_sample $ echo "name=nbest_sample" > server/solr/nbest_sample/core.properties $ vi server/solr/nbest_sample/conf/schema.xml <fieldType name="text_ja_normal_nbest_2000" class="solr.TextField" positionIncrementGap="100" autoGeneratePhraseQueries="true"> <analyzer> <tokenizer class="solr.JapaneseTokenizerFactory" mode="normal" nbestCost="2000"/> </analyzer> </fieldType> # Solrの起動 $ ./bin/solr start -p 8983 -s server/solr Copyright (C) 2015 Yahoo Japan Corporation. All Rights Reserved.

62.

Copyright (C) 2015 Yahoo Japan Corporation. All Rights Reserved.