タグ

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

  • NAIST で twitter 言語判定について発表してきました - 木曜不足

    5/14 に NAIST(奈良先端科学技術大学院大学) にて「∞-gramを使った短文言語判定」について発表してきました。素晴らしい機会をいただいてありがとうございました。 その時の資料を公開します。 内容は TokyoNLP #8 や言語処理学会2012@広島市大で発表したものをちょっと丁寧に+αした感じ。 Short Text Language Detection with Infinity-Gram View more presentations from Shuyo Nakatani NAIST 小町さんから M1 向けのセミナーで発表してみませんかとお話をいただいて、「ぜひやります」と二つ返事でお引き受けしたものの、当に中谷でいいんだろうかーとあとから心配になったのはないしょw 小町さんからは、機械学習や自然言語処理を実応用で使っているエンジニアの立場、というところを学生さんに

    NAIST で twitter 言語判定について発表してきました - 木曜不足
    mwsoft
    mwsoft 2012/05/21
  • NLP2012 での発表資料「極大部分文字列を使った twitter 言語判定」 - 木曜不足

    言語処理学会の第18回年次大会(NLP2012)での発表「極大部分文字列を使った twitter 言語判定」で使用した資料を公開します。 極大部分文字列を使った twitter 言語判定 from Shuyo Nakatani www.slideshare.net 論文は下記ページにて公開済み。 極大部分文字列を使った twitter 言語判定(中谷 NLP2012) - 木曜不足 論文との変更点は、執筆時よりも対応言語がカタルーニャ語とハンガリー語の2言語増えて19言語になっており、結果も最新のものに差し変わっているところ。 なお発表資料は TokyoNLP #8 での発表「∞-gram を使った短文言語判定」がベースとなっている。 #TokyoNLP で「∞-gram を使った短文言語判定」を発表しました - 木曜不足 発表時間が15分であること*1から発表資料はコンパクトにまとめ

    NLP2012 での発表資料「極大部分文字列を使った twitter 言語判定」 - 木曜不足
    mwsoft
    mwsoft 2012/03/22
  • #TokyoNLP で「∞-gram を使った短文言語判定」を発表しました - 木曜不足

    TokyoNLP 第8回に のこのこ参加。主催者の id:nokuno さん、発表者&参加者のみなさん、そして会場を提供してくださった EC ナビさん改め VOYAGE GROUP さん& @ajiyoshi さん、お疲れ様でした&ありがとうございました。 今回は「∞-gram を使った短文言語判定」というネタを発表。「短文言語判定」って、要は「このツイートは何語?」ってこと。 こちらが資料。 ∞-gram を使った短文言語判定 View more presentations from Shuyo Nakatani そして実装したプロトタイプ ldig (Language Detection with Infinity-Gram) とモデル(小)はこちらで公開。 https://github.com/shuyo/ldig 言語判定とは「文章が何語で書かれているか」を当てるタスクで、以前一度

    #TokyoNLP で「∞-gram を使った短文言語判定」を発表しました - 木曜不足
    mwsoft
    mwsoft 2011/11/28
  • WebDB Forum 2011 で「 CRF を使った Web 本文抽出」を発表してきました - 木曜不足

    昨年に引き続き、今年も WebDB Forum 2011 のサイボウズの企業セッションでの発表の機会をいただきましたので、「 CRF を使った Web 文抽出」について話をさせていただきました。 CRF を使った Web 文抽出 for WebDB Forum 2011 View more presentations from Shuyo Nakatani この発表は、過去に2回(自然言語処理勉強会@東京(TokyoNLP) 第1回、確率の科学研究会 第1回)で話をさせてもらったことと、WebDB Forum という場であること、さらに発表時間が 20分*1ということを考えて、今回は非常にスリムな内容になっています。 CRF についてはズバッとはしょって、その代わりに系列ラベリングを文抽出に使うというのはどういうことか、という図を入れましたので、さらっと読むには一番わかりやすいのでは

    WebDB Forum 2011 で「 CRF を使った Web 本文抽出」を発表してきました - 木曜不足
  • メールアドレスの正規表現がめちゃめちゃ遅くなることがある件について - 木曜不足

    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 にて教えていただいた「メールアドレスの正規表現がめちゃめちゃ遅くなることがある」件について。 論よ

    メールアドレスの正規表現がめちゃめちゃ遅くなることがある件について - 木曜不足
    mwsoft
    mwsoft 2011/10/21
  • ツイートの表現を正規化(Cooooooooooooooollllllllllllll => cool) - 木曜不足

    EMNLP 2011 でひときわ目を引くタイトル "Cooooooooooooooollllllllllllll!!!!!!!!!!!!!! Using Word Lengthening to Detect Sentiment in Microblogs" (Brody & Diakopoulos) は、twitter 上での表現を評判分析に使う話。 Cooooooooooooooollllllllllllll のような文字を必要以上に繰り返す twitter でよくみる表現に注目して、このような表現が意見や評価を述べるときによく使われるという点を主張しているのがポイント。 まあ直感的にもうなずける分析だと思う。 論文の中では、そのためにまず Cooooooooooooooollllllllllllll -> cool のように正規化を行っている。 提案されている手法がとてもシンプルでおも

    ツイートの表現を正規化(Cooooooooooooooollllllllllllll => cool) - 木曜不足
    mwsoft
    mwsoft 2011/09/15
  • CRF を使った Web 本文抽出 - 木曜不足

    とある確率でカオスでタイムマシンな勉強会を 7/30 にサイボウズにて開催。 お疲れ様でした&ありがとうございました>各位 会のテーマに合うかなあと心配しつつ、以前 TokyoNLP #1 にて発表させていただいた、CRF(Conditional Random Fields) を使った Web 文抽出ネタを焼き直し&プチバージョンアップして発表した。 その資料がこちら。 CRF を使った Web 文抽出 View more presentations from Shuyo Nakatani 最初は、元の資料そのまま持って行こうかな、と思っていたのだけど、結局結構それなりに改訂版に。 実装の方も少し更新してあって、最急降下法+FOBOS L1 に対応していたり、素性も約3倍に増えていたり。 データは……相変わらず少ないけど(苦笑)、訓練データとテストデータを分けて、定量的な結果を資料にま

    CRF を使った Web 本文抽出 - 木曜不足
    mwsoft
    mwsoft 2011/08/03
  • LDA 追試(訓練データとテストデータを分けたら) - 木曜不足

    LDA の評価結果+Collapsed Variational Bayesian の初期化における工夫 - Mi manca qualche giovedi`? のコメント欄にて、daichi さんに「テストデータを用意して、そちらのperplexityを順次評価してみるとどうなるでしょうか。LWLM等と同様、その場合には smart init が一番高い確率を与える可能性があるかも知れません」とアドバイスをいただいた。多謝。 θ_d が大変そう、とつぶやいてたら同じくコメント欄にて yossy さんから「θ_d周りの実装が少し面倒なせいか、各文書の90%の単語で学習して残り10%で評価することがよく行われます」とさらにアドバイスをいただいた。またまた多謝。 というわけで試してみた。 https://github.com/shuyo/iir/blob/master/lda/lda_test

    LDA 追試(訓練データとテストデータを分けたら) - 木曜不足
  • LDA で実験 その2:初期値を逐次サンプリングにしてみた - 木曜不足

    Collapsed Variational Bayesian での LDA 推論も実装してみたのだが、そのときに「パープレキシティが下がりきるのは非常に早いのに、その時点ではトピック-単語分布がストップワードだらけ」「イテレーションの最初のうちはパープレキシティがほとんど動かない」という現象にぶちあたってしまった。 で、その解決方法を考えているうちに、一つひらめいたことがあったので、また Collapsed Gibbs LDA に戻ってちょいと試してみた。 といっても大層なことではなく、推論の初期値に各 term のトピックをランダムに割り振るのだが、それを完全にランダム( K 個のトピックが一様分布)にするのではなく、Gibbs サンプリングに用いる事後分布を逐次更新しつつ、その分布からトピックをサンプリングするようにしてみたのだ。 つまり p( z_mn | z_mn より一つ前までの

    LDA で実験 その2:初期値を逐次サンプリングにしてみた - 木曜不足
    mwsoft
    mwsoft 2011/03/05
    後で試す
  • Latent Dirichlet Allocations の Python 実装 - 木曜不足

    LDA とは "Latent Dirichlet Allocation"。文書中の単語の「トピック」を確率的に求める言語モデル。 「潜在的ディリクレ配分法」と訳されていることもあるが、その名前だと「それってなんだっけ?」という人のほうが多そうw。 各単語が「隠れトピック」(話題、カテゴリー)から生成されている、と想定して、そのトピックを文書集合から教師無しで推定することができる。特徴は、果物の apple音楽apple とコンピュータ関連の apple を区別することが出来る(ことが期待される)という点。そのために、どのトピックを生成しやすいかという分布を各文章も持つ。細かい話は略。 結果の見方としては、定量的にはパープレキシティを見るし(一般に小さいほどいい)、定性的には各トピックがどのような単語を生成するか、その確率上位のものを見てふむふむする。この「各トピックが生成する単語」

    Latent Dirichlet Allocations の Python 実装 - 木曜不足
    mwsoft
    mwsoft 2011/02/16
  • Mahout の開発環境を Maven+Eclipse で作る (1) - 木曜不足

    Mahout in Action 買ったんだけど、開発環境の作り方についてはほとんど何も書いてない。いや、それも大事なことだと思うぞ。 というわけで、Mahout 用の開発環境をちょっとまじめに作ってみた。 とりあえず今回は Mahout in Action のサンプルコードを Eclipse 上で動かすところまで。 いろいろインストール 必要なものをインストール。今回入れたのはこんな感じ。それぞれの入れ方は略。まあ JAVA_HOME を設定して、パスを通すぐらい。 OS が Windows 2008 x64 なので、Java と Eclipse は x64 版を入れている。 Cygwin Java SDK 6u23 x64 Eclipse 3.6(helios) SR1 x64 Maven 3.0.2 (Hadoop 0.21.0 0.20.2) Cygwin は Mahout が D

    Mahout の開発環境を Maven+Eclipse で作る (1) - 木曜不足
  • 有名どころな機械学習手法の年表 - 木曜不足

    ちょっと機械学習の比較的有名なモデルやアルゴリズムの初出について年表を作ってみた。 って今週末用の資料なんだけどねw 1805 Method of Least Squares 1901 PCA (Principal Component Analysis) 1905 Random Walk -1925 Logistic Regression 1936 Fisher's Linear Discriminant Analysis 1946 Monte Carlo Method 1948 n-gram model 1950 RKHS (Reproducing Kernel Hilbert Space) 1950s Markov Decision Process -1957 Perceptron 1958 Kalman Filter 1960s Hidden Markov Model -1961 N

    有名どころな機械学習手法の年表 - 木曜不足
  • 言語判定プラグイン for Apache Nutch - 木曜不足

    オープンソース Web 検索エンジン Apache Nutch の概要 Apache Nutch のプラグインと言語判別 Apache Nutch のプラグインの作り方 Apache Nutch についてちらほら調べてきたけど、いよいよ 言語判定ライブラリを使って Nutch 用の言語判定プラグインを作ってみた。 言語判定プラグイン for Apache Nutch - Language Detection Library for Java プラグイン体はとても小さいので、言語判定ライブラリに同梱されている。 上のドキュメントの通りに設置すれば、以下のように様々な言語での判定が出来るようになる。 利用方法は上のドキュメントを読んでもらうとして、ここでは言語判定プラグインはどのように作られているか、という話をしよう。 plugin.xml Apache Nutch のプラグインと言語判別

    言語判定プラグイン for Apache Nutch - 木曜不足
    mwsoft
    mwsoft 2010/12/28
  • Apache Nutch のプラグインと言語判別 - 木曜不足

    オープンソース Web 検索エンジン Apache Nutch の概要 - Mi manca qualche giovedi`? のつづき。 Apache Nutch はさまざまな機能をプラグインで追加できる。プラグインは extension-points と呼ばれるインターフェースを実装することで提供される。 ドキュメントは以下のものがあるが、いろいろ足りてない……。 http://wiki.apache.org/nutch/AboutPlugins http://wiki.apache.org/nutch/WritingPluginExample-1.2 extension-points の一覧 extension-points は org.apache.nutch.plugin.Pluggable を implements した interface。ただしプラグイン可能でないものはそ

    Apache Nutch のプラグインと言語判別 - 木曜不足
    mwsoft
    mwsoft 2010/12/15
  • オープンソース Web 検索エンジン Apache Nutch の概要 - 木曜不足

    Apache Nutch はオープンソースの Web 検索エンジン。 今年になってバージョン 1.0 が出て、Apache の TLP(トップレベルプロジェクト) になった。現在最新は v1.2。 Apache Nutch http://nutch.apache.org/ 乱暴に言うと、「検索エンジン Lucene +全文検索 Solr + Web クローラー+スコアリング(Page Rank)+分散実行の仕組み」が Nutch。 ちなみに検索インデックスを作成&格納するための mapper / reducer および分散ファイルシステムが Nutch から spin out したのが話題の Hadoop。 の割りには知名度が低い気がするのは、Web 検索エンジンを作りたいという要求が少ないせい?(サイト内全文検索なら Solr でいい) プラグインの組み合わせで virtical sea

    オープンソース Web 検索エンジン Apache Nutch の概要 - 木曜不足
    mwsoft
    mwsoft 2010/12/10
    Nutchのイケてない言語判定をLangDtectに入れ替えるプラグイン作成予定らしい。ありがたい。
  • 自然言語処理勉強会で「ナイーブベイズによる言語判定」を発表してきました - 木曜不足

    第2回自然言語処理勉強会@東京 にのこのこ行ってきました。 ありがとうございました&お疲れ様でした>各位。 今回も全然専門じゃあないのに「ナイーブベイズで言語判定」というタイトルで発表してきた。 ナイーブベイズによる言語判定 from Shuyo Nakatani 内容は、仕事で作った(←ここ重要)言語判定ライブラリの紹介。 前回の「文抽出 using CRF」は検証プロトタイプであったわけだが、今回はオープンソースとして公開&最終的に製品に組み込むことを目標とした代物なので、「なんか良さげな感じ〜」だと駄目。目指すのは 50言語、99.うん%。 精度を上げるためにやれることならなんでもやる、というのがミッションなので、限りなく泥臭いことの積み重ねになる。 というわけでここ2ヶ月の積み重ねを資料にしてみたら、なんか膨大になってきて、また今回もしゃべりすぎてしまった(汗 楽しんでいただけた

    自然言語処理勉強会で「ナイーブベイズによる言語判定」を発表してきました - 木曜不足
    mwsoft
    mwsoft 2010/10/21
    99.8%で判定可能。Apache License 2.0。
  • 「Web本文抽出 using CRF」の学習用データの作り方 - 木曜不足

    第2回自然言語処理勉強会@東京が 9/25 に行われます。 前回よりキャパの大きい会場&週末に参加募集が始まったばかりですが、早くもほぼ定員。 自然言語処理に興味のある人はぜひ。でも、計画的なドタキャンは運営の方にご迷惑がかかるのでやめてね。 今度の第2回でも出しゃばって発表させてもらう予定だが、第1回も「Web文抽出 using CRF」という話をさせてもらった。 CRF(Conditional Randam Fields) を Web ページからの文抽出に用いるという手法の提案という内容で、実際に動作する Python スクリプトもあわせて公開している。 資料: http://www.slideshare.net/shuyo/web-using-crf 実装: http://github.com/shuyo/iir/blob/master/sequence/crf.py http:

    「Web本文抽出 using CRF」の学習用データの作り方 - 木曜不足
  • 共役勾配法をRで - 木曜不足

    たまには R のコード書いとかないと忘れる。 ただでさえ R はいろいろ特殊だってのに。 というわけで、勉強中の共役勾配法(conjugate gradient method)を R で書いてみた。といっても、pseudo code をそのまま落とし込んだだけなのだが。しかも線形。 読んでいるのはこれ。 Jonathan Richard Shewchuk, "An Introduction to the Conjugate Gradient Method Without the Agonizing Pain" 「苦痛を伴わない共役勾配法入門」、略して「サルでもわかるCG法」。 ほんとわかりやすくて、びっくり。 読者が知りたい内容にたどり着くにはこの順番で読んだらいいよ、というダイアグラムまで付いている。 例えば(線形)共役勾配法は、4. Steepest Descent(最急降下法) →

    共役勾配法をRで - 木曜不足
  • 1