2017.12.15 Friday
スポンサーサイト
一定期間更新がないため広告を表示しています
| スポンサードリンク | - | | - | - |
関口宏司のLuceneブログOSS検索ライブラリのLuceneおよびそのサブプロジェクト(Solr/Tika/Mahoutなど)について
2011.06.13 Monday
lucene-gosen を使って節電する
昨日従来のものより25%の処理速度向上を達成したlucene-gosen 1.1.0のリリースをお知らせしたばかりだが、現trunkはさらに改良されてそれよりも9%、以前に比べると35%の高速化を達成した。達成したといっても達成したのはRobertさんで、私は隣で"Great!"とかいって盛り上げているだけである。
ところで、25%〜35%高速化したということは、それだけ早く形態素解析処理が終わる(処理時間が短くなる)のであるから、それだけコンピューターを早く解放できるので節電できているといえるのではないか。いや、そう思いたい。 もちろん24時間形態素解析器を使っているわけではないので、節電量は数パーセントにも満たないかもしれないが、多くのSenのユーザーが新しいバージョンのlucene-gosenに乗り換えれば、全体で結構節電したことになったりしないだろうか。 ・・・などと、全社で節電に取り組む某インテグレーター様にてしばし空想。 2011.06.12 Sunday
lucene-gosen 1.1.0 リリース
lucene-gosen 1.1.0 をリリースした。今回のリリースでは、JapaneseTokenizerが出力する各種Attributeを必要になるまでメモリにロードしないという改善を行い、さらなる高速化を実現した。手元の簡単な計測では、25%の処理速度向上が認められた。
計測に使用したプログラムを以下に示す。データには「第177回国会における菅内閣総理大臣施政方針演説」を使い、これを1万回ループする中で形態素解析を行った。2.2GHz Intel Core i7のMacBook Proで、lucene-gosen 1.0.1で107,144ms、lucene-gosen 1.1.0で80,290msとなった。 static final String STATEMENT = // ここに所信表明演説を貼り付け static final int NUM_LOOP = 10000; public static void main(String[] args) throws Exception { long startTime = System.currentTimeMillis(); for( int i = 0; i < NUM_LOOP; i++){ TokenStream stream = new JapaneseTokenizer(new StringReader(STATEMENT)); CharTermAttribute termAtt = stream.addAttribute(CharTermAttribute.class); while(stream.incrementToken()); stream.close(); if(i % 1000 == 0) System.out.println(Integer.toString(i + 1) + " processed..."); } long endTime = System.currentTimeMillis(); System.out.println("processing time (ms) : " + Long.toString(endTime - startTime)); } なおこの改善により、PartOfSpeechAttributeのコピーを保持するTypeAttributeがJapaneseTokenizerから出力されないようになった。これまでJapaneseTokenizerが出力するTypeAttributeでなにか処理をするTokenFilterを持っている人は、代わりにPertOfSpeechAttributeを参照するように変更する必要がある。 2011.05.13 Friday
lucene-gosen 1.0.1 リリース
lucene-gosen 1.0.1をリリースした。以下から使用する辞書に合わせてダウンロードできる:
http://code.google.com/p/lucene-gosen/downloads/list このリリースはユーザから寄せられた次のバグフィックスを含んでいる: WordDelimiterFilter使用時,JapaneseBasicFormFilterがNullPointerExceptionとなる ハイライトが正しくできない いずれも重要な修正なので、1.0.0を使用している方は即時1.0.1に切り替えていただきたい。 2011.04.15 Friday
lucene-gosen: Viterbiコストの表示
lucene-gosenのページにはSolr 3.1のanalysys.jspでのJapaneseTokenizerの出力結果が表示されている。よく見ると、トークンのコストが表示されているのがわかるだろう(一番下の属性)。これはカスタム辞書を作成するとき、単語のコストをいくつにすればいいかのデバッグ用に便利かも知れないということでつけた機能である。
2011.04.14 Thursday
Senの入手方法
Solr本ではsen-1.2.2.1.zipを入手して適用する方法を書いているが、今はどうやらZIPファイルの入手が困難になっているようなので、ソースからのビルド方法を記しておこう。なお、Senは現在活動していないので、Lucene/Solr 3.1であれば先日も紹介したlucene-gosenを使うことをお奨めする。lucene-gosenは活発に活動しているので、安心して使えると思う。
SenのビルドにはJavaとAntがインストールされていることを前提とする。また、辞書のビルドにはSolr本にもあるとおりPerlが必要となる。 # SubversionからSenを入手 $ svn co https://svn.java.net/svn/sen~svn/tags/SEN_1_2_2_1/sen # ビルド。なおcppコマンドがないとエラーになるが、その部分 #(build.xmlの中で 2011.04.12 Tuesday
lucene-gosen + Solr 3.1
先日簡単に紹介したlucene-gosenを、Solr 3.1で使う手順を説明しよう。
1.lucene-gosenのダウンロードしてビルド $ mkdir ~/work $ cd ~/work $ svn checkout http://lucene-gosen.googlecode.com/svn/trunk/ lucene-gosen-read-only $ cd lucene-gosen-readonly $ ant 2.Solr 3.1のダウンロードとlucene-gosenのJARの設定 $ mkdir ~/work2 $ cd ~/work2 $ wget http://ftp.riken.jp/net/apache//lucene/solr/3.1.0/apache-solr-3.1.0.tgz $ tar xvzf apache-solr-3.1.0.tgz $ cd apache-solr-3.1.0/example $ mkdir solr/lib $ cp ~/work/lucene-gosen-readonly/lucene-gosen-1.0beta.jar solr/lib 3.schema.xmlの設定 <fieldType name="text_ja" class="solr.TextField" positionIncrementGap="100"> <analyzer> <tokenizer class="solr.JapaneseTokenizerFactory"/> </analyzer> </fieldType> 4.Solrを起動 $ java -jar start.jar そして、text_jaで解析すると、次のようになる。 |
+ Solrによるブログ内検索
+ PROFILE
+ LINKS
+ Lucene&Solrデモ
+ ThinkIT記事
+ RECOMMEND
+ RECOMMEND
Lucene in Action (JUGEMレビュー »)
Erik Hatcher,Otis Gospodnetic,Mike McCandless FastVectorHighlighterについて解説記事を寄稿しました。
+ RECOMMEND
+ SELECTED ENTRIES
+ RECENT COMMENTS
+ RECENT TRACKBACK
+ CATEGORIES
+ ARCHIVES
+ MOBILE
+ SPONSORED LINKS
|
(C) 2024 ブログ JUGEM Some Rights Reserved.
|
PAGE TOP |