タグ

ブックマーク / www.mwsoft.jp (11)

  • LuceneのIndexファイルに関するメモ書き | mwSoft

    概要 LuceneとかSolrを使っている時に、インデックスファイルを見て状況を把握すると手っ取り早いケースなんかがたまにあります。 そうした時に適切な判断ができるように、小規模なインデックスファイルを目視で確認して、それらがどういったファイルなのか軽く確認してみた。 さらっと見ただけのメモ書きなので、適当なことを書いている可能性があります。 出力コード 例として「content」というフィールドを持つ2つのドキュメントを登録してみます。登録した文字列は以下の2つ。 i have a dream it is a dream deeply このマーチン・ルーサー・キングには夢がある。 下記のようなコードでインデックスを生成。 IndexWriterConfig conf = new IndexWriterConfig(Version.LUCENE_36, new WhitespaceAnal

    nobu666
    nobu666 2013/02/25
  • Solrjサンプルコード集 | mwSoft

    Solrjの導入 以下のURLからSolrを落としてきて、中に入っているsolr-core-x.x.x.jarとsolr-solrj-x.x.x.jarをクラスパスに追加。 http://lucene.apache.org/solr/ Mavenの利用も可能。レポジトリは以下を参照。 http://mvnrepository.com/artifact/org.apache.solr 今回のサンプル用のSchema設定 記事のサンプルコードは、idとtextとdateという3つのフィールドを持つSchemaを利用しています。 schema.xmlは以下のような感じ。 <?xml version="1.0" encoding="UTF-8" ?> <schema name="coreName" version="1.4"> <types> <fieldType name="string" c

    nobu666
    nobu666 2012/07/03
  • Lucene/SolrのCJKAnalyzerをカスタマイズして遊んでみる

    概要 全文検索エンジンとして有名なLucene/Solr。 この子を使って日語文書のインデックスを作成したい場合、形態素解析かNgramを用いるのが一般的。 Ngramを選択した場合に良く利用されるのがCJKAnalyzer。日語や英語なんかが混ざった文章を解析する時にはそこそこに便利。 ただ、その仕様や作成されるインデックスのサイズが必ずしも要件に合うとは限らない。これを自前で改変できるようになれば、用途に合った、よりコンパクトなインデックスが作成されるんじゃないだろうか。 そんなことを思ったので、気の向くままに「1文字をインデックスに入れない」とか「カタカナはBi-gramでなくまとめて登録する」とか「顔文字の検索を考慮する」などを試してみた。

    nobu666
    nobu666 2012/04/12
  • Java製形態素解析器「Kuromoji」を試してみる

    概要 Javaの比較的新しい形態素解析器、Kuromoji。 lucene-gosenやGomokuのように辞書内包で、jarを落とせばその場で利用でき、Unidicに対応していて、ソースがLuceneのtrunkにコミットされているという、何かと気になる特徴の持ち主。 複数のモードを持っているようで、Searchモードを使うと「日経済新聞」を「日 | 経済 | 新聞」のように検索で利用しやすい形にばらして解析してくれたり、Extendedモードを使うと未知語をuni-gramにしてくれたりもするらしい。 今日はそんなKuromojiさんの導入から簡易な使い方までをさらっと追いかけてみた。 導入 まずは下記ページからダウンロード。今回はkuromoji-0.7.5.tar.gzを利用。 Downloads - atilika/kuromoji https://github.com/at

    nobu666
    nobu666 2012/02/29
  • Java使いをScalaに引き込むサンプル集(その2) | mwSoft

    前書き Scalaという言語をご存知ですか? Javaと同じくコンパイルするとclassファイルになり、出来上がったclassファイルをJadなどで逆コンパイルするとJavaのソースを生成できてしまうという、かなりJavaに近いプログラミング言語です。 JDKの機能やJavaのライブラリをそのまま利用することができるので、Javaプログラマが既存の知識を活用できる言語でもあります。 今回はJavaを利用している際に発症しがちな様々な症例を題材として、Scalaを利用した際に得られるメリットを紹介していきたいと思います。 興味のある方はその1も併せてご覧ください。 CPUの遊んでいるコアを死ぬほど働かせてみたいあなたに 最近のパソコンはCPUのコア数も増えてきて、4コアとか6コアのマシンも割と手頃な価格で手に入るようになってきました。 でも、そういったマシンのCPU使用率を見てみると、たいて

    nobu666
    nobu666 2011/12/15
  • SolrにWikipediaのデータを入れて遊ぶ

    概要 全文検索エンジンのSolrを使って、Wikipedia(日語版)の記事を検索する機能をさらっと作ってみる。面倒なことはすっ飛ばして、できるだけ少ない手数を選択。あと、ソースコードはJava。 注意事項として、Solrはけっこうメモリう。特にoptimize時とか、大掛かりなソート時とか。 メモリが少ないマシンでは使うと不自由するので避けた方が良いかもしれない。とりあえず手元の4G積んだマシンでは快適に動いている。 @CretedDate 2011/09/04 @Env Solr3.5.0 / lucene-gosen1.2.1 @UpdateDate 2012/02/21 Solr3.5.0に変更したりクエリの誤りを直したり Solrの導入 まずSolrをダウンロードして解凍する。 ここからダウンロード http://lucene.apache.org/solr/#getstar

    nobu666
    nobu666 2011/11/28
  • Java製形態素解析ライブラリ「lucene-gosen」を試してみる

    概要 Javaの有名な形態素解析器でありながら、長らく「公式サイトどこ?」な状況だったSenとGoSenですが、最近はlucene-gosenなるGoSenベースのライブラリがちゃんと管理された状態で公開されてるとか。 lucene-gosen http://code.google.com/p/lucene-gosen/ しかもこの子は辞書内包なのでjarを落とすだけで使えて、Lucene用AnalyzerやSolr用Toknizerも付いていて、日語の検索用インデックスを貼る時に便利な各種フィルタも用意されているという、至れり尽くせりな構成になっているとか。 これは触ってみねばということで、とりあえず簡単な形態素解析、辞書の追加、Luceneでの利用、Solrでの利用を試してみました。 ちなみに上のURLでCommiterのところに名前が出ているKoji SekiguchiさんはSol

    nobu666
    nobu666 2011/11/09
  • Java使いをScalaに引き込むサンプル集 | mwSoft

    前書き Scalaという言語をご存知ですか? Javaと同じくコンパイルされるとclassファイルになり、実行時はJVM上で動作する、オブジェクト指向+関数型のプログラミング言語です。 Scalaを開発したのはJavaのgenericsの設計を手がけたり、javacの開発をしていた経歴も持つMartin Odersky氏。 Scalaは後発の言語ということもあって、Javaを書いている時に感じる冗長さに対する様々な解が用意されています。 記事では、ScalaJavaのコードを比較しながら、JavaユーザがScalaに移った際に得られるメリットを提示していきます。 尚、序盤のサンプルコードはJavaユーザに伝わりやすいように、returnを明記したり、メソッドは必ず{ }で囲むなど、極力Javaっぽい記述をしています。 だいたいJavaと同じような書き方ができます ScalaJava

  • プログラミング言語人気TOP10の簡易解説

    0-1. 前書き この世にはたくさんのプログラミング言語が存在します。Wikiepdiaのプログラミング言語一覧を見ると、実に200個以上というわけの分からない数の言語が並んでいたりします。 【参考URL】プログラミング言語一覧 - Wikipedia http://ja.wikipedia.org/wiki/%E3%83%97%E3%83%AD%E3%82%B0%... 200の中にはほとんど使われてない言語も混じってるので、実際に仕事でざくざく使われている言語は20とか30とかそういうオーダーなのですが、それでも1人の人間が把握するにはちょっと多過ぎる数です。 記事では、そうした有り余るプログラミング言語の海の中で「どれを勉強したらいいの?」とか「どれを採用するのが適切?」という悩みをお持ちの方が「よし、この言語に決めた!」と自信を持って決断できるように背中を押すことを目的として書か

    nobu666
    nobu666 2011/01/28
    "一人前のJavaScript使いになるためには、ブラウザの違いに翻弄されて目を血走らせながら「IEがぁ、IEがあぁぁ」と叫ぶ儀式を通過しなければいけない"
  • 日本テレビ東京で学ぶMeCabのコスト計算 | mwSoft

    今回はこの言葉の解析をMeCab+NAIST辞書にお願いして、結果を分析することで、MeCabが行っているコスト計算について勉強してみたいと思います。 とりあえず実行してみる さっそくMeCabに「日テレビ東京」を解析してもらいましょう。 $ echo 日テレビ東京 | mecab 日 名詞,固有名詞,地域,国,*,*,日,ニッポン,ニッポン,, テレビ東京 名詞,固有名詞,組織,*,*,*,テレビ東京,テレビトウキョウ,テレビトーキョー,, EOS 「日 | テレビ東京」と分けていますね。視聴率的には負けていますが、NAIST辞書的には日テレビよりもテレビ東京が優先されたようです。 ちなみに「フジテレビ東京」ではどうなるでしょうか。 $ echo フジテレビ東京 | mecab フジテレビ 名詞,固有名詞,組織,*,*,*,フジテレビ,フジテレビ,フジテレビ,, 東京 名詞,

  • MeCabのコマンドライン引数一覧とその実行例 | mwSoft

    -r --rcfile 使用するリソースファイルを指定する リソースファイルとは、辞書ディレクトリに入っている「dicrc」ファイルを指します。 試しにシステム辞書の「dicrc」ファイルをコピーして、「dicrc2」というファイルを作り、その中の「; simple」の「EOS」を「eos」に書き換えます。するとこんな風になります。 // リソースを指定せずに実行 $ echo テスト | mecab -O simple テスト 名詞-サ変接続 EOS // リソースを改変したdic2に指定して実行 $ echo テスト | mecab -r dicrc2 -O simple -d /usr/local/lib/mecab/dic/naist-jdic テスト 名詞-サ変接続 eos 我が家の環境では、システム辞書ディレクトリをカレントディレクトリとした状態にするか、「-d」でシステム辞書

  • 1