Sunday, February 10, 2013

トラジでとらや

Google 先生は、トラジととらやの区別がつかないのか!? ナゼだ! ナゼなんだ!!




Monday, December 19, 2011

Mac OS X Lion への MeCab (0.99pre2) のインストール

開発環境のOSを、Lion (10.7.2) へアップデートしたのを機に、MeCab の最新版(0.99pre2)をインストールしてみました。
前回の Snow Leopard への Cabocha のインストール の時と違い、いきなり iconv が参照出来ないと怒られて Make が通らないので、configure のオプションで、--with-libiconv-prefix=/usr のように指定し、なんとかコンパイル完了。今回の configure オプションは、以下の通りとしました。
./configure --prefix=/opt/local --with-charset=utf8 --with-libiconv-prefix=/usr

その後の make check も無事パスし、いざインストールと思い、sudo make install するも、 Permission denied でインストール出来ず。。。 時間も無かったので、ファイルを手動コピーでなんとかしてしまったものの、気持ちが悪いので、後ほど時間を作って原因を調べてみたいと思います。

Wednesday, November 30, 2011

Solr 3.5 リリース! ということで、リリースノートを日本語訳してみました



Solr 3.5 がリリースされました。CHANGES.TXT に含まれる内容を翻訳してみました。内容を見なす時間が無かったのでドラフトということでご容赦下さい。なお、誤訳、日本語としておかしな点がありましたら、ご指摘ください。なお、3.4 -> 3.5 の分のみの翻訳ですが、そのうちそれ以前の分も翻訳するかも知れません。


Apache Solr リリースノート

はじめに
------------
Solrは、Apache Luceneプロジェクトが提供する人気の高い、非常に高速なエンタープライズ検索プラットフォームです。主な機能として全文検索、ヒットハイライト、ファセット検索、動的なクラスタリング、ダータベースとの接続、そしてWordやPDFなどのリッチドキュメントの取り扱いなどが含まれます。 Solr は、非常にスケーラブルで、分散検索とインデックスのレプリケーション機能を提供しています。そして、世界の大規模なインターネットサイトの多くの検索とナビゲーション機能を強力にしています。

SolrはJavaで書かれ、スタンドアロンの全文検索サーバーとしてTomcat などのサーブレットコンテナーで稼働します。 SolrはLucene Java検索ライブラリを全文検索インデキシングと検索のコアとして利用しています。そして、REST風のHTTP/XMLとJSON APIによって、ほとんど全てのプログラム言語から簡単に利用できます。Solrの高度な設定機能によって、Javaによるプログラム作成を行わなくても、多くのタイプのアプリケーションに対応することが可能です。さらに、幅広いプラグインアーキテクチャーによって、より高度なカスタマイズが必要な際にも対応できます。

利用を始めるにあたっての、より多くの情報については、README.txt と http://lucene.apache.org/solr をご覧下さい。

==================  3.5.0  ==================
主要コンポーネントのバージョン
---------------------
Apache Tika 0.10
Carrot2 3.5.0
Velocity 1.6.4 and Velocity Tools 2.0
Apache UIMA 2.3.1


Solr 3.4 からのアップグレード
----------------------

* VelocityResponseWriter は、コアに含まれていません。利用する場合には、JAR と関連する
  ファイルを追加(<lib> あるいは、solr/home 以下の lib に含める)し、solrconfig.xml に以下の
  ように記述する必要があります。
      <queryResponseWriter name="velocity" class="solr.VelocityResponseWriter"/>

新機能
----------------------
* SOLR-2749: FastVectorHighlighter へバウンダリースキャナー(境界認識の仕組み)を
  追加。<boundaryscanner/> を名称とともに solrconfig.xml へ定義し、パラメータ
  hl.boundaryScanner=name  により、その名称を指定することによって利用します。
  (koji)

* SOLR-2066, SOLR-2776: 分散グルーピングのサポートを追加しました。
  (Martijn van Groningen, Jasper van Veghel, Matt Beaumont)

* SOLR-2769: 新しい Hunspell stemmer のファクトリーを追加したことにより、99言語の
  ステミングが可能になりました。
  (janhoy, cmale)

* SOLR-1979: 新しいコントリビューション"langid"として、Update Processor による
  言語判別機能を追加しました。
  Tika の LanguageIdentifier か Cybozu language-detection library のどちらかを利用できます。
  (janhoy, Tommaso Teofili, gsingers)

* SOLR-2818: SolrJ でのレンジファセットで、before/after の件数のレスポンス解析サポート
  を追加しました。
  (Martijn van Groningen 経由で Bernhard Frauendienst)

* SOLR-2276: PhoneticFilterFactory へ、Cologne Phonetic サポートを追加しました。
  (rmuir を経由して Marc Pompl)

* SOLR-1926: hl.q パラメータを追加しました。(koji)

* SOLR-2881: 数値型で sortMissingFirst/Last をサポートしました。これには、Trie 型と
  Date 型が含まれます。
  (Ryan McKinley, Mike McCandless, Uwe Schindler, Erick Erickson)

* SOLR-1023: StatsComponent で date フィールドと string フィールドをサポートしました。
  (Chris Male, Mark Holland, Gunnlaugur Thor Briem, Ryan McKinley)

* SOLR-2578: ReplicationHandler のバックアップコマンドが 'numberToKeep' パラメータを
  サポートしました。これにより、最近の N 件のバックアップのみを保持し、それ以外の
  ものを削除出来ます。
  (hossman 経由で James Dyer)

最適化
----------------------

* SOLR-2742: SolrJ: 全ての add() メソッドがオプションパラメータとして commitWithinMs
  を提供し、開発者がより簡便にこの機能を利用できるようにしました。 (janhoy)

バグ修正
----------------------

* SOLR-2762: (4.x 系からのバックポート): FSTLookup がリクエストよりも少なく重複
  あるいは1件の結果を返していました。
  (David Smiley, Dawid Weiss)

* SOLR-2748: CommitTracker が commitWithin または maxTime 指定による autoCommit
  を利用している際に、頻繁に commit を行うことで新しいサーチャーが登録されるまで、
  追加をブロックすることがありました。(yonik)

* SOLR-2726: Suggester とともに spellcheck.q 利用時に NullPointerException が発生して
  いたのを修正しました。
  (Bernd Fehling, rmuir 経由で valentin)

* SOLR-2772: 0001-1000 の期間の日付パース/フォーマットを修正しました。
  (hossman)

* SOLR-2763: サイズ0のファイルをマルチパートフォームで POST した際に、
  Extracting Update Request Handler が例外を発生し、400 を返していました。
  (janhoy)

* SOLR-2780: 複数選択ファセットで、group.truncate パラメータを扱わない問題を
  修正しました。
  (Martijn van Groningen, Ramzi Alqrainy)

* SOLR-2791: Replication: 通常の poll では無く、fetchindex コマンドによりレプリケーション
  が始まっていた場合に、abortfetch コマンドが効きませんでした。(shalin 経由で Yury Kats)

* SOLR-2861: 非常に稀なコミット時のレースコンディションにより、NullPointerException
  が発生する問題を修正しました。(yonik)

* SOLR-2829: 間違った equals メソッドにより、ご判定される問題を修正しました。
  (Yonik Seeley, Hossman, Erick Erickson. Marc Tinnemeyer がバグを発見)

* SOLR-2902: SpellCheckResponse において照合リストのパースが間違っていたため、
  レスポンス中の照合結果の件数が間違っていました。
  (Bastiaan Verhoef, Simon Willnauer 経由で James Dyer)

 その他の変更点
----------------------

* SOLR-2750: "update.chain"と"update.param"の両方があらゆるところで利用できるように
  しました。SOLR-2105 もご覧ください。(Mark Miller, janhoy)

* LUCENE-3410: WordDelimiterFilter コンストラクタが複数の int パラメータをブーリアン
  として受け取っていたのに代わり、優先コンストラクタは、1つの int 型ビットフィールド
  変数を受け取ります。(Chris Male)

* SOLR-2758: ConcurrentLRUCache を、SolrJ モジュールの org.apache.solr.common.util
  パッケージから、Solr-Core モジュール org.apache.solr.util パッケージへ移動しました。
  (Steve Rowe 経由で David Smiley)

* SOLR-2756: Maven 設定: 未使用の zookeeper 依存関係の整理を行いました。
  geronimo-stax-api への依存関係は、Java 1.5 環境下でのみ有効となります。
  org.codehaus.woodstox:wstx-asl から推移的なstax:stax-api への依存は除かれます。
  (David Smiley, Steve Rowe)

* SOLR-2770: 'ant generate-maven-artifacts' は、Solr 固有の jdk15-compiled 
  carrot2-core 依存関係の maven artifact を生成します。(Steve Rowe)

* SOLR-2766: solrj と test-framework それぞれの javadoc サイトをパッケージする
  ようにしました。
  (Steve Rowe, Mike McCandless)

* SOLR-2771: Solr モジュールのテストが solr-core テストクラスへ依存するべきでない
  ことから、BufferingRequestProcessor を solr-core テストから test-framework へ移動
  しました。これにより、Solr Cell モジュールから、同プロセッサーが利用できます。
  (janhoy, Steve Rowe)

* LUCENE-3457: commons-compress を 1.2 へアップグレードしました。(Doron Cohen)

* SOLR-2757: min() および max() 関数において、任意の数の ValueSource をサポート
  しました。
  (hossman 経由で Bill Bell)

* SOLR-2372: Tika 0.10 へアップグレードしました。(janhoy)

* SOLR-2792: ケースインセンシティブな Hunspell ステミングをサポートしました。
  (janhoy, rmuir)

* SOLR-2588: VelocityResponseWriter を SolrCore の依存モジュールから外すため、
  contirb モジュールへと戻しました。(Erik Hatcher)

* SOLR-2862: Carrot2 によるクラスタリング機能拡張利用時に、辞書資源の場所を
  ログへ明示的に出力するようにしました。このために、IResource と IResourceLookup
  の Solr での実装を修正しています。(Dawid Weiss)

* SOLR-2849: Maven POM の依存関係を修正しました。
  (Steve Rowe 経由で David Smiley)

* SOLR-2591: solrconfig.xml から commitLockTimeout オプションを削除しました。
  (Martijn van Groningen 経由で Luca Cavanna)

* SOLR-1123: JSONResponseWriter が Content-Type として新しい application/json を
  デフォルトで返すように変更しました。しかし、Content-Type は上書き可能で、
  設定例では、text/plain がセットされています。(Uri Boness, Chris Male)

Friday, September 16, 2011

Lucene/Solr 3.4 リリース!

気がついたら、Lucene/Solr 3.4 がリリースされていました。3.3 のリリースからそれほど間のないタイミングでのアップデートということで、キャッチアップするだけでも大変な状況です。

自分用のメモ代わりに、ニュースリリースを簡単に和訳してみました。



Lucene 3.4/Solr 3.4 がリリースされました。Lucene PMC によるニュースリリースによると、現在 Lucene/Solr 3.1, 3.2 あるいは、3.3 を利用しているユーザは、アップデートすることを強く推奨しています。これは、機能ハイライトにあるように、OS あるいは、コンピューター のクラッシュ/電源消失により、インデックスが壊れてしまうバグが修正(LUCENE-3418)されているからです。無停電電源のある環境であれば比較的安全なのかも知れませんが、いつそのバグを踏んでしまうか分かりませんし、出来るだけ早めのアップデートを検討した方が良いかもしれません。

Lucene 機能ハイライト:


  • OS あるいは、コンピューターのクラッシュ/予期せぬ電源消失によりインデックスが壊れてしまうバグ (LUCENE-3418) を修正しました。
  • 新しいファセットモジュールとして、検索時にファセットカウントの集計を行うモジュール(LUCENE-3079)を追加しました。
  • JOIN モジュールの追加により、BlockJoinQuery/Collector (LUCENE-3171) を利用して、ネストしたドキュメント(親子関係のあるドキュメント)のインデキシング/検索が可能になりました。
  • タームの位置情報を含めることなく、ターム頻度(タームフリクエンシー:TF)をインデックスに含めることが可能になりました。以前の omitTermFreqAndPositions オプションでは、常時、両方を含めない設定しか行えませんでした。(LUCENE-2048)
  • QueryParser モジュールで、NumericRangeQuery が作成可能になりました。
  • SynonymFilter の追加により、インデキシング/検索時に、複数の類義語への展開が行えるようになりました。また、WordNet や Solr の類義語フォーマットのファイルの利用が可能です。 (LUCENE-3233)
  • ソート対象フィールドで、値が入っていない場合の動作を SortField.setMissingValue によりコントロール出来るようになりました。(LUCENE-3390)
  • addIndexes メソッド実行後に タームベクターが削除されてしまう問題が発生する問題を修正しました。(LUCENE-3403)  #訳注:本文では、LUCENE-3402 となっていますが、LUCENE-3403 の間違いだと思われます。


Solr 機能ハイライト:


  • SolrJ クライアントが、検索結果のグループ/レンジファセットを処理出来るようになりました。(SOLR-2523)
  • 新しい XsltUpdateRequestHandler を利用することにより、XSLT による XML ドキュメントの Solr ドキュメントへの変換とフィードを行うことが可能になりました。(SOLR-2630)
  • ポストグループファセッティングオプション(group.truncate) により、各ファセットグループにおける高いランキングのドキュメントのカウントのみの集計が行えるようになりました。(SOLR-2665)
  • 全ての Update Handler へ commitWithin アップデートリクエストパラメータを追加しました。これにより、特定の時間内での commit を行うように指示が行えます。(SOLR-2540)
  • NIOFSDirectory を指定することが出来るようになりました。(SOLR-2670)  #訳注:DirectoryFactory において、設定出来る項目として追加されています。
  • ハイライトの新しいパラメータ hl.phraseLimit により、FastVectorHighlighter のパフォーマンス向上が行えます。(LUCENE-3234)  #訳注:フレーズマッチの長さ制限を与えることによるパフォーマンス向上ということになります。
  • クエリーキャッシュとフィルターキャッシュをリクエスト毎に使用しないように設定可能になりました。Wiki も参照して下さい。(SOLR-2429)
  • SynonymFilterFactory における、メモリ使用量、ビルド時間およびパフォーマンスを向上しました。(LUCENE-3233)
  • スキーマでの設定に omitPositions を追加しました。これにより、インデキシング時に、ターム頻度(TF)を残したままタームポジションを保持しないようにすることが可能になりました。(LUCENE-2048)
  • マルチスレッド化された DataImportHandler に対していくつかの改善を行いました。


ここまで。

ということで、目玉は、やはりインデックスが壊れてしまうバグの修正でしょうか。でも、これにより Lucene/Solr 3.4 以前の 3.X は、実質的には使えないという事になりますよねぇ。なお、Jira にも書いてあるように、ハリケーン アイリーンのおかげで露呈したバグのようです。

Monday, January 3, 2011

[備忘録] Mac OS X Snow Leopard でことりえ辞書を初期化する

義母が利用している MacBook で、ことえりの日本語変換がむちゃくちゃな状態だと言うので、初期化することに。実は、ATOK の購入も考えたのだけど、まずは初期化して様子見ということで、ちょっと ATOK 11 の実力を見たかったので残念w

 

1. 環境

MacBook Pro 15"

Mac OS X 10.6 Snow Leopard

 

2. 初期化の手順

Users/XX/Library/Preferences


以下のファイルを削除
com.apple.Kotoeri.plist
com.apple.Kotoeri WordRegister.plist
com.apple.Kotoeri Preferences.plist

com.apple.Japanese Analysis フォルダ内の以下のファイルを削除
Environment.plist
InputPrediction.dict
LearningDictionary.dict

再ログインして日本語変換を確認。

Friday, December 24, 2010

[備忘録] Solr 1.4 と cmecab-java で日本語検索環境を構築

Solr と cmecab-java を利用し、日本語形態素解析による検索環境の構築を行ったので、そのときの作業メモ。

稼働環境

MacBook Pro 15" (Unibody, Mid 2010), Core i7 2.66GHz, 8GB RAM
Mac OS X 10.6.5 Snow Leopard


1. MeCab のインストール

cmecab-java は、MeCab の JNI バインディングなので、MeCab がインストールされていることを前提としたものです。なので、何はともあれ、MeCab をインストール。
もし詳しい情報が必要な場合は、過去記事 [備忘録] Mac OS X 10.6 Snow Leopard への Cabocha インストール を参照。


2. Protocol Buffers のインストール

LocalProtobufTagger を利用しないのであれば必要ないのですが、StandardTagger との比較検討対象に考えている場合には、こちらもインストールします。
Google Code のプロジェクトページのダウンロードリストから、protobuf-2.3.0.tar.gz をダウンロードし、適当なディレクトリへ解凍します。例として、/Users/hoge/work とすると、
$ tar zxvf protobuf-2.3.0.tar.gz
$ cd protobuf-2.3.0
$ pwd
/Users/hoge/work/protobuf-2.3.0

お約束の configure & make です。私の場合、サードパーティアプリは、/opt/local へ入れる事にしているので、
$ configure --prefix=/opt/local
$ make
問題なくビルド出来たようであれば、
$ make check
これも問題なければ、インストールします。
$ make install
あるいは、環境や設定、権限によっては、sudo も必要です。
$ sudo make install

3. SCons のインストール

SCons も必要なので、インストールします。
SCons プロジェクトのダウンロードページから、scons-2.0.1.tar.gz をダウンロードし、適当なディレクトリへ解凍します。例として、/Users/hoge/work とすると、
$ tar zxvf scons-2.0.1.tar.gz
$ cd scons-2.0.1
$ pwd
/Users/hoge/work/scons-2.0.1

ここで、インストールします。
$ python setup.py install --prefix=/opt/local
あるいは、権限や環境によっては、sudo が必要です。
$ sudo python setup.py install --prefix=/opt/local

4. Solr のインストール

Sorl をインストールします。
例として、/Users/hoge/work/apache-solr-1.4.1 へ展開し、example ディレクトリをSOLR_HOMEとしました。


5. cmecab-java のインストール

ダウンロードした cmecab-1.7.tar.gz を適当なディレクトリ、例として /Users/hoge/work へ展開します。
$ tar zxvf cmecab-1.7.tar.gz
$ cd cmecab-1.7
$ pwd
/Users/hoge/work/cmecab-1.7

JNIをビルドするため、jni ディレクトリへ行き、scons によりビルドします。この時、SConstruct を、自分の環境にあうように編集します。
$ cd jni
$ vi SConstruct

もし、Mac OS X Snow Leopard を利用している場合、JAVA_HOME は、/usr/libexec/java_home を実行することにより取得できます。つまり、
export JAVA_HOME=`/usr/libexec/java_home`
となります。jni.h などのインクルードファイルは、
export JNI_DIR=$JAVA_HOME/../Headers
などと .bash_profile で定義しておくと良いかもしれないです。
また、上記1.、2. のことから、/opt/local/lib と /opt/local/include も参照される必要があることから、私の環境では、以下のように変更しました。

javahome = os.environ['JAVA_HOME']
incpath = [join(javahome, '../Headers'), '/opt/local/include', '/usr/include']
libpath = ['/usr/lib', '/opt/local/lib']

後は、プロジェクトページのインストールに関する解説通りで、問題なくインストールできます。
なお、libCMeCab.dylib と libCMeCab_protobuf.dylib を、/Users/hoge/work/lib へ置いたので、DYLD_LIBRARY_PATH (Linuxの場合は、LD_LIBRARY_PATH)は、以下のように設定しました。
export DYLD_LIBRARY_PATH=/Users/hoge/work/lib:/opt/local/lib:$DYLD_LIBRARY_PATH

6. Solr 側の設定

a) schema.xml の設定
Jetty を利用してのテストなので、cmecab-1.7.jar と protobuf-java-2.1.0.jar を $SOLR_HOME/solr/lib へコピー
その後、プロジェクトページの使用方法の「Solr から使用する」を参考にして、filedType 定義を追加。



7. Admin GUI による動作の確認

Solr の Field Analysis 画面(Admin GUI の一部)へアクセスする。ポートの設定を変更したので、以下の URL となる。
http://localhost:9983/solr/admin/analysis.jsp
Field のプルダウンで、'type'を選び、テクストボックスへ、'text_mecab' と入力する。
Field value (Index) の 'verbose output' チェックボックスをチェック。
テキストボックスへ、定番の「すもももももももものうち」と入力。
'Analyze'ボタンをクリックする。正常に動いている場合は、画面下部に、
Index Analyzer
org.apache.lucene.analysis.ja.JapaneseAnalyzer {}
と表示され、以下のような解析結果が表示される。




参考にしたサイト


Monday, December 20, 2010

[備忘録] Solr 1.4 と Sen による日本語検索環境の構築

Solr 1.4 と Sen(MeCab の Java 実装)を利用し、オープンソースのみで形態素解析による全文検索が行えるような環境構築を行ったので、その作業メモ。環境は、以下の通り。


稼働環境

MacBook Pro 15" (Unibody, Mid 2010), Core i7 2.66GHz, 8GB RAM
Mac OS X 10.6.5 Snow Leopard


1. 用意するもの

Solr 1.4.1 を、Apache Solr のサイトからダウンロード。 Sen 本体と Solr/Lucene で利用するための lucene-ja プロセッサを、java.net の Sen プロジェクトページからダウンロード



2. Sen のインストール

ダウンロードした sen-1.2.2.1.zip を、適当なディレクトリ。例として、/Users/hoge/work へ解凍する。
$ unzip sen-1.2.2.1.zip
$ cd sen-1.2.2.1
$ pwd
/Users/hoge/work/sen-1.2.2.1

デフォルトでは、EUC-JP を扱うようになっているため、UTF-8 へ設定変更する。
$ cd conf
$ vi sen.xml
charset が euc-jp となっている部分を utf-8 へ書き換える。

$ vi sen-processor.xml
charset が euc-jp となっている部分を utf-8 へ書き換える。

辞書を UTF-8 でビルドするため、プロパティファイルを変更する。
$ cd ../dic
$ vi dictionary.properties
sen.charset=EUC-JP を sen.charset=utf-8 へ書き換える。
その他は、そのままとする。

辞書をビルドする。
$ ant
アーカイブをダウンロードし解凍、ビルドを行う。
もし、sen 本体を再ビルドする場合は、1つ上のディレクトリへ戻り、ビルドを行う。
$ cd ..
$ pwd
/Users/hoge/work/sen-1.2.2.1
$ ant
jar ファイルを solr のライブラリディレクトリへコピーする。
$ cp lib/sen.jar <SOLR_INST_DIR>/example/solr/lib
# lib ディレクトリが無い場合には、作成する。



3. lucene-ja のインストール

sen は、日本語形態素解析エンジンであり、これを Solr/Lucene から利用するためには、Solr/Lucene のAPIを利用したプロセッサ(要は、ラッパーあるいは、コネクタ)が必要となり、これが lucene-ja.jar となる。
ダウンロードした、lucene-ja-2.0test2.zip を適当なディレクトリ、例として /Users/hoge/work へ解凍
$ unzip lucene-ja-2.0test2.zip
$ cd lucene-ja
$ pwd
/Users/hoge/work/lucene-ja
jar ファイルを solr のライブラリディレクトリへコピーする。
$ cp lib/lucene-ja.jar <SOLR_INST_DIR>/example/solr/lib


4. Solr のインストール

ダウンロードした、apache-solr-1.4.1.tgz を適当なディレクトリ、例として、/Users/hoge/work へ解凍する。
$ tar zxvf apache-solr-1.4.1.tgz
$ cd apache-solr-1.4.1
$ pwd
/Users/hoge/work/apache-solr-1.4.1

インスタンスは、example のものを利用するので、SOLR_HOME は、example ディレクトリとなる。
$ export SOLR_HOME=/Users/hoge/work/apache-solr-1.4.1/example



5. Solr の設定

schema.xml の設定
$ cd $SOLR_HOME/solr/conf
$ vi schema.xml
以下のように sen 用のフィールドタイプを追加
<!-- This is an example of using sen for Japanese analysis and tokenization -->
<fieldType name="text_sen" class="solr.TextField">
  <analyzer class="org.apache.lucene.analysis.ja.JapaneseAnalyzer"/>
</fieldType>
<!-- sen -->
fields エントリは、とりあえずそのまま。先ずは、Solr が正常に起動することを確認し、Field Analysis 画面で sen の動作を確認する。



6. Solr の起動

上記 2. での sen インストールディレクトリ、例では、/Users/hoge/work/sen-1.2.2.1 を SEN_HOME として環境変数をセットする。
$ export SEN_HOME=/Users/hoge/work/sen-1.2.2.1
Solr を起動する。
$ cd <SOLR_INST_DIR>
$ java -Dsen.home=$SEN_HOME -jar start.jar

と、ここで問題発生!
solr 1.4 が起動しない。
SEVERE: java.lang.IllegalAccessError
が出ている。

ということで、lucene-ja を Eclipse などで開いてみると。
以下のコンストラクタで、input=in としている部分があるので、コメントアウトする。
コンストラクタ内の super(in) により、TokenFilter の protected final TokenStream input に in がセットされるので、動作は、問題ないです。
lucene-ja/src/org/apache/lucene/analysis/ja/DigitFilter.java
lucene-ja/src/org/apache/lucene/analysis/ja/KatakanaStemFilter.java
lucene-ja/src/org/apache/lucene/analysis/ja/MonitorFilter.java
lucene-ja/src/org/apache/lucene/analysis/ja/POSFilter.java

さらに、以下のファイルのエンコードを UTF-8 へ変更し、
lucene-ja/src/org/apache/lucene/analysis/ja/NormalizeReader.java
public static final int[] CONVERSION_TABLE
を、
public static final char[] CONVERSION_TABLE
と変更。さらに、'-1'が値として定義されていたものを、'0'と変更。
lucene-ja.jar を再ビルドし、用意。ただし、build.xml が用意されていないので、Eclipse からエクスポートした。
TODO: Make a build.xml for lucene-ja.jar
ということで。


7. Admin GUI による動作の確認

Solr の Field Analysis 画面(Admin GUI の一部)へアクセスする。ポートの設定を変更していない場合は、以下の URL となる。
http://localhost:8983/solr/admin/analysis.jsp
Field のプルダウンで、'type'を選び、テクストボックスへ、'text_sen'と入力する。
Field value (Index) の 'verbose output' チェックボックスをチェック。テキストボックスへ、定番の「すもももももももものうち」と入力。
'Analyze'ボタンをクリックする。
正常に動いている場合は、画面下部に、
Index Analyzer
org.apache.lucene.analysis.ja.JapaneseAnalyzer {}
と表示され、以下のような解析結果が表示される。

















参考にしたサイト

http://d.hatena.ne.jp/knaka20blue/20080922/1222104683
http://shower.human.waseda.ac.jp/~m-kouki/pukiwiki_public/96.html

Friday, December 10, 2010

Apple TV 購入!

iPad の OS バージョンアップに合わせ、Apple TV を購入しました。

予想以上に AirPlay が使えることで、非常に気に入りました。

 

Apple TV を 46" の液晶テレビへ繋ぎ、AirPlay で iPhone/iPad からストリーミングしたビデオや写真を見てみましたが、想像以上にキレイでした。友人は、720P だからイマイチだと思う。と言っていましたが、正直、僕自身は、全く気になりません。この値段で、これだけ使えるのなら買いだと思いました。

 

Friday, December 3, 2010

MacJournal for iPad からの投稿テスト

MacJournal for iPad を購入したので、日本語のエントリーをアップロードできるかテスト。これが問題なければ、義母のiPad購入の障害が無くなることになる。

Sunday, October 31, 2010

Lucene Revolution のセッションビデオが公開されています

10月に行われた Lucene Revolution のセッションの様子がビデオで公開されています。

全てのセッションは、公開されていませんが、Twitter, LinkedIn, Salesforce.com などの人気のあったセッションについては公開されているようです。

http://www.lucidimagination.com/events/revolution2010/videos

Friday, April 30, 2010

New MacBook Pro 15" (Mid 2010) 購入

MacBook Pro 15” (Core i7 2.66GHz, 4GB RAM, 500GB 7200 rpm HDD, 15” HR Glossy screen) を購入しました。

実は、Core i7, 1440x900 以上のスクリーン、バッテリで5時間以上動作。という条件のもと、ThinkPad X201s をオーダしていたのですが、当初予定の4週間を過ぎても納入される気配が無く、納期問い合わせにもイマイチな対応なところに、5月中旬から下旬にかけて納品予定との連絡。落胆していたところで、Appleからモデルチェンジの発表があったので、思い切ってThinkPadをキャンセルし、MacBook Proを購入。予定通り10日後には、納品されました。 ThinkPad は、非常に魅力的な良いマシンだと思い、楽しみにしていたのですが、納期の遅さにガッカリです。キャンペーンなんかで非常に安い値段で手に入るので、それを考えればコストパフォーマンスは非常に良いと思うのですが、それだけに、なおさら腹立たしく感じたのかも知れません。

そんなこんなで心情的にはいろいろありましたが、結果的には非常に満足しています。ちょっと予算オーバしちゃったけどw ただ、メモリを8GBへ増設したいので、来月もお小遣いを節約しなければw

Saturday, March 13, 2010

[備忘録] Unibody MacBook + Mac OS X 10.6 Snow Leopard + Boot Camp で 64 bit Windows 7 を利用する

Boot Camp でパーティンションを切り、Windows 7 をインストール。ここまでは、普通の手順で何の問題も無く出来るのだけど、Boot Camp 3.0 を Windows 7 へインストールしようとすると、”このマシンでは、Boot Camp x64 はサポートされていません”というメッセージ (実際には、“Boot Camp x64 is unsupported on this computer model”) が表示されてインストールできません。が、これを回避する手段があります。

 

1) コマンドプロンプトを管理者権限で起動 スタートメニューの検索ボックスで、「コマンドプロンプト (Command Prompt)」と入力した際に表示されるアイコンで、右クリックメニューを表示し、「管理者権限で実行 (日本語版のメニューでは、表記が多少違うかも。英語版で実施したため曖昧です。英語版では、“Run As Administrator”)」を選択し、コマンドプロンプトを起動。

 

2) DVD ドライブへ移動 DVD ドライブが D ドライブだとした場合、先ほど起動したコマンドプロンプトで、以下を実行 cd D:

 

3) Boot Camp ディレクトリへ移動 BootCamp64.msi ファイルのあるディレクトリへ移動します。日本語版 Windows 7 では、“\”は、“¥”記号になります。

cd Boot Camp\Drivers\Apple 4) Boot Camp インストーラを起動 64 bit 版 Boot Camp 3.0 のインストーラを起動します。

msiexec /i BootCamp64.msi

私の Unibody MacBook (Core 2 Duo 2.4 GHz, 4 GB RAM) でもインストール終了まで数分かかりました。このインストールが終了したら、今度は、Boot Camp Software Update 3.1 for Windows 64 bit (ダウンロードは、こちらから: http://support.apple.com/kb/DL979 ) をインストールすれば、現在の最新の状態とすることが出来ます。このアップデータのインストールは、素直にインストーラのダブルクリックで起動・実行できます。

 

[参考にしたサイト/エントリ]

http://forum2.xeeno.com/~forums/showthread.php?p=9120855

http://blog.andersonshatch.com/2009/01/11/windows-7-x64-on-a-macbook-pro-guide/

http://mdavey.wordpress.com/2009/01/09/windows-7-64-bit-on-a-macbook/

http://gizmodo.com/5387353/how-to-survive-boot-camp-and-run-win-7-on-a-mac

 

Thursday, February 25, 2010

[MEMO] Change the 'Auto Logon' settings on Windows Vista

#1 Open the Start menu

#2 Type ‘netplwiz’ and select the icon that would shows up in ‘Programs’ group.

#3 Click the ‘Continue’ button on ‘User Account Control’ dialog.

#4 If you want to enter the user name and password when you logon to the computer. You should check the option ‘Users must enter a user name and password to use this computer.’ on the ‘User Accounts’ dialog. If you turn off this feature, You should uncheck the option.

#5 Click the OK button and the close the dialog.

Wednesday, December 2, 2009

[備忘録] Mac OS X 10.6 Snow Leopard への Cabocha インストール

Mac OS X 10.6 (Snow Leopard) への Mecab, Cabocha などのインストールメモ。

1. インストールファイルの準備
今回インストールしたファイルは、以下の通り。
- mecab-0.98
- mecab-ipadic-2.7.0-20070801
- CRF++-0.53
- cabocha-0.60pre4
- TinySVM-0.09
- yamcha-0.33


2. MeCab のインストール --prefix オプションは、インストール先ディレクトリを変更したい場合に指定。
$ ./configure --prefix=<Install directory> --with-charset=utf8
$ make
$ make install
もし、この make の時点で、libiconv に関するエラーがあった場合、src/Makefile の LIBS で libiconv のあるパスを明示的に指定した方が良い。ただし、Mac OS X 10.6 Snow Leopard 標準の libiconv でエラー(Reference error)になるようであれば、MacPort などで iconv をインストールし、そちらをリンク先とした方が良いかも。


3. IPA 辞書のインストールと UTF-8 化
$ ./configure --prefix=<Install directory> --with-charset=utf-8
$ make
$ make install
- 辞書を、UTF-8 に対応させるために以下を実行
<Install directory>/libexec/mecab/mecab-dict-index -f euc-jp -t utf-8
このとき、mecab-config が見つからないと怒られた場合は、
$ export PATH=<Install directory>/bin:$PATH などとして、パスを通す。


4. CRF++ のインストール
$ ./configure --prefix=<Install directory>
$ make
$ make install


5. Cabocha のインストール
$ ./configure --prefix=<Install directory> --with-charset=utf8
$ make
$ make install

いきなり、crfpp.h が見つからないと怒られたので、Makefile にインクルードパスを追加。
$ vi src/Makefile
DEFAULT_INCLUDES = -I. -I$(top_builddir)
上記のようになっているのを、下記のように変更。
DEFAULT_INCLUDES = -I. -I<Install directory>/include -I$(top_builddir)

この場合、 CPPFLAGS の値を変更しても大丈夫なはず。

$ vi src/Makefile
CPPFLAGS =
下記のように変更。
CPPFLAGS = <Install directory>/include
そして、make を再度実行すると、今度は、iconv (libiconv) が無いと怒られたので、Makefile の CABOCHA_LIBS と LIBS の値を修正。

$ vi src/Makefile
CABOCHA_LIBS と LIBS の2点を変更。
CABOCHA_LIBS = -lcrfpp -lmecab -L<Install directory>/lib -lmecab -lstdc++
上記のようになっているので、下記のように変更。
CABOCHA_LIBS = -lcrfpp -lmecab -L<Install directory>/lib -lmecab -lstdc++ -liconv

LIBS = -lcrfpp -lmecab -L<Install directory>/lib -lmecab -lstdc++
上記を下記のように変更。
LIBS = -lcrfpp -lmecab -L<Install directory>/lib -lmecab -lstdc++ -liconv


6. TinySVM のインストール
$ ./configure --prefix=<Install directory>
$ vi config.h
config.h (の末尾) に“#define __GNU_LIBRARY__ 1”を追記。 これは getopt() の重複などへの対策。

$ vi libtool
184行目にある “\$CC” を “c++” へと変更。名前解決の際に発生する不具合への対策として必要みたい。

$ make
$ make install


7. Yamcha のインストール
$ ./configure --prefix=<Install directory> --with-svm-learn=<Install directory>/bin
$ make
$ make install


[参考にしたサイト/エントリ]
http://blogs.dion.ne.jp/moe_moe/archives/7083664.html
http://quruli.ivory.ne.jp/diary/?date=20061010

Friday, January 23, 2009

Extract files from EnCase L01 file

How can I extract files from L01 file? I’m looking for a good way to do that.