サクサク読めて、アプリ限定の機能も多数!
トップへ戻る
体力トレーニング
d.hatena.ne.jp/nokuno
Title: T3 Modality and Negation in Natural Language Processingno title Presenter: Roser Morante: CLiPS - University of Antwer Date: November 8, 2011 Part 1: Introduction: Modality and Negation Negation: Not ,No,... Modality: may, would, could, ... Defining Modality Linguistic concepts Tense: time of the event Aspect: nature of event Modality: status of the proposition Example of modality Modal aux
今度はHiveも試してみました.http://www.cloudera.com/wp-content/uploads/2010/01/6-IntroToHive.pdfHome - Apache Hive - Apache Software Foundationメモ 解析前にテーブルを作る必要がある SQLのようにORDER BYやLIMITを使えるので,簡単な集計を1行で書ける Tokenizeが用意されていないのでWordCountとかするにはUDFが必要 クエリログ集計の例Pigに付属のexciteのクエリログで試してみる. CREATE TABLE querylog (freq INT, word STRING) ROW FORMAT DELIMITED FIELDS TERMINATED BY ‘\t’ STORED AS TEXTFILE; LOAD DATA LOCAL IN
http://code.google.com/p/nokuno/downloads/detail?name=pron.tar.bz2Wikipedia本文データから「漢字(ひらがな)」という形式のかっこ表現をマイニングしてみました.難読語の読みを推定したいときに使えると思います.$ head pron.txt87 竹麦魚 ほうぼう53 渾名 あだな47 松平 まつだいら43 本多 ほんだ33 塔頭 たっちゅう33 九十九王子 くじゅうくおうじ27 磐座 いわくら26 八幡神社 はちまんじんじゃ24 北高 きたこう21 西高 にしこう$ wc pron.txt 169333 577603 6237666 pron.txt #!/usr/bin/env python #encoding: utf-8 from sys import stdin, exit from optparse impo
id:takeda25 さんが開発したN-gramかな漢字変換の精度が気になったため,Mozcの辞書を利用して変換を行なう拙作のstakkと精度を比較してみた.コーパスにはMS IME Corpusに含まれるnews1を用いた.Unicode文字列はNFKCで正規化してある.N-gram 漢字-かな変換 - アスペ日記nokuno/stakk - GitHub Microsoft Research IME Corpus - Microsoft Research Precision, Recall, F-measureはLCS(least common subsequence)による評価で,CERは編集距離に基づく文字エラー率である.手法 Precision Recall F-measure CER Mozc 0.929 0.932 0.930 0.0794 N-gram 0.947 0.9
Mozcの辞書圧縮の論文を読みました.IMEはクライアントPCで動くし常駐するので消費メモリを小さくしようという話です.Efficient dictionary and language model compression for input method editors内容的にはNLP2011で聞いた話+接続コストのキャッシュの実験を追加したものになっています.最終的なサイズと内訳は以下のようになっていることがわかります. 辞書:13.3MB Token: 7.9 Reading: 2.4 Word: 3.0 接続コスト:2.9MBTokenも圧縮されているので一概には言えませんが,典型的には品詞が左右合わせて32ビット,コストが16ビット,表記IDが32ビットで合計80ビット(10バイト)を使っています.品詞の情報は意外とメモリを食っているなあという印象を受けました.ツイートする
IJCNLP 2011 と WTIM(テキスト入力ワークショップ)の論文が公開されました.ACL Anthology » I11ACL Anthology » W11Challenges in Designing Input Method Editors for Indian Languages: The Role of Word-Origin and ContextDiscriminative Method for Japanese Kana-Kanji Input MethodEfficient dictionary and language model compression for input method editorDifferent Input Systems for Different DevicesAn Accessible Coded Input Method for J
プログラミング面接について扱った名著Cracking the Coding Interviewの第5版が日本のAmazonに入荷された…と思ったらあっという間に在庫切れになっていました.Amazon.co.jp: Cracking the Coding Interview: 150 Programming InterviewQuestions and Solutions: Gayle Laakmann Mcdowell: 洋書 この本は先日はてなブックマークで盛り上がっていたTwitter面接のエントリで紹介されていました.Twitter 社採用面接受験記 - elm200 のノマドで行こう! 同じ著者による書籍として,The Google Resumeがあります.Amazon.co.jp: The Google Resume: How to Prepare for a Career an
自然言語処理において機械学習が用いられるのは,ルールベースでやっていた処理の管理が難しくなってきたときだと言われています.それでは,具体的にルールベースから機械学習へ移行すべきタイミングはいつなのか,という問題について考えました. ルールの数が数十〜数百個を超えたとき ルールに優先順位があって管理が難しくなったとき ルール同士が矛盾していて曖昧性が発生しているとき ルールの組合せを考慮したいとき ルールにパラメータがあって調整するのが難しいとき こんなところでしょうか.ツイートする
ノンパラベイズを勉強してみる (3) 階層ディリクレ過程 - nokunoの日記の続きです。Pitman-Yor過程はディリクレ過程の拡張で、観測回数を実際より低く見積もるディスカウント項が追加されているのが特徴です。これによりディリクレ過程によるスムージングで問題となった観測回数が0の場合と1以上の場合で結果が大きく異なるという問題を緩和します。つまり、観測回数が大きいときは階層ディリクレ過程と同じような結果になり、観測回数が少ない(1に近い)ときはより小さく見積もられるという仕組みです。観測回数が整数ではなく実数に拡張することで、観測データの信頼性を柔軟にモデル化している、という見方もできます。 階層Pitman-Yor過程はN-gram言語モデルのスムージングをベイズ的にモデル化する確率過程で、階層ディリクレ過程と同様に事前分布として(N-1)グラムのPitman-Yor過程を置くこ
Efficient C++を呼んでいたら,RVO (Return Value Optimization)が適用されるコードと適用されないコードの例が紹介されていました.RVOというのは,C++で関数がオブジェクトを返す場合に,一時オブジェクトの生成とコピーを抑制するコンパイラの機能です.非常に興味深いですね.Amazon.co.jp: Efficient C++パフォーマンスプログラミングテクニック: ダブ ブルカ, デビット メイヒュ, 浜田 光之, Dov Bulka, David Mayhew, 浜田 真理: 本 RVOが適用されないコード Complex operator+ (const Complex& a, const Complex& b) { Complex retVal; retVal.real = a.real + b.real; retVal.imag = a.ima
142byteのx86バイナリでHello WorldならぬHi Worldを出力するプログラムがあるそうです(Linux用),Smallest x86 ELF Hello World誰か解説してください…と思っていたらherumiさんからまだまだ甘いな,とのご指摘を受けました.@herumi: .@nokuno そのサイズはHello world!プログラマにとっては出発点ですよ.URL URL2011-10-18 09:41:03 via web to @nokunono titleThe smallest Linux ELF binary to print ’Hello world!’ - 菊やんの雑記帳58バイトってどういうことですか! バイナリアン怖いです><ツイートする
id:ny23さんのブログでC++の標準ライブラリにvalarrayという数値計算用のコンテナが含まれていることを知る. たまには std::valarray のことも思い出してあげよう - ny23の日記std::valarray - Cppreferenceというわけで簡単に試して見ました. valarraytest.cc #include #include using namespace std; int main() { valarrayint> x(2), y(2); x[0] = 1; x[1] = 2; y[0] = 3; y[1] = 2; valarrayint> z = x + y; cout 0] "," 1] 実行結果コンパイルして実行すrと,期待通りの結果になりました../valarraytest4,4 今回は試していませんが,sumやmaxなどの簡単な統計関
C++では関数や変数の型を指定するのにヘッダファイルとソースファイルの2ヶ所に書かなければならないことに,疑問を感じたことはないでしょうか? あなたはソースファイル中の関数の引数を変更したあと,ヘッダファイルの変更を忘れてコンパイルエラーになる現象を何回経験したか覚えていますか? もしくはその逆は(ヘッダファイルを変更してソースファイルの変更を忘れる)?ソースファイルとヘッダファイルの同期を手動でやらなければならないのは,馬鹿げています.先にヘッダを書いてからソースを書いてもう2度と変更しないようなプログラムを書くのでなければ,ソースとヘッダ重複するコードの修正にかかる手間は2倍になってしまいます.経験の浅いC++プログラマは全てのソースコードをヘッダファイルにインラインで書きたいと思うかもしれませんが,モジュールが相互に依存している場合に必要な定義を先に読み込めるように順番を管理したり,
makeよりマシなビルドシステムでいいのがないか調べてみました. ビルド自体を行なうタイプ GNU Make- GNU Project - Free Software FoundationSCons: A software construction toolBoost.Build V2 ビルドファイルを自動生成するタイプ Autotools - WikipediaAutotools Introduction - automakeAutomake - GNU Project - Free Software Foundation (FSF) waf - The meta build system - Google Project Hosting CMake - Cross Platform Make gyp - Generate Your Projects - Google Project H
第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で登録 まとめ 検索は大規模データ時代には必須 全文検索,転置インデック
技術評論社さんがやってくれました.Web+DB Pressの記事10年分のバックナンバーをDVD収録して2,699円って太っ腹すぎる! Amazon.co.jp: WEB+DB PRESS 総集編 [Vol.1~60]: 森田 創, cho45, ミック, 増井 俊之, 山本 陽平, 角谷 信太郎, 中島 拓, 縣 俊貴, 大塚 知洋, 伊藤 直也, 小飼 弾, WEB+DB PRESS編集部: 本内容的に古くなっているものもありそうだけど,Webエンジニアなら手元に一冊置いておきたいところ.ツイートする
以前,latticelmで教師なし形態素解析を試して,人間の単語分割基準とは異なることを確認しました. 教師なし形態素解析ライブラリlatticelmを使ってみた - nokunoの日記人間の単語分割基準に近づけるには半教師あり学習などの方法が考えられますが,ここでは既存の形態素解析器を使える簡単なやり方として,mecabで分かち書き済みのコーパスにlatticelmを適用してみることにしてみます.これは,1つの単語を1つの文字とみなして教師なし形態素解析を適用することに相当します.mecabのような形態素解析器は未知語に遭遇すると単漢字に分解してしまう傾向があるため,それをくっつけ直す効果が期待できると考えられます.というわけで,Wikipediaから1000文をmecabで分かち書きした結果をlatticelmにかけてみた結果がこちら.$ head out/samp.100 アンパサン
以前,N-gram言語モデルにおいて,SRILMに実装されているEntropy Pruningを使うと25%程度のサイズで同程度の性能が出せることを紹介した. 本当に必要なN-gramは2割しかない - nokunoの日記 それなら実際にどんなN-gramが削除されるのかを見てみたいと思うのは人情だ.SRILMで採用しているARPAフォーマットは条件付き確率の形になっていてやや見づらいので,同時確率の形に直して値が大きい順に並べてみることにした. parse_ngram.py #!/usr/bin/env python #encoding: utf-8 import sys from optparse import OptionParser if __name__ == '__main__': opt = OptionParser() opt.add_option("-n", dest="
ふと思いだして,グラムさんの教師なし形態素解析(単語分割)ツールであるlatticelmを試してみた.音声認識結果のラティスを入力できることが特徴のひとつですが,テキストを入力とする場合はほぼ持橋さんの教師なし形態素解析論文と同等のことを行います.latticelm version 0.2インストールにはOpenFSTが必要です. WebHome Wikipediaの本文データから10,000行を取り出して適用してみました.$ time ./latticelm -prefix out/ input.txtLoaded 3307 symbolsRunning on 10000 sequences手元のMBAではかなり時間がかかる(1イテレーションに20分近く)ので,途中経過を載せておく.head samp.22 ア ンパ サンド ] ]ア ンパ サンド ( a m p er s a n d
多項分布の最尤推定は確率モデルの基本中の基本であるが,意外と知らない人も多いので説明しておきたい.ここでいう多項分布は離散変数,たとえば単語や商品,ユーザなどの種類を表す変数の分布である.多項分布は頻度の分布を意味する場合もあるが,今回はNLP業界の慣習にならって観測回数が1回の場合を指す.このような変数はカテゴリカル変数などと呼ばれるらしい. 今,確率でi番目の単語が観測されるものとする.確率なので次の制約が成り立つ.この分布の元で単語が回観測されたとする.パラメータの元でこのような観測がされる確率を尤度関数と呼び,その対数は対数尤度関数と呼ばれる.各観測が上記離散確率の独立同分布に従うとすると,対数尤度関数は以下で表される.最尤推定は,観測値が与えられたときにこの対数尤度関数を最大とするようなパラメータを求める推定方法である.離散変数の場合は先ほどの制約を満たす中で上の対数尤度関数を最
SIGIR2011論文紹介その3,著者はMSR所属で,クエリ推薦候補の多様性を考慮しようという論文.Post-Ranking Query Suggestion by Diversifying Search Results 背景従来のクエリ推薦では入力クエリに対して関連性の高いクエリを推薦することが多かったが,そうすると入力クエリの同義語や省略形など同じ意味のクエリが推薦されてしまい,推薦されたクエリをクリックしても検索結果が前と変わらないという不具合を引き起こすこととなる.完全に同義語でなくてもほとんど同じだが微妙に違う検索結果になることもあり,それを防ぐためにクエリ推薦の多様性を考慮する必要がありますねという話.検索結果自体の多様性を考慮する研究は世に色々あるが,クエリ推薦の多様性を研究しているのは始めてのようだ.この論文ではクエリの多様性を測るために検索結果を使っていて,これにより推薦
SIGIR2011論文読みその2.Yahoo Labsの論文.Synthesizing high utility suggestions for rare web search queries 背景昨日の論文はクエリログが手に入らない状況でのクエリ補完だったのに対し,クエリログは手に入るがカバレッジが少ない場合にクエリログ推薦を行なうという話.今回はクエリログ推薦なので検索結果の画面に表示する代替クエリを出力するのが目的で,リアルタイムではないので入力クエリは完全な単語が与えられている.またクエリログのカバレッジが少ないといっても,通常のウェブ検索でもロングテールのテール部分が多く(30%)を占めているので,珍しいクエリログに対応するクエリ推薦を行なうのが目的となる. 論文中ではクエリログ推薦を以下の3種類に分類している 検索要求を特定するクエリの推薦(単語の追加) 検索要求を一般化するク
SIGIR2011勉強会に参加できないことがわかったので,腹いせにいくつかQuery Suggestion関係の論文を読んでみます.まず最初はこれ.Query Suggestions in the Absence of Query Logs 背景クエリログが手に入らない状況(デスクトップ検索や企業内検索など)でクエリ補完を行なうという論文.ここでいうクエリ補完とは,ユーザが入力中の不完全なクエリをリアルタイムに補完するGoogle Suggestのような機能を指しており,クエリ入力後の検索結果画面にクエリ候補を表示するクエリ推薦やクエリ訂正とは異なる.従来のWeb検索などではクエリ補完のために大量のクエリログを利用して高頻度なクエリを補完候補として提示する手法が一般的だった.それに対し本論文では検索対象の文書コーパスからフレーズ抽出を行なうことで,クエリログが手に入らない状況でも利用可能な
参加しました.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
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
以下のエントリの翻訳です.End-to-end NLP packages | AI and Social Science – Brendan O'Connor無料で手に入る全部入りの自然言語処理(Natural Language Processing; NLP)システムにはどんなものがあるだろうか? ここでいう全部入りとはつまり,生のテキストから始めて,構文解析や意味的構造を出力するもののことを指す.多くのNLP研究は一度に1つのタスクしか取り扱わず,そのタスク専用のソフトウェアが開発されている.しかし多くのアプリケーションでは,あなたが与えたテキストがなんであれ動いてくれるような,最初から最後まで面倒を見てくれるものが望ましい. あなたがこれを価値あるゴールだと思うなら(注意点は下にある),そのようなシステムはあまり多くないが,ここに当てはまると思われるものがいくつかある.もし誤りや不明
「Hadoop MapReduce デザインパターン ―MapReduceによる大規模テキストデータ処理」という本が発売されます.このブログや勉強会でも何度か紹介してきた,Data Intensive Text Processing with MapReduceの邦訳本になります.Jimmy Lin » Data-Intensive Text Processing with MapReduceAmazon.co.jp: Hadoop MapReduce デザインパターン ―MapReduceによる大規模テキストデータ処理: Jimmy Lin, Chris Dyer, 神林 飛志, 野村 直之, 玉川 竜司: 本これは期待ですね.ちなみに「小象本」と呼ぶらしいです.ツイートする
調べた.主に言語モデルに応用する場合の話.大きく分けて階層的と非階層的クラスタリングがある.Class-Based n-gram Models of Natural Language 階層的クラスタリングDistributed word clustering for large scale class-based language modeling in machine translation MapReduceによる単語クラスタリング 元論文のpdfが見つからないが,exchange algorithm(Kneser and Ney, 1993)を分散処理向けに改良している.Exploring Asymmetric Clustering for Statistical Language Modeling 非対称クラスタリングAn Efficient Method for Determin
Entropy-based Pruning of Backoff Language Modelsを読んだ.単語N-gramはとてもよくできていて言語モデルとしての性能はかなりのものなのだが,なんの枝刈りもせずに中規模〜大規模なデータに適用しようとするとサイズが馬鹿でかくなってしまう.そのための対策としてよくあるのが語彙のサイズを制限する方法と,N-gramの頻度が一定以下のものを切り捨てるという方法(後者の場合は語彙も自動的に制限される).Google 日本語N-gramなども頻度20以上のものが配布されており,効率よくデータサイズを減らすためには頻度でカットオフする方式がよく使われていると思う(語彙だけだとかなり制限しないとサイズが減らない).しかしカットオフしすぎると性能はかなり落ち込むので,うまい方法はないものかと考えられたのがこの論文の手法である.N-gramのデータには頻度の高い
次のページ
このページを最初にブックマークしてみませんか?
『d.hatena.ne.jp』の新着エントリーを見る
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く