タグ

javaとalgorithmに関するt_moriのブックマーク (2)

  • 検索エンジンを実装 (1)転置インデックス作成

    今回はN-gramでテキストを分解します。N-gram法とは対象の文字列を一定のN文字単位で分解し、それの出現頻度を求める方法です。これによって、検索エンジンに使われる転置インデックスを作成したいと思います。転置インデックスの作成方法にはN-gramの他に形態素解析があります。両者の性能の長短は全文検索 – Wikipediaに詳しく載っています。 Javaソースコード(Make2gram.java) さて、まずは文字列を2単語に切り分けるプログラムを作成しました。データ構造は単純にArrayListで、出現頻度も求めていません。 import java.io.*; import java.util.*; /** * N-gram法 */ public class Make2gram { public static void main(String[] args) { final shor

    検索エンジンを実装 (1)転置インデックス作成
  • 「+1」だけで四則演算をするには?

    巨大な数同士の掛け算は? もう1つの例として、大きな数値の取り扱い方について考えてみたいと思います。 人間は理論上、どんな大きな値でも計算することができます。ただし暗算の名人でなければ、紙と鉛筆を使うでしょう。紙に書ききれないぐらい大きな値だとしても、もう1枚紙を持ってきて継ぎ足せば、計算することができますね。 しかし、コンピュータが1つの変数で扱える数値の大きさは、32ビットや64ビットで表現できるものまでです。そういった1つの変数で扱えない大きな数字を扱うことになった場合、コンピュータにどう処理させますか? (1) 53  (2) 53 ×72     ×72 ――     ―― 6     106 (3) 53  (4) 53 ×72     ×72 ――     ―― 106     106 21    +371 ――― 3816 それを考えるために、皆さんが実際に計算をするとき、

    「+1」だけで四則演算をするには?
    t_mori
    t_mori 2007/09/21
    巨大な数同士の掛け算は?
  • 1