社内の Lucene 勉強会で使った資料です。Apache Lucene https://lucene.apache.org/ の概要について発表しました。 サンプルコード: https://github.com/takuyaa/hello-lucene
社内の Lucene 勉強会で使った資料です。Apache Lucene https://lucene.apache.org/ の概要について発表しました。 サンプルコード: https://github.com/takuyaa/hello-lucene
Transcript Lucene Kuromoji のコードを読む会 (辞書ビルダー編) 2019/10/3 @moco_beta 自己紹介 打田智子 twitter : @moco_beta 所属 : 株式会社 LegalForce R&D チーム / ソフトウェアエンジニア 検索システムに興味があります 趣味でOSS開発をしています Janome https://github.com/mocobeta/janome Apache Lucene committer () 趣旨など 主催者 (@moco_beta) が Lucene / Kuromoji のソースコード(辞書周り)を読むうえで,調 べたことをまとめておきたい 素のままで触る機会は少ないかもしれないけれ ど, Lucene のコードを読んでみるのも楽しい よ!というのを伝えたい 仕事ではブラック
溝口 泰史 著 はじめに GoogleやMicrosoft Bingなどで検索を行う場合、検索結果の中に自身が入力した検索ワードがわかるようにその部分を太字にしたり、背景色を変えるなどする工夫が見られます。これをハイライトと呼びます。 また、一般的な検索エンジンに求められる機能として、類義語検索というものがあります。これは、検索ワードとは異なるが類義語(あるいはシノニム)として定義されたワードを含むドキュメントを検索結果として返すことにより、検索結果の再現率を向上させること期待をしてのものです。 弊社が扱っているApache Solrにおいても、当然ハイライト機能を利用することができ、類義語検索を行うことができますが、これらの2つを組み合わせた場合にハイライトの位置がずれるという問題があることが知られていました。 Solr 6.4.0ではこの問題に対応する新機能が追加されました。 本稿では
概要 Apache Solr(以下、Solr)で商品検索のサジェスターを作ったので、それを紹介します。 サジェスターを作るにあたり、どのようにスキーマやサーチコンポーネントを定義すれば良いのかを説明します。 なお、この記事はsolr 4.10.4を対象にした記事です。 それ以外のバージョンでは設定項目が変わってくる場合があります。 サジェスターとは サジェスターとは、ユーザーが検索用のフォームに単語を入力している途中に、その入力途中の単語を補完する機能です。 例えば、Google検索でサジェスターについて調べようとした時に、「さじぇ」と入力した時点で以下のように「さじぇ」に続く単語が候補として現れます。 このような機能を実装することによって、ユーザーがテキストを入力する手間が省けたり、入力間違いをした単語で検索をしてしまうことを防げたりする効果があります。 日本語のサジェスターの難しいとこ
DocValues aka. Column Stride Fields in Lucene 4.0 - By Willnauer Simon See conference video - http://www.lucidimagination.com/devzone/events/conferences/revolution/2011 Lucene 4.0 is on its way to deliver a tremendous amount of new features and improvements. Beside Real-Time Search & Flexible Indexing DocValues aka. Column Stride Fields is one of the “next generation” features. DocValues enable Lu
Elasticsearchには類義語によるクエリ拡張機能があります。これを適用すると まどマギ と検索したときに まどかマギカ と書かれた文書もヒットするようになります。 (LuceneやSolrにもありますがここではElasticsearchの話だけします) この類義語辞書は、人手で作ること (e.g., FRILの商品検索をnGramから形態素解析にした話 - mosowave) もできますが、今回はなるべく手間をかけたくないのでWikipediaのリダイレクトデータから自動で類義語辞書を作る方法を紹介します。 (自動といってもノイズも含まれてるので実用的に使うにはある程度人手でフィルタリングする必要があります。それでも一から人手で作るよりは手間が少ないと思います) (ElasticsearchではWordNetでの類義語検索に対応しているようですが、これを書いてる2015年12月時点
Solr 5.1 has been released! Here’s an overview of how to use some of the new features. Also see Solr download links and upcoming features of the next Solr release. New Facet Module The new facet module has a native JSON Facet API, first-class support for statistics and analytics via facet functions (aggregations), and supports unlimited nesting of facets within other facets via sub-facets. One can
solrのレプリケーション レプリケーションとは、複数のサーバでデータを同期することを言います。 solrのレプリケーションには2通りの方法があります。 solr1.3までのバージョンではssh + rsyncによるレプリケーションが行えます。 solr1.4以降ではReplicationHandlerでhttp通信によるレプリケーションが可能になりました。 ReplicationHandlerはhttp通信なので、ssh+rsync形式と違ってdaemonの起動も不要でportを開ける必要もありません。 solr1.4以降ではReplicationHandlerを使う事をおすすめします。 なお、ReplicationHandlerを行うにはcommons-httpClientが必要なので、jarを追加しましょう。 レプリケーションの設定をする レプリケーションの設定はsolrconfig
8. 編集距離 (Levenshtein 距離 ) 二つの文字列がどの程度異なっているかを示す数値 文字の挿入, 削除, 置換で一方を他方に変形するための最小の手順回数 伊藤直哉, 伊藤直也 -> 1 伊藤直, 伊藤直也 -> 1 佐藤直哉, 伊藤直也 -> 2 佐藤B作, 伊藤直也 -> 3 9. 編集距離の計算 動的計画法 sub distance { my ($s1, $s2) = validate_pos(@_, 1, 1); my $m = []; my @s1 = split //, $s1; my @s2 = split //, $s2; for (my $i = 0; $i <= @s1; $i++) { $m->[$i]->[0] = $i; } for (my $j = 0; $j <= @s2; $j++) { $m->[0]->[$j] = $j; } for (m
昨日 最長共通部分列問題 (LCS) について触れました。ついでなので編集距離のアルゴリズムについても整理してみます。 編集距離 (レーベンシュタイン距離, Levenshtein Distance) は二つの文字列の類似度 (異なり具合) を定量化するための数値です。文字の挿入/削除/置換で一方を他方に変形するための最小手順回数を数えたものが編集距離です。 例えば 伊藤直哉と伊藤直也 … 編集距離 1 伊藤直と伊藤直也 … 編集距離 1 佐藤直哉と伊藤直也 … 編集距離 2 佐藤B作と伊藤直也 … 編集距離 3 という具合です。 編集距離はスペルミスを修正するプログラムや、近似文字列照合 (検索対象の文書から入力文字にある程度近い部分文字列を探し出す全文検索) などで利用されます。 編集距離算出は動的計画法 (Dynamic Programming, DP) で計算することができることが
以前Solr4.0の記事を書いてからはや半年以上、いつの間にやらSolrが4.4になっていました。追いつけたもんじゃない。 Solr関係の調べ事をしているとSolr Wikiをよく見ることになるんですが、その中でsolr.EdgeNGramFilterFactoryがずっと気になっていたわけです。これを使えばいい感じのAuto Completeができるんじゃないか?というかそのために作られたようなFilterにしか見えない!という感じで。 そんなわけで、このsolr.EdgeNGramFilterFactoryを使って日本語対応のAuto Completeを実装してみました。 簡単な動作確認しかしていませんが、うまく動いているような・・・?どうでしょう。 以下は全てSolr4.4での実装メモです。 solr.EdgeNGramFilterFactoryについて まずこのsolr.EdgeN
以前Solr4.0の記事を書いてからはや半年以上、いつの間にやらSolrが4.4になっていました。追いつけたもんじゃない。 Solr関係の調べ事をしているとSolr Wikiをよく見ることになるんですが、その中でsolr.EdgeNGramFilterFactoryがずっと気になっていたわけです。これを使えばいい感じのAuto Completeができるんじゃないか?というかそのために作られたようなFilterにしか見えない!という感じで。 そんなわけで、このsolr.EdgeNGramFilterFactoryを使って日本語対応のAuto Completeを実装してみました。 簡単な動作確認しかしていませんが、うまく動いているような・・・?どうでしょう。 以下は全てSolr4.4での実装メモです。 solr.EdgeNGramFilterFactoryについて まずこのsolr.EdgeN
20150603 nlp4l meetup1 1. NLP4L meetup #1 2015.06.03 @moco_beta 2. アジェンダ NLP4Lとは (@kojisays) NLP4Lをはじめよう (@moco_beta) Luceneのインデックスを知る (@moco_beta) 休憩 NLPツールとして使う (@moco_beta, @kojisays) 3. NLP4Lをはじめよう 4. NLP4L のインストール ! ソースコードチェックアウト ビルド 対話シェル起動 手順はこちら $ git clone https://github.com/NLP4L/meetups.git $ cat meetups/20150603/01_install.md 5. テキストコーパスのインデックス ライブドアコーパスのダウンロードとインデックス 手順はこちら $ cat meet
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く