タグ

ブックマーク / shuyo.hatenablog.com (2)

  • メールアドレスの正規表現がめちゃめちゃ遅くなることがある件について - 木曜不足

    Solr 3.5 から新たに加わる言語判定機能に、拙作の言語判定ライブラリ langdetect が正式に採用されたようで。 言語判別機能の追加 (Solr 3.5) http://lucene.jugem.jp/?eid=455 LanguageDetection - Solr Wiki http://wiki.apache.org/solr/LanguageDetection もともと Apache Nutch などの言語判定に不満で作り始めたこと、そして実際に社内(サイボウズ)で langdetect を Solr に組み込んで利用していることを考えれば、懐と言ってもいいくらい。 ありがたや。 でも、今日の話はそっちではなくて。 その langdetect の Issue Board にて教えていただいた「メールアドレスの正規表現がめちゃめちゃ遅くなることがある」件について。 論よ

    メールアドレスの正規表現がめちゃめちゃ遅くなることがある件について - 木曜不足
    raimon49
    raimon49 2011/10/29
    ありがちな「メールアドレスっぽいもの」を判定する正規表現パターンで学ぶオーダーの違い。正規表現エンジンに鬼車を採用するRubyではエイリアス部に文字制限を入れてもパフォーマンスが変わらない。
  • Pythonでクロージャの列を作る - 木曜不足

    Pythonlambda を使ってクロージャの列を作りたいときって、例えばCRFの素性を書くときとかによくあるよね? でも以下のように書くと、クロージャの中の label が全部同じ値になってしまってハマる。 # A, B, C のそれぞれと一致するかどうか判定する列を作りたい labels = ["A", "B", "C"] features = [lambda y: 1 if y == label else 0 for label in labels] # 全部 "C" になってる! print features[0]("C") # => 1 print features[1]("C") # => 1 print features[2]("C") # => 1 これはクロージャの中での名前解決で無ければ上の環境を見に行くようになっているので、結局同じスコープの label (=ルー

    Pythonでクロージャの列を作る - 木曜不足
    raimon49
    raimon49 2010/07/05
    ループ時のクロージャ引数の名前解決。コメント欄も。デフォルト引数やfunctoolsを活用。
  • 1