タグ

perlに関するjp-mykのブックマーク (14)

  • perlで高速な類似検索エンジンを構築できるようにしてみた - download_takeshi’s diary

    すみません。タイトルはやや釣り気味です。 類似検索エンジンというか、そのアイデア程度の話なんですが、以前から考えていた類似検索エンジン風のネタがあったので、ちょっとperlで書いてみたので、そいつを晒してみます。 Luigi   https://github.com/miki/Luigi 類似検索なのでLuigi。ルイージとか読みたい人はそう読んじゃっても良いです。(冷) 考え方と仕組み 類似文書の検索、となりますと一般的には超高次元での空間インデックスとかが必要になります。 昔からR-TreeやSR-Treeなど、いろいろと提案されていますが、より高次元になると「次元の呪い」によりパフォーマンスが出なくなる、なんて言われていますね。 そこで最近ではLSHに代表されるような、より高度な「近似」型のインデキシング手法が人気を集めているようです。 で、今回考えたLuigiも実は近似型のインデッ

    perlで高速な類似検索エンジンを構築できるようにしてみた - download_takeshi’s diary
    jp-myk
    jp-myk 2010/11/23
    Luigi(ルイージ)
  • テキストの文字種分割の補足の補足 - daily dayflower

    split して空文字列を grep で抜くほうがベターかと思います。 テキストの文字種分割の補足 - daily dayflower 「ベターかと思います」とか断言してしまいましたが, (正規表現の最後に最後に「|.」を足すだけでも良いかもしれませんね。) Perl で日語テキストを字種分割 そうです,(ケースによっては)それで充分で,速いです。 % perl bench.pl Benchmark: timing 1000000 iterations of by_match, by_split... by_match: 63 wallclock secs (62.42 usr + 0.13 sys = 62.55 CPU) @ 15987.21/s (n=1000000) by_split: 72 wallclock secs (71.36 usr + 0.11 sys = 71.47

    テキストの文字種分割の補足の補足 - daily dayflower
  • テキストの文字種分割の補足 - daily dayflower

    Perl で日語テキストを簡単に字種かたまりに分割できないかな、 と思い、perlunicode を読みながらサンプルプログラムを書いてみました。 対象テキストは UTF-8Perl で日語テキストを字種分割 たつをさんは,m// でマッチングさせて分割させてますけど,これだと正規表現で網羅されてないトークンが失われてしまうと思います。 #!/usr/bin/perl use strict; use warnings; use utf8; binmode \*STDOUT, ':utf8'; my $src = <<"END_DATA"; zーあyxルーラでう、う9 10AB.DE「"GH'」★で漢字をカ・ナったー!?MJD39\x{2466}。 END_DATA print $src, "\n"; my @cs = ( $src =~ m/ ( \p{M}+ | \p{N}+

    テキストの文字種分割の補足 - daily dayflower
  • ソケットによる通信を行う - Perl入門ゼミ

    Perl › ソケット Perlの「ソケット」に関する解説です。 ソケットとは ソケットはネットワークを通じてデータを交換したい場合に使用されます。たとえば、Webサーバはネットワークごしにブラウザとデータを交換します。このとき内部の実装でソケットが使用されています。 Perlのモジュールには、LWP::UserAgentというWebサイトのページを取得するためのモジュールがあります。この実装のもっとも低レベルの部分を見ればソケットが使用されています。 ネットワークを通じてデータを交換したいアプリケーションを作りたい場合は、ソケットを使うか、ソケットを簡単に使用できるようにしたラッパークラスを使用します。 ソケットのイメージ ソケットは一種のファイルハンドルだと考えるのが一番わかりやすいと思います。ファイルを書き込みモードでオープンするには my $fh; my $file = 'some

    ソケットによる通信を行う - Perl入門ゼミ
  • PDL で PageRank - naoyaのはてなダイアリー

    id:smly さんが PageRank や HITS を Python で実装 されているのに触発されて、自分も PageRank を Perl で実装してみました。 PageRank の計算の中心になるのは Power Method (べき乗法) です。べき乗法では行列とベクトルの積を計算しますので、手軽に使える行列演算ライブラリがあると楽でしょう。 色々調べてみたところ、PDL (The Perl Data Language) が良く使われているようでしたので、これを選択しました。PDL では各種行列演算が簡単に行える他、文字列評価をオーバーライドして行列の文字列出力を良い具合で定義してくれていたりと、なかなかに便利です。PDL は行列計算以外にも色々な科学技術計算やグラフ描写などの操作をサポートしているようです。 さて、PDL を使った PageRank 計算のコードは以下のように

    PDL で PageRank - naoyaのはてなダイアリー
  • naoya.dyndns.org is offline

    naoya.dyndns.org is currently offline. Please try again later. Questions about our services? Learn more at Dyn.com.

  • Algorithm::Diff で類似文字列検索

    Algorithm::Diff で類似文字列検索 2008-04-22-3 [Algorithm][Programming] Perl のモジュール Algorithm::Diff[2004-12-12-2]を使って、線形時間で類似文字列検索するサンプルプログラム。 まあ、 agrep があればそれでいいんですけどね。 サンプルコード(ads.pl): #!/usr/bin/perl use strict; use warnings; use Algorithm::Diff; use utf8; use Encode; use open ':utf8'; binmode STDIN, ":utf8"; binmode STDOUT, ":utf8"; my $key = shift; my @seq1 = split(//, decode('utf-8', $key)); while (<

    Algorithm::Diff で類似文字列検索
  • 小さなツールたち

    自作・共作の小さなプログラムを公開しています。 「プログラムの雛形」シリーズ 小さくてシンプルでちゃんと動くプログラムの雛型があれば、 それにちょっと手を加えるだけで目的のものができる。 そういう考え方に基づいた雛型シリーズ。 6. 簡単なアクセス制限 CGI の雛型 (since 2004-06-08) CGI体、パスワード設定、 表示ページが全部ひっくるめて1ファイルになっているので、緊急時に便利です。 認証系が使えない環境でもどうぞ。 5. 簡単なファイルアップロード CGI の雛型 (since 2003-05-13, last update 2004-06-07) 簡単なファイルのアップロードを行うための CGI です。データの受け渡しなどにどうぞ。 4. 指定されたファイルを見張り更新されたら何かを行うプログラムの雛型 (since 2003-04-05) ライブカメラの画像

  • 特徴語抽出のあれこれ - プログラマでありたい

    最近の特徴語抽出の手法ってどんなんかなと思って、はてなの注目のエントリーを見てみました。 タグ「特徴語抽出」を含む注目エントリー 面白いものが目白押しです。 特にGigazinizeというのは、秀逸です。面白いなぁ〜。 http://blog.fulltext-search.biz/articles/2007/09/03/gigazinize Gigazinize のなかみ 私も何か作ってみたくなりました。書籍データやらWikipediaやらのデータは色々あるので、そのあたりを組み合わせてみようかと思います。その前に特徴語を抽出する為のツールです。(だいぶ昔に作ったものですが。)ロジックは、たつをさんが紹介している下記の方法です。 形態素解析と検索APIとTF-IDFでキーワード抽出 形態素解析Yahoo APIを使って特徴語を抽出する方法です。さっくりと作れて、それなりに使えます。ただ

    特徴語抽出のあれこれ - プログラマでありたい
  • Perlで入門テキストマイニング » SlideShare (share powerpoint...

    2. テキストマイニング(1) 評判情報。ポジティブ、ネガティブ • プロフィール。ブロガーの性別、年齢、地域 • そのページに関連した広告とか。 • 関連語。 • もしかして○○? • クラスタリング。グルーピング。 •

    Perlで入門テキストマイニング » SlideShare (share powerpoint...
  • 文字列を print すると「Wide character in print at」と出力されて困った - BigFatCatのブログ

    以下のプログラム(参考:作って学ぶ、今どきのWebサービス: 第2回 RSSフィードの料理はLWPとXML::RSSにおまかせ)を実行したら、「Wide character in print at」というメッセージが print を実行する度に出力されてしまった。 #!/usr/local/bin/perl # http://www.ibm.com/developerworks/jp/webservices/library/itm-ws2-rss/ use strict; use Encode; use LWP::Simple; use XML::RSS; my $url = shift; my $document = LWP::Simple::get($url) or die "cannot get content from $url"; my $rss = XML::RSS->new;

    文字列を print すると「Wide character in print at」と出力されて困った - BigFatCatのブログ
  • サービス終了のお知らせ

    サービス終了のお知らせ いつもYahoo! JAPANのサービスをご利用いただき誠にありがとうございます。 お客様がアクセスされたサービスは日までにサービスを終了いたしました。 今後ともYahoo! JAPANのサービスをご愛顧くださいますよう、よろしくお願いいたします。

  • k-means++を試し中 - のんびり読書日記

    http://d.hatena.ne.jp/kaiseh/20090113/1231864089 上の記事を見て、k-means++が面白そうだったので、ちょっとだけ試してみた。 k-meansは初期値に大きく依存するところが嫌い。初期値への依存度を軽減するために、初期値を変えて何回か試行してその中で一番良い結果のものを使用する、なんてことをしないといけない。そのため処理時間も馬鹿にならなくなってしまうので、ちょっとこれじゃあなあ…ということで使ってなかった。 でも今回のk-means++は初期値をうまく求めることで、精度と速度の向上が得られるらしい。これはうれしい! 論文著者のページにサンプルコードがあったので試してみようと思ったんだけど、MFCを使っているみたいで僕の環境ではコンパイルできず…。 http://www.stanford.edu/~darthur/kMeansppTest

    k-means++を試し中 - のんびり読書日記
  • Perl 5.8.x Unicode関連

    -> 趣旨と注意書き -> UTF8フラグ? -> UTF8フラグとPerlIOレイヤ -> UTF8フラグのついた文字列を記述する -> Wide character in print ... -> Encode -> utf8::* -> use utf8; -> use encoding; -> use UTF8 と use encoding -> JcodeからEncodeへ -> 情報源 <- モドル 趣旨と注意書き Perl 5.8.x のUnicode 関連です。 正直、5.8.x は、ネタでしか使ってなかったので(ぉ、ちゃんといじったことがありませんでした。 使ってみると、よくわかんなくなったので、ちょっとまとめてみました。 今でもあんまりわかってないかもしれないので、内容は無保証です。 突っ込み歓迎。 Jcode、Encodeのメンテナの弾さんから、ご指摘いただいたので、

  • 1