タグ

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

  • テキストファイルを処理するときの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)' 某所のコードゴルフによるとこれだけ短くでき

    kshimo69
    kshimo69 2012/01/21
  • 第2回DSIRNLP勉強会に参加しました #dsirnlp - nokunoの日記

    第2回 データ構造と情報検索と言語処理勉強会 #DSIRNLP - [PARTAKE] 自然言語処理はじめました by @phylloさん自然言語処理はじめました - Ngramを数え上げまくるDSIRNLPで発表させていただきました - Negative/Positive Thinking 自己紹介:Negative/Positive Thinking 今日の概要:いろんな方法でN-gram頻度を数える N-gramとは? 隣り合うN個の塊のこと 単語n-gramや文字n-gramがある ナイーブな方法 ハッシュに入れて数える 問題:大規模テキストやNを大きくしたら? N-gramの異なり数はNに対して指数的に爆発する 解決法:N-gramをメモリに保存しない! Suffix Arrayを使った方法 入力文のSuffix Arrayを使った方法 メモリの節約になってる?:3*N+4byt

    kshimo69
    kshimo69 2011/12/11
  • 第12回アルゴリズム勉強会に参加しました #アルゴリズム勉強会 - nokunoの日記

    第十二回アルゴリズム勉強会 - [PARTAKE]今回は8.2 Counting Sortからでした. Counting SortC++でCounting Sortを実装しました.最初動かなくておかしいと思っていたら出力時にソート前の配列Aを出力していたという…orz.{code}#include using namespace std;void counting_sort(int *A, int *B, int size, int k) { int C[k+1]; for (int i = 0; i C[i] = 0; } for (int j = 0; j C[A[j = C[A[j + 1; } for (int i = 1; i C[i] = C[i] + C[i-1]; } for (int j = size-1; j>= 0; j--) { B[C[A[j-1] = A[j];

    kshimo69
    kshimo69 2011/11/26
  • 第8回自然言語処理勉強会@東京を開催しました #TokyoNLP - nokunoの日記

    はい,日は勤労に感謝しつつ第8回自然言語処理勉強会@東京を開催しました.場所はVOYAGE GROUP(旧ECナビ)で,懇親会もお世話になりました,@ajiyoshiさんいつもありがとうございます!第8回自然言語処理勉強会 #TokyoNLP : ATND トピックモデルとその周辺の話題 by @issei_sato さん Topic models with power-law using Pitman-Yor process 自己紹介 東大で助教やってます(どよめき) 今回は KDD 2010 の発表 LDAの復習 単語シンプレックス LDAのサブシンプレックス グラフィカルモデル α->θ_j->z_ji->w_ji β->φ_i G_j(φ): ??_k θ_jk δ(φ - φ_k) ノンパラメトリックベイジアンへ LDAはトピック数Kを事前に決める必要がある トピック数を決めた

    kshimo69
    kshimo69 2011/11/24
  • 第5回さくさくテキストマイニングに参加しました #さくテキ - nokunoの日記

    第5回 さくさくテキストマイニング勉強会 : ATND データクリーニング入門 〜精度は細部に宿る〜 by toilet_lunch様 掃除は大事です!! Unicode正規化 フィルタリング 第2水準の漢字は捨てる 短いツイートは捨てる URLは捨てる あなたの質問に答えてみた 〜疑問に対する応答〜 by gepuroさん イカ娘の記事から答えをマイニング Cabochaを使って係り受け解析 質問文から疑問詞を取り出す 当に気持ちのいい全文検索〜Lucene/Solr入門〜 by AntiBayesianさん 検索エンジン入門 転置インデックス 適合率と再現率とF値 TF-IDF Lucene/Solr入門 Solrのインストール Schema設定:typesとfields gosenで形態素解析 ツイートをCSVで登録 まとめ 検索は大規模データ時代には必須 全文検索,転置インデック

    kshimo69
    kshimo69 2011/10/16
  • Google Code Jam Japan 2011 予選 - nokunoの日記

    参加しました.Google Code Jam Japan 2011 カードシャッフルカードそのもののリストを作ると計算量的に厳しいので,カードの範囲のリストを作る.めんどい.しかもカードのカットって最初意味が分からなくてWikipediaで調べてやっと理解した.small/largeともに解けた. #!/usr/bin/env python import sys def search_position(cards, pos): current = 0 for i in xrange(len(cards)): old = current current += cards[i][1] - cards[i][0] + 1 if current >= pos: return i, pos - old - 1 def update_card_list(cards, A, B): # search s

    kshimo69
    kshimo69 2011/10/01
  • Hadoop Conference Japan 2011 Fall #hcj11f - nokunoの日記

    Hadoop Conference Japan 2011 Fall - Eventbrite The role of the Distribution in the Apache Hadoop Ecosystem by Todd Lipcon Who is the presenter? Tod Lipcon Cloudera.Inc Machine Learning, Fraud detection, ... What is Apache Hadoop? Scalable (not stable) Fault torelant Open source Components: HDFS and MapReduce Why was Hadoop created? More data and more needs More users, data types, and more data min

    kshimo69
    kshimo69 2011/09/27
  • 自然言語処理における「全部入り」パッケージ - nokunoの日記

    以下のエントリの翻訳です.End-to-end NLP packages | AI and Social Science – Brendan O'Connor無料で手に入る全部入りの自然言語処理(Natural Language Processing; NLP)システムにはどんなものがあるだろうか? ここでいう全部入りとはつまり,生のテキストから始めて,構文解析や意味的構造を出力するもののことを指す.多くのNLP研究は一度に1つのタスクしか取り扱わず,そのタスク専用のソフトウェアが開発されている.しかし多くのアプリケーションでは,あなたが与えたテキストがなんであれ動いてくれるような,最初から最後まで面倒を見てくれるものが望ましい. あなたがこれを価値あるゴールだと思うなら(注意点は下にある),そのようなシステムはあまり多くないが,ここに当てはまると思われるものがいくつかある.もし誤りや不明

    kshimo69
    kshimo69 2011/09/20
  • GDD 2011 DevQuizに参加しました #gdd11jp - nokunoの日記

    というわけで,スライドパズルの問題にチャレンジしました.Pythonで素直なA*アルゴリズムの実装です. #!/usr/bin/env python from heapq import * def evaluate(b, c, w, h): result = 0 for i in range(len(b)): if b[i] != "=" and b[i] != "0": j = c.find(b[i]) result += abs(i % w - j % w) + abs(i / w - j / w) return result def astar(b, c, w, h, s, num): cache = {} # breath first search with cache queue = [(s, b, "")] for loop in range(num): if len(queu

    kshimo69
    kshimo69 2011/09/13
  • 第7回自然言語処理勉強会を開催しました #ToyoNLP - nokunoの日記

    第7回自然言語処理勉強会を開催しました.会場をご提供いただいた@ajiyoshiさんとECナビさん,発表者の皆様,参加していただいた皆様,ありがとうございました&お疲れ様でした.第7回自然言語処理勉強会 #TokyoNLP : ATND きれいなジャイアンのカカカカ☆カーネル法入門-C++ by @sleepy_yoshiさん 自己紹介 日の内容 オンライン学習でカーネルを使う方法を紹介 日のノリ 中2っぽい名前の理論は扱わない 前回のおさらい 線形識別モデル パーセプトロン 線形モデルの問題点 非線形モデルの実現方法 1. モデルを非線形にする 2. カーネル法+線形モデル カーネル法ひとこと要約 数式 ここでは予測に用いるデータをサポートベクタと呼ぶ 日常ネタ カーネル関数の種類 閉じた形で計算できるもの 再帰などで計算できるもの ちょっと特殊なもの:Semantic simila

    kshimo69
    kshimo69 2011/09/11
  • 統計的機械翻訳入門その3 〜デコーダ編〜 #TokyoNLP - nokunoの日記

    昨日のTokyoNLPの発表資料をアップロードしました.統計的機械翻訳入門その3 〜デコーダ編〜 #TokyoNLP View more presentations from Yoh Okuno今回で一応SMTのシリーズは終わりにしたいと思います.次は何を勉強しようかなあ.ツイートする

    kshimo69
    kshimo69 2011/09/11
  • PyConJP 2011に参加しました #pyconjp - nokunoの日記

    PyConJP 2011に参加および発表してきました.場所は品川シーサイドの産業技術大学院大学です.PyCon JP 2011 Keynote by @tarek_ziade How do I define dependencies? What's setup.py role? Example setup.cfg What's installed? How to uninstall?? Different formats: distutils, easy_install, pip You should used pip! "easy_remove" can't be implemented. Database on installed project $ sudo pysetup3 install What about version scheme? Too long version na

    kshimo69
    kshimo69 2011/08/28
  • PythonでMeCabを使ってみた&回文判定プログラム - nokunoの日記

    PythonでMeCabを使ってみました.mecabでもMecabでもなく,MeCabと書かないと動きません(ハマった)>>> import MeCab>>> mecab = MeCab.Tagger('-Ochasen')\>>> print mecab.parse("彼の車で待つ")彼 カレ 彼 名詞-代名詞-一般の ノ の 助詞-連体化車 クルマ 車 名詞-一般で デ で 助詞-格助詞-一般待つ マツ 待つ 動詞-自立 五段・タ行 基形EOS サンプルとして,標準入力から与えた文が回文かどうかを判定して回文だったときのみ返すスクリプトを書いてみました.回文の生成はPythonによる日語自然言語処理の最後の課題にもなっています. #!/usr/bin/env python #encoding: utf-8 from MeCab import * from sys import *

    kshimo69
    kshimo69 2011/08/25
  • Pythonでグラフ構造を扱うには - nokunoの日記

    Pythonでグラフ構造を扱うには,networkxというライブラリが便利です.Overview — NetworkX v1.5 documentation# 使い方$ sudo easy_install networkx$ python>>> import networkx# ノードとエッジの貼り方>>> graph = networkx.Graph()>>> graph.add_node("youzaka")>>> graph.add_node("seiryo")>>> graph.add_edge("youzaka", "seiryo")>>> print graph.nodes()['youzaka', 'seiryo']>>> print graph.edges()[('youzaka', 'seiryo')]# 隣接ノードへのアクセス>>> print graph.neighb

    kshimo69
    kshimo69 2011/08/23
  • サンプルコードがPythonで書かれた自然言語処理・データマイニングの書籍 - nokunoの日記

    サンプルコードがPythonで書かれた自然言語処理・データマイニングの書籍についてまとめました.オライリー社から出版されているものが多いですね.日語だと,以下のが有名です.Amazon.co.jp: 集合知プログラミング: Toby Segaran, 當山 仁健, 鴨澤 眞夫: Amazon.co.jp: 入門 自然言語処理: Steven Bird, Ewan Klein, Edward Loper, 萩原 正人, 中山 敬広, 水野 貴明: Amazon.co.jp: ビューティフルデータ: Toby Segaran, Jeff Hammerbacher, 堀内 孝彦, 真鍋 加奈子, 苅谷 潤, 小俣 仁美, 篠崎 誠: 実は他にもこの手のは洋書で色々と出版されています.Amazon.co.jp: Mining the Social Web: Matthew A. Rus

    kshimo69
    kshimo69 2011/08/22
  • NLTKで日本語コーパスを扱う方法 - nokunoの日記

    オライリーの「入門自然言語処理」の12章はHTML版がWebで公開されています.Python による日語自然言語処理というわけで,NLTKで日語でコーパスを扱う環境を整えました. NLTKのインストール公式サイトを見ながらインストールする.最新版はNLTK2.0で,オライリーの書籍のときと比べてChasen形式のパーザなどが追加されています.Download - Natural Language ToolkitMac OSXの場合はPortでもインストールできるらしいのですが,うまくいかなかったのでパッケージをダウンロードしました. コーパスのダウンロードnltk.download()を実行して必要なコーパスをダウンロードします.$ python>>> import nltk>>> nltk.download()jeitaとknbcをダウンロード NLTKを日語コーパスで使う場合の注

    kshimo69
    kshimo69 2011/08/21
  • スタンフォード大学のオンライン講義 - nokunoの日記

    スタンフォード大学の講義をオンラインで受けられるようになったようです.以下は機械学習の講義です.Machine Learning - Stanford University公式な単位がもらえるわけではありませんが,講義ビデオや教材が提供され,講師に質問できたり,課題が出たりするようです.2010年の講義内容(スライドなど)は以下にあります.CS 229: Machine Learningまた,先日も紹介したように少し前(2008年?)の講義ビデオはこちらやiTunes Uから見ることができます.Stanford School of Engineering - Stanford Engineering Everywhere 機械学習のほかには,人工知能の講義や,データベースの講義が行われるようです.Introduction to Artificial Intelligence - Fall

    kshimo69
    kshimo69 2011/08/18
  • 特徴選択を行なうための3つの方法 - nokunoの日記

    最近,通勤時間にはStanford大学のMachine Learningの講義ビデオを見て勉強していますが,教師あり学習において特徴選択を行なう方法が興味深かったのでメモしておきます.Stanford School of Engineering - Stanford Engineering Everywhere (動画はiTunes Uからダウンロードできます) 全探索 全ての特徴量の組合せを全探索する. (全特徴数,選択特徴数)の組合せになるため,計算量が非常に大きく現実には不可能 Forward Search 特徴量が1つもない状態から初めて,まだ追加していない特徴量の中から最も有効な特徴量を追加する ある特徴量が有効かどうかは交差検定などを用いて決定する Backward Search 全ての特徴量を含む状態から初めて,最も不必要な特徴量を削除していく ある特徴量が不必要かどうかは交

    kshimo69
    kshimo69 2011/08/16
  • PythonでNaiveBayesを実装してみた - nokunoの日記

    解説は後日…しないかも. #!/usr/bin/env python #encoding: utf-8 from sys import stdin from optparse import OptionParser from collections import defaultdict def sign(x): if abs(x) return 0 elif x > 0: return 1 return -1 def clip(x, c): return sign(x) * max(0., abs(x) - c) def parse(line, bias, discount): label, document = line.strip().split(" ", 1) features = {} for feature in document.split(" "): key, value =

    kshimo69
    kshimo69 2011/08/14
  • gdbについてのメモ - nokunoの日記

    C++を書くときにデバッガを使うことが多いので,gdbについてメモしておきます.gcc+gdbによるプログラムのデバッグ 第1回 ステップ実行、変数の操作、ブレークポイントgdb を用いたデバッグ方法GDB.gdbinit を公開してみる - アスペ日記gdb + Emacs でおいしいデバッグ生活。 - trial and error Emacs + GDB チートシート - ひげぽん OSとか作っちゃうかMona-私もC/C++Windowsで書くことが多かったので,gdbの機能に不満が多いですね…ブレークポイントの条件が設定しやすかったりするのは便利ですが,エディタと連動していないとどうも使いにくく感じてしまう.これまでvimで頑張ってきましたが,こういう用途にはemacsのほうが向いているようなので,乗り換えようか検討中です.追記:vim上でgdbを使えるようにした - Chee

    kshimo69
    kshimo69 2011/08/10