タグ

ブックマーク / txqz.net (3)

  • MySQLノウハウ

    いろいろなからメモってきたメモのメモ。出典を書いておくのを忘れた。思い出し次第補完するかも。 deleteのコストは高いので、無効化を示すフィールドを作ってupdateすべき slow query logに要注意 多くのエントリでほとんどのフィールドが同じ値を持つ場合はインデックスの効果が小さい →複合インデックスの効果が大きい 複合インデックスは指定の順番が大切。AとBという指定の場合、A単独でもインデックスの効果がある。逆は真でない。 インデックスが使われる場面は フィールド値を定数と比較するとき (where name = 'hogehoge') フィールド値でJOINするとき (where a.name = b.name) フィールド値の範囲を求めるとき (<,>,between) LIKE句が文字列から始まるとき (where name like 'hoge%') min(),

    aki77
    aki77 2007/07/12
    「いろいろな本からメモってきたメモのメモ」
  • MySQLでTF-IDFの計算、あと2つのベクトルの内積の計算 (2006-12-19)

    文を形態素分解し、必要な品詞をtfテーブルとdfテーブルに入れる。分析対象となる文書群すべてについてこの処理を行い、各形態素のTF-IDF値を求めて文書をベクトル化する。他の文書ベクトルと内積を比較し、小さい順に「似ている記事」を求めたい (クラスタリングとかは別途)。 HarmanによるTF値の正規化とSparok JonesによるDF値の正規化をする場合のTF-IDF値の計算式は以下のようになる (参考文献): tfidf(i,j) = log2(freq(i,j) + 1) / log2(NoT) * (log2(N / Dfreq(i)) + 1)

  • PHPでメールアドレスかどうか調べる方法 (2007-05-31)

    Otsuneのtwitter経由でphpspotがオススメするメールアドレスの正規表現。8:2ルールを採用したような簡便な正規表現にはてブのコメント欄が賑わっている。 「メールアドレス 正規表現」で検索すると最初に出てくるリソースに、思いっきり メールアドレスに一致する正規表現は「ありません」 なんてあって、その下に条件付きの鬼のような正規表現が紹介されている。メールアドレスの闇は深い。ヘタに触れると火傷する。 一応正確なアドレスを弾かずに、「なるべく」おかしなアドレスを弾く正規表現として $d3 = '\\d{1,3}'; $ip = join('\\.', ($d3) x 4); $ascii = '[\\x01-\\x7F]'; $domain = '([-a-z0-9]+\\.)*[a-z]+'; $mailre = "^$ascii+\\@($domain|\\\\[$ip\\\

    aki77
    aki77 2007/06/01
    Mail_RFC822::isValidInetAddress
  • 1