タグ

ブックマーク / d.hatena.ne.jp/nokuno (8)

  • テキストファイルを処理するときのUnixコマンドまとめ - nokunoの日記

    個人的にテキストファイルを処理することが多いのですが,簡単な処理ならUnixのコマンドをパイプとリダイレクトで組み合わせてできることが多くあります.今回はそんななかでもちょっとマニアックなTIPSをまとめてみました. sortコマンドでタブ区切りのファイルを指定する最近知って驚愕したのがこれ.sortコマンドでタブ区切りのファイルを指定したいときは,Ctrl+v Tabでタブ文字を入力していたのですが,$ sort -t $'\t' -k 2,2 のようにしてタブ区切りで2番目のキーでソートすることができます. 1000行おきにデータをサンプリングする1000行おきにファイルからデータをサンプリングしたいときとかは,perlでワンライナーを書くのが速いようです.$ perl -ne '$i++; print unless ($i % 1000)' 某所のコードゴルフによるとこれだけ短くでき

    terazzo
    terazzo 2012/01/21
    1000行おきもawkで「awk 'NR%1000==0'」
  • 本当に必要なN-gramは2割しかない - nokunoの日記

    Entropy-based Pruning of Backoff Language Modelsを読んだ.単語N-gramはとてもよくできていて言語モデルとしての性能はかなりのものなのだが,なんの枝刈りもせずに中規模〜大規模なデータに適用しようとするとサイズが馬鹿でかくなってしまう.そのための対策としてよくあるのが語彙のサイズを制限する方法と,N-gramの頻度が一定以下のものを切り捨てるという方法(後者の場合は語彙も自動的に制限される).Google語N-gramなども頻度20以上のものが配布されており,効率よくデータサイズを減らすためには頻度でカットオフする方式がよく使われていると思う(語彙だけだとかなり制限しないとサイズが減らない).しかしカットオフしすぎると性能はかなり落ち込むので,うまい方法はないものかと考えられたのがこの論文の手法である.N-gramのデータには頻度の高い

    terazzo
    terazzo 2011/09/15
  • アクセスログ解析の実験にはNASAのデータセットが便利 - nokunoの日記

    アクセスログ解析の実験をしています.以前にも見かけた気がするのですが,ACMのSIGCOMMというコミュニティのサイトでWebのアクセスログやトラフィックのログが公開されています. Traces In The Internet Traffic Archive この中でデータサイズが大きいのはWorldCup98やUBCのログなのですが,フォーマットがバイナリだったりURLが匿名化されていて何がなんだか分からなかったりで微妙に実データと違っていて使いづらかったりしました.1998 World Cup Web Site Access LogsUC Berkeley Home IP Web Traces - 18 daysそんなわけで,生のApacheログ形式で比較的サイズの大きい実験データとしては,NASAのデータセットが便利そうです. NASA-HTTP - Two Months of HT

    terazzo
    terazzo 2011/08/29
  • Pig, Hiveなど8種類のMapReduce言語についての比較 - nokunoの日記

    以下の記事ではPig, Hiveなど8種類の言語でMapReduceの一番単純な例、WordCountを記述した場合のスクリプトの比較を行っています。とても興味深かったので紹介したいと思います。Pigs, Bees, and Elephants: A Comparison of Eight MapReduce Languages « Dataspora なお、今回はRSS購読しているDataSporaのブログから発見しましたが、エントリを寄稿したエンジニアの個人ブログも大変興味深いのでオススメです。 はじめにMapReduceを美しく効率的に書くために、私は様々な言語を比較しました。果たしてその勝者は!?私の個人ブログでは統計やグラフのアルゴリズムをMapReduceで記述する方法を紹介し、擬似コードによる実装を示しました。擬似コードには2つの問題点があります:誰もがその命令を理解できると

    terazzo
    terazzo 2011/04/28
    Cascadingきになる
  • TwitterにおけるHadoopとLuceneを利用した大規模データ解析について - nokunoの日記

    Twitterについては先日の記事でフロントエンドBlenderを紹介しましたが、バックエンドやデータ解析のシステムにも興味があります。ちょうどData-Intensive Text Processing with MapReduceで有名な@lintool先生の新しい論文が公開されていたので読んでみました。Full-Text Indexing for Optimizing Selection Operations in Large-Scale Data Analytics(pdf)ACMのMapReduce'11というワークショップで発表された内容のようです。この論文を読んで初めて知ったのですが、Lin先生はサバティカル休暇(大学教授が長期の休みを取れる制度)でTwitterに来ており、データ解析チームで働いているそうです。この論文もTwitterエンジニアの@squarecogさんと

    terazzo
    terazzo 2011/04/21
  • 次世代Hadoopは10,000台にスケールアウトし、MapReduce以外のフレームワークをもサポートする - nokunoの日記

    Yahoo!のブログにHadoopに関する興味深い記事が上がっていたので紹介したいと思います。かなりボリュームのある記事で翻訳するのは骨が折れました。The Next Generation of Apache Hadoop MapReduce · Yahoo! Hadoop Blog原題はシンプルに「次世代のApache Hadoop MapReduce」です。 概要大規模データを扱うビジネスでは、少数の大規模なクラスタのほうが多数の小規模なクラスタよりも安価になります。大規模クラスタは多くのデータセットを処理し、多くのジョブと多くのユーザをサポートする必要があります。ApacheのHadoop MapReduceフレームワークはだいたい4,000台程度でスケーラビリティの限界が来ます。私たちは次世代のApache Hadoop MapReduceを開発しており、そこではフレームワークを汎

  • 協調フィルタリングのグラフィカルモデル - nokunoの日記

    協調フィルタリングとはAmazonのお勧めのように「この商品を購入した人はこんな商品も購入しています」という情報を用いて推薦をする手法です。グラフィカルモデルはベイジアンネットワークとも呼ばれ、最近一部で流行している機械学習の手法です。今回は、協調フィルタリングをグラフィカルモデルで表現したらどのようになるだろう、と考えて思いついたアイデアを紹介します。 今、ユーザuとアイテムiの組{u,i}のデータが大量に与えられているとします。例えばソーシャルブックマークならユーザとブックマークしているページの組み合わせ、E-commerseならユーザと購入した商品の組み合わせ、などです。ここではSBMを例に考えるので、はてブと同様にユーザはマイナスの評価を付けることはできないものとします。 このときユーザuに対してお勧めのページを推薦することを考えると、ユーザuがまだブックマークしていないページiに

    terazzo
    terazzo 2008/07/26
  • 「Googleを支える技術」に載っていない日本語検索エンジンの技術 - nokunoの日記

    Web検索エンジンは、大きく分けて次の2つからなります。利用者からのクエリーを直接受ける検索サーバ検索サーバから利用されるインデックス世界中のWebサイトを集めてきて解析し、インデックスに登録するクローラインデックスというのは、利用者から検索される単語をあらかじめ列挙しておいて、単語からWebサイトのURLを引くのに必要なデータ構造のことです。検索エンジンはGoogleを支える技術にあるように、「下準備があればこその高性能」なわけです。 インデックスを作成するためには、あらかじめWebページの内容を単語に分割する必要があります。英語では単語と単語の間をスペースで区切るため、この作業はさほど難しくありません。しかし日語では、単語の境界はそれほど自明ではないため、日語特有の処理をする必要があります。 日語の文から単語に分解するには、形態素解析を使う場合と、N-gramを使う場合があり、そ

    terazzo
    terazzo 2008/05/03
    前に営業さんが持って来たパンフで見たけど、今もBasis Technology使ってるのかな?
  • 1