第1回 自然言語処理勉強会@東京 に参加してきた

「第1回 自然言語処理勉強会@東京 (#tokyotextmining)」(id:nokuno さん主催) に参加してきた。


ATND: 第1回 自然言語処理勉強会@東京 : ATND
Google Group: Google グループ


素敵な会でした。主催者のid:nokuno さん、講師の id:sleepy_yoshi さん、id:n_shuyo さん、[Twitter:@PENGUINANA_] さん、 [Twitter:@suzuvie]さん、ありがとうございました。
また素敵な会場提供して下さった 株式会社ミクシィさんにも感謝。


以下、ツイートまとめ(Togetter)、各講師資料、メモ、の覚書き。

FSNLPの第1章を読む (id:nokuno, [Twitter:@nokuno])

nokunoさんエントリ:http://d.hatena.ne.jp/nokuno/20100704/1278201352

メモ

FSNLP(Foundations of Statistical Natural Language Processing):98年の本
・POSタギング、確率的CFG
・Zipf(ジフ)の法則:「単語の頻度は頻度の順位に反比例する」
 ●経験則。なぜ「順位の1乗」に反比例するか。
  ⇒Zipf則はなぜ成り立つのかの理論的裏付け - Mi manca qualche giovedi`? (id:n_syuyo さん)
 ・Least Effort原理:人々は努力を最小化しようとする。
  (単語長が関係しているかもしれない。シミュレーションが行われている。)
 ・トムソーヤの例、ブラウンコーパスの例
 ・複雑ネットワークは対数スケールに入れると大体直線に乗る。
 ・pitman yor を使っていると自然にZipfの法則を使っていることになる。
・Mandelbrotの法則
・単語の意味の数に関する法則:意味の数 ∝ 頻度のルート
・同じ単語が現れる間隔に関する法則
・単語の長さに関する法則

関連:ジップの法則 - Wikipedia

Foundations of Statistical Natural Language Processing (The MIT Press)

Foundations of Statistical Natural Language Processing (The MIT Press)



ソーシャル検索エンジンAardvarkの論文紹介 (id:sleepy_yoshi, [Twitter:@sleepy_yoshi])

The Anatomy of Large-Scale Social Search Engine

メモ

・従来のキーワード検索エンジンから村パラダイム
・村パラダイム
 ・知り合いに自然言語でたずねる。
 ・仲のよい人の言っていることは信頼できる
・Aardvark:ソーシャル検索エンジン
 ・Googleに5000万ドルで買収された
 ・aardvarkの言葉の意味:きつい仕事、ハードワーク、戦闘機
・シンプルなアーキテクチャ
 ・外部のソーシャル情報を使う (Facebook等)
 ・能動的なクロールは不要
 ・ユーザーが資源:
  ・より多くのユーザーによる、広い質問回答
  ・より密なソーシャルグラフ
・スコア
 ・質問者: uj, クエリ:q, 回答候補者: ui
  s(ui, uj, q) = p(ui|uj) p(ui|q)
  ・P(ui|q):relevance score (クエリ依存) e.g., TF-IDF
  ・P(ui|uj):quality score (クエリ非依存)e.g, PageRank
 ・従来の検索エンジンとの違い
  ・p(ui|uj):「権威」でなはく「関係」
  ・p(ui|q) :「関連性」ではなく「回答可能性」
・回答スコアの計算方法
 ・トピックモデル(PLSIを利用)
 ・計算効率がいい:トピック数が数千程度
・Indexing People
 ・Topics
  ・登録時に設定したトピック
  ・友人によるアノテーション
  ・オンラインプロフィールからの抽出 (Facebook,etc)
  ・ホームページ、ブログから抽出
  ・IMメッセージなどから自動抽出 (Twitter,etc)
  ・トピック強化:
  ・スムージング:
   ・トピックに関する協調フィルタリング
   ・意味的な類似度を利用(wikipediaなどのコーパス利用)
 ・Connection
  ・以下の特徴に関し、重み付きコサイン類似度を計算しソーシャルグラフ構築
   ・Social connection (common friends and affiliations)
   ・Demographic similarity
   ・Profile similarity (e.g., common favorite movies)
   ・Vacabulary match (e.g., IM shortcuts)
   ・Chattiness match (frequency of follow-up messages)
   ・Verbosity match (the average length of messages)
   ・Politeness match (e.g., use of “Thanks!”)
   ・Speed match (responsiveness to other users) 21
・質問の解析
 ・質問の分類
  ・NonQuestionClassifier
  ・InappropriateQuestionClassifier
  ・TrivialQuestionClassifier
  ・LocationSensitiveClassifier
 ・p(t|q)の計算
  ・keywordMatchTopicMapper
  ・TaxonomyTopicMapper
  ・SalientTermTopicMapper
  ・UserTagTopicMapper
・ランキングアルゴリズム
 ・TopicExpertise
 ・Connectedness
 ・Availability
 ・ルールベースのフィルタ
・システムがユーザーに回答依頼をした理由を伝える
・評価
 ・システムに関する回答の早さ
 ・平均 2.08 件の回答
・sleepy_yoshiさん感想
 ・個々はオーソドックスな技術の組合せだが、動くシステム
 ・村パラダイム
 ・質問理由を提示している
 ・質問をスルーする選択肢の多さ
・補足:
 ・質問応答検索は、入力クエリに適合性が高い「文書」を検索
 ・ソーシャルサーチエンジンは、入力クエリに適合性が高い「人」を検索

Webページの本文抽出 using CRF (id:n_syuyo, [Twitter:@shuyo])

shuyoさんエントリ:http://d.hatena.ne.jp/n_shuyo/20100704/tokyotextmining

メモ

・本文抽出 for Web
 ・ウェブページの本文を抽出する。 Pathtraq
 ・本文抽出を正しくできることが一番
・ExtractContents
 ・アルゴリズム
  ・htmlをブロックに分割
  ・ブロックごとにスコア計算
  ・連続するブロックを大ブロックにまとめる
  ・スコアが最大になる大ブロックを算出
 ・課題
  ・本文、関連記事を分離できない
  ・本文がない、極端に短いページで長いテキストを抽出してしまう
  ・本文の範囲がアプリごとに違う
 ・系列ラベリング
  ・系列に関してラベルを付与
  ・様々な問題を解くための定式化のひとつ
    ・形態素解析係り受け、など
  ・隠れマルコフモデル(Hidden Markov Model):
   ・代表的な系列タギング手法なひとつ
   ・隠れ変数が1時のマルコフ連鎖をなす
   ・高速な算出が可能
   ・課題:
    ・非独立な素性を扱うことができない。
    ・大域的な解を得られない
  ・Conditional Random Field (CRF) 条件付乱数場 [Lafferty+ 2001]
   ・系列ラベリングのための確率モデル
   ・HMMより最適な系列を扱いやすい。
   ・Mecabで利用されている
・CRFのPython実装
 ・Lenear-chain CRFの学習&ラベリングアルゴリズム
 ・ScipyのPFGSを使ってパラメータ推論
 ・mumpy/scipyにできる限り処理させる
・Project Cutenberg 本文抽出 using CRF
 ・系列ラベリングの問題に定式化
 ・素性設計
 ・素性設計以外にヒューリスティックな工夫はしない
・CRFについて雑感:
 ・面白さ
  ・非独立な素性を好きに設計できる
  ・不必要な素性を選んでも性能悪化しにくい
  ・CRF精度が高く、制御しやすい
 ・CRFはまだ少し難しい
  ・分かりやすい解説がまだない。
  ・ライブラリはあるが研究用でまだまだ使いにくい
・CLEANEVAL: 本文抽出コンテキスト 2007年

LDAでtweetタギングしてみた ([Twitter:@PENGUINANA_])

メモ

・デモ:http://pcod.no-ip.org/yats/
・論文紹介
 ・短いテキストだと意味が分からない
 ・流れ:
  ・(Wikipediaから)網羅的なコーパスを作る
  ・LDAでモデルをつくる
  ・(Wikipediaから)教師データを作る 
  ・分類器を作り、分類
 ・結果:LDAを使うと、トレーニングデータ数は少なくてもいい。
・実装
 ・MySQL+Python+TokyoCabinet
 ・MeCab+Python+MPICH2
・LDAで次元縮約:Google の PLDA ライブラリ(いいライブラリ)
・モデル評価:Twitterのモデルの賞味期限、1、2ヶ月
・ラベリングする:Latent topicにラベルを手動で付与する
API化する
・関連:
 ・PLDAを利用した論文:あなたがどのコミュニティに入るべきか、のレコメンデーション
 ・モデルの賞味期限:LDAをオンラインで適用
 ・RのLDAパッケージのAuthorが facebook/data からLDA論文出していた
 ・Facebook

FSNLPの2章を読む+IRMのサーベイ」(@suzuvie さん)

Foundations of Statistical Natural Language Processing - 2. Mathematical Foundation

・確率論
情報理論
 ・言語がNice(2.48 -> 2.49)
  式中の関数期待値を置き換えられる、値が定義域内にある。