SlideShare une entreprise Scribd logo
1  sur  47
Télécharger pour lire hors ligne
CRF を使ったWeb本文抽出

     2011/7/30
   確率の科学研究会 #1
 中谷 秀洋@サイボウズ・ラボ
アジェンダ
• 本文抽出について
 – Web ページからの本文抽出
 – ルールベースでの本文抽出
• 条件付確率場(CRF)について
 – 系列ラベリング
 – FOBOS による L1 正則化
• CRF を使った本文抽出
本文抽出
Webページは雑多な情報だらけ
                         Web

ゲーム



 経済
                         生活



スマホ                      映画



 PC

      livedoor ニュース より
「本文」




• さまざまなアプリが「本文」を要求
 – 分類、読み上げ、検索、携帯向け変換、etc
Webページ分類のために
  本文抽出を作った
Web 本文抽出モジュール
                      (中谷 2007)

• ExtractContent for Ruby
  – html から本文抽出を行う Ruby モジュール
    • http://rubyforge.org/projects/extractcontent/
    • オープンソース(BSD ライセンス)
  – ルールベース
    • アルゴリズムの概略は次スライド
  – Google の「セクションターゲット」を利用し、
    主要サイトの本文抽出を高精度で行う
    • 本発表とは関係ないので、詳細は省略
    • http://labs.cybozu.co.jp/blog/nakatani/2007/09/web_1.html
ExtractContent のアルゴリズム概略

• html をブロックに分割
• ブロックごとにスコアを計算
 – 句読点が多い
 – 非リンクテキストが長い
 – 本文っぽくないフレーズが含まれている
• 連続するブロックを「大ブロック」にまとめる
 – スコアの高いものをつなげていく
 – スコアが低いとつながる確率は減衰していく
• スコアが最大となる「大ブロック」が本文
できるだけ長い「本文」を
  抽出しようとする
問題となるパターン
「本文」の切れ目がわかりにくい




            関係ない話題も
          「本文」に入ってしまう




      毎日 jp より
一番長いところが本文?


本文より
             本文
 長い

                          ここも
                         それなり




           PC Watch より
短い「本文」を見落としがち




    livedoor ニュース より
もっと短い「本文」




  しょこたん ブログ より
そもそも「本文」がない場合も




              ここを「本文」と
               してしまう




    Yahoo! Japan トップ より
その他の課題
• アプリごとに求める「本文」が異なる
 – 分類ではコメント不要。全文検索では必要
• パラメータを手動で設定
 – 重み、減衰率、閾値など
 – 最適なものとは言い難い
  • 当時は機械学習をまだ勉強していなかった……
参考 : CLEANEVAL (2007)
• Webページcleaning(本文抽出)のコンテスト
 – http://cleaneval.sigwac.org.uk/
 – 英語と中国語の開発用データセット(約60件ずつ)
 – 主に「おとなしいデータ」
    • 開発データセット120件中、「本文なし」は1件だけ
    • ファイルサイズの最大は150KB
        – 現実には 1MB 超える html も珍しくない

 – 結果
    • 中国語は参加1組。精度 18%……
    • 英語は9組。精度の最高値は84%
先行研究
• [Marek+ 2007] Web Page Cleaning with
  Conditional Random Fields
  – CLEANEVALの優勝チーム
    • 評価はCLEANEVALの英語データセットのみ
  – 今回紹介するのとほぼ同じ手法
    • 実装後に発見
    • というわけで、本発表に新規性はありません
系列ラベリングと CRF
ExtractContent のアルゴリズム(再掲)

• html をブロックに分割
• ブロックごとにスコアを計算
 – 句読点が多い
 – 非リンクテキストが長い          ←特徴量
 – 本文っぽくないフレーズが含まれている
• 連続するブロックを「大ブロック」にまとめる
 – スコアの高いものをつなげていく
 – スコアが低いとつながる確率は減衰     ←転移確率
• スコアが最大となる「大ブロック」が【本文】
                    ↑ラベル
「系列ラベリング」の問題として定式化できる
系列ラベリング
• 系列に対してラベルを付与する
 – 観測変数と潜在変数が1対1に対応
• 様々な問題を解くための定式化の一つ
 – 形態素解析
  • 品詞推定
                   隠れ変数
  • 分かち書き
 – 係り受け     代名詞   動詞   不定冠詞   名詞

 – 音声認識      I    am      a   pen
 – DNA解析
                   観測変数
隠れマルコフモデル
          (Hidden Markov Model, HMM)

• 系列ラベリング手法のための生成モデル
• ベイジアンネットワーク
 – 潜在変数は(1次の)マルコフ連鎖をなす
 – 観測変数の分布は対応する潜在変数にのみ依存
• 線形オーダーの推論手法がある
 – Baum-Welch / Viterbi
• 教師無し                 ������1    ������2      ������3   ������������


                       ������1    ������2      ������3   ������������
HMMの推論と予測
                         ������                      ������

 ������(������, ������) = ������ ������1           ������ ������������ ������������−1           ������(������������ |������������ )
                        ������=2                    ������=1
• をもとに、
 – ������ ������ Θ =    ������ ������(������, ������|Θ)   を最大化する Θ と、
 – ������(������|������) ∝ ������(������, ������) を最大化する ������ が
• 動的計画法により求められる
               ������1       ������2        ������3          ������������


               ������1       ������2        ������3          ������������
HMM の問題点 (1)
• 未知の観測値を扱うことが出来ない
 – p(X|Y) が値を持たないと計算できない
  • Y:潜在変数(ラベル)、X:観測変数

• 自然言語処理の場合、訓練データが全て
  の単語を網羅するのは難しい
 – 存在しない単語の確率=0
HMM の問題点 (2)
• 潜在変数を止めたとき、観測変数間は独
  立になる
• 非独立/同時に起きうる特徴量を扱うこと
  が難しい
 – 「テキストが長い」と「句読点が多い」は同時
   に起きやすい
 – 「<ul>タグを含む」と「次のブロックが
   <li>タグを含む」は非独立
HMM の問題点 (3)
• 大域的な「最適性」を得られない可能性
 – 分岐の少ない経路が選ばれやすい
  • Label bias と Length bias
 – 同じラベルを持つ系列の続く確率が指数的に減衰
   するため、「長い本文」が選ばれにくい
  • 局所的な条件付き確率の積によって尤度を求めるため
                               [Kudo+ 2004] より
条件付き乱数場
       (Conditional Random Fields, CRF)
                                          [Lafferty+ 2001]

• 系列ラベリングのための識別モデル
 – マルコフ確率場 / 対数線型モデル
 – 形態素解析器 Mecab(Kudo+ 04)で利用
• 線形オーダーの推論手法がある
 – Linear-chain CRF の場合
• HMMより最適な系列を得やすい
• 教師有り
CRFのモデル


                                             簡便性のために
                                             こちらのモデルで説明



������0   ������1   ������2        ������3   ������������   ������������+1
                                             linear-chain CRF と言えば
                  ������
                                             現在はこちらが主流
モデル
• (バイナリ)特徴量
 – ������ ������, ������ = (������ ������������−1 , ������������ , ������ ������������ , ������������ )
      • 例:������������ = 1 if ������������ が大文字で始まる & ������������ が”名詞”

• 対数線型モデル
 – ������ ������ ������; ������ ∝ exp ������ T ������ ������, ������
      • ������(������, ������)を経由せず、������(������|������)を直接モデリング

• 目的関数 : 負の対数尤度
 – ������ = −        ������,������ ∈������ log   ������ ������ ������; ������ where T:訓練データ集合
解き方
• (1) 勾配を使ってなにがしかの最適化
      ������������
           =−           {������ ������, ������ − ������������′ [������ ������′, ������ ]}
      ������������
                ������,������ ∈������
  – 準ニュートン法、勾配法
    • ������������′ は動的計画法で求められる
• (2) Gibbs サンプリング
  – ������(������������ |������−������ , ������; ������) からのサンプリングを繰り返す
    • linear-chain でない CRF の場合
    • この研究会的にはこっちでしょうけど(苦笑)
HMM と CRF の相違点
     Hidden Markov Model     Conditional Random Fields
ベイジアンネット /生成モデル マルコフ確率場 /識別モデル
教師無し                       教師有り
������(������������ |������������ )で記述できる特徴量   特徴量設計の自由度が高い
������(������, ������)から������(������|������)を計算   ������(������|������)を直接計算
ラベリングの計算量はどちらも O(特徴量数×状態数^2×系列長) だが、
CRFは特徴量数が爆発する傾向あり(bigramの特徴量=状態数^2)




                                                 [Sutton+ 06]より
CRFを実装してみた
Linear-chain CRF の Python 実装
• 簡易な実装
   – 下図のモデルを採用
   – 長距離の特徴量は扱えない
• 実用と言うより勉強用
   – numpy / scipy でできる限り処理しているが、遅い
      • Python の行列・科学計算ライブラリ
   – CRF 処理部は 200行程度なので読みやすい、かも?
• https://github.com/shuyo/iir/blob/master/sequence/crf.py
推論
• 次の2つをサポート
 – (1) 準ニュートン法
  • BFGS を用いて目的関数を最大化
  • scipy.optimize.fmin_bfgs
 – (2) 最急降下法 + L1 正則化
  • 学習率は手動で調整……
  • FOBOS(Duchi+ 09) による L1 正則化
     – SGD では特徴量がつぶれにくい
L1 正則化
• 目的関数に「ペナルティ項」を付加

     L′ = −               log ������ ������ ������; ������ + ������ ������   1
              ������,������ ∈������
 – 過学習を抑える
 – 効果の小さいパラメータを0に落とす
   • 推論と同時に特徴選択できる
   • 特徴を手当たり次第つぎ込める CRF と相性がよい
• ������ ������ 1 は微分不可なため、一般には扱いにくい
 – FOBOS(Duchi+ 09) はオンライン正則化を容易に実現
CRFで本文抽出
CRFを使ったWeb本文抽出
                           (中谷 2010, 2011)

• 系列ラベリングの問題に定式化
     – htmlを閉じタグ/<br>で分割、ブロックの系列に
     – ブロックの系列に12種類のラベル付けを行う
         • start, stop, head, header, menu, title, body, comment, linklist, cm,
           form, footer

• CRFが本文抽出タスクに有用かどうかの実験
     – ヒューリスティックな工夫はしない
         • script/style タグの除去のみ例外として行っている
         • Google AdSense Section Targetは無視
•   http://github.com/shuyo/iir/blob/master/extractcontent/webextract.py
特徴量
• 特徴量設計(1678個)
 – bigram(ラベルの組)
 – タグ(a/p/div/...)の有無
 – キーワードの有無
   • Copyright/会社概要/利用規約など
 – 句読点、日付、アフィリエイトリンク
 – テキスト長、リンクされているテキスト長
データ作成方法
• html ファイルに分類タグを打つ
   – 手作りなので、データ数がとても少ない……
   – アノテーションの揺れも(多分)少なくない

<img src="/images08/common/icn_bookmark_e.gif" alt="このエントリ
をBuzzurlに登録" title="このエントリをBuzzurlに登録" width="16"
height="16" /></a>

<!-- extractcontent_body --> ← ここから下は [body] 部
</p></div><div class="ThmbSet256"><div class="BodyTxt"><p>
  トヨタ自動車が、マツダからハイブリッド車(HV)の技術の供与を……
結果
                   訓練データ                  テストデータ
件数                   20                     5
総系列長                4341                    709
BFGS       正解数      3505                    400
           正解率      80.7%                  56.4%
FOBOS L1   正解数      3424                    397
(λ=1)      正解率      78.9%                  56.0%
           有効特徴数            1676 / 1678
FOBOS L1   正解数      3520                    401
(λ=10)     正解率      81.1%                  56.6%
           有効特徴数            1630 / 1678
FOBOS L1   正解数      3488                    401
(λ=20)     正解率      80.4%                  56.6%
           有効特徴数            1323 / 1678
実行例(Yahoo! Sports)
[head] <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "
[header] <body class="yj950-2"> <div id="wrapper"> <!--- header --->
[header]   <div class="yjmth"> <div class="yjmthproplogoarea"><a href=htt
[header] <div class="yjmthloginarea"><strong><a href="https://login.yaho
: ( 29 blocks)
[header] <li title="ニュース" class="active_click"><a href="/news">
[header] <li title="コラム" class="end"><a href="/column/">コラム</
[header] <!---/globalnavi---> <div id="contents-header"> <div id="cat-pa
[title] <!--- body ---> <div id="contents-body"> <span class="yj-guid"
[title] <em>サンケイスポーツ - 2009/7/9 7:52</em> </div>
[body]   <!----- article -----> <div class="Article clearfix"> <table
[body]   <p> (セ・リーグ、巨人3x-2横浜、11
[body]    一塁ベースを回っても、坂本は下を向いたま      関連記事へのリンクを
: ( 5 blocks)                     linklist として正しく分類
[body]    「チームにとっても彼にとっても大きな本塁
[body]    現役時代に何度もスランプを味わった原監督
[body] 【関連記事】<br />
[linklist] ・<a href="http://www.sanspo.com/baseball/news/090709/bsa09070
[linklist] ・<a href="http://www.sanspo.com/baseball/news/090709/bsa09070
[linklist] ・<a href="http://www.sanspo.com/baseball/news/090709/bsa09070
: ( 3 blocks)
[linklist] <!-- anemos --> <!-- /anemos -->       <div class="Kejiban"> <im
実行例(はてなダイアリー)
[head] <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
[header] <body> <div id="simple-header">       <a href="http://www.hatena.
: ( 9 paragraphs)
[header] <p class="sectionheader"><span class="sectioncategory"><a hre
[body] <p><a class="keyword" href="http://d.hatena.ne.jp/keyword/Py
[body] <p>でも以下のように書くと、<a class="keyword" hr
[body] <pre class="syntax-highlight"> <span class="synComment"># A, B,
                          コメントを
: ( 2 paragraphs)
                          正しく判別
[body] <pre class="syntax-highlight"> labels = [&quot;<span class="syn
[body] <p>そのせいで以下のようなハマりパターンも
[body] <pre class="syntax-highlight"> <span class="synStatement">def</
[comment] <p class="sectionfooter"><a href="/n_shuyo/20100629/python">
[comment]   <!-- google_ad_section_end --> </div>
[comment]   <form id="comment-form" method="post" action="/n_shuyo/comment
: ( 14 paragraphs)
[comment]             <div class="refererlist">     <div class="caption">
[comment]          <div class="refererlist">       <div class="caption"><a
[linklist]                <ul>                      <li><a href="http://d.ha
[linklist]                  <div class="refererlist"> <div class="caption
: ( 121 paragraphs)
実行例(Yahoo! Japan トップ)
[head] <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "
[menu] <body> <div id="wrapper"> <div id="header"> <div id="masthead"
[menu] <ul id="mhicon"> <li id="mhi1st"><a title="Yahoo! BB" href="r/m
                           記事見出しや抜粋を
[menu] <li id="mhi2nd"><a title="オークション" href="r/mauc">オ
: ( 30 paragraphs)
                         linklist として正しく分類
[menu] <li id="clr5"><a href="r/header/color/5/*-http://www.yahoo.co.
[menu] <li id="clr6"><a href="r/header/color/6/*-http://www.yahoo.co.
[menu] <p class="help"><a href="r/mht">ヘルプ</a></p></div> </div> <
[linklist] <hr class="separate"> <div id="contents"> <div id="toptxt"> <u
[linklist] <li id="toptxt2"><a href=s/69879>全国約1000件の花火大莨
[linklist] <li id="toptxt3"><a href=s/69950>新機能は?「ポケモン
: ( 150 paragraphs)
[linklist] <li><a title="Yahoo!ノートパッド" class="second" href="r/p
                        [body]とラベリングされた
[linklist] <li><a title="Yahoo!ブリーフケース" class="third" href="r
                                ブロック無し
[linklist] <div id="pbindexbg"><div id="pbindex"> <div id="pbcalendar"><di
[footer] </tr> <tr> <td><a href="f/pbox/clndr/06/27/*-http://calendar.ya
[footer] <td><a href="f/pbox/clndr/06/28/*-http://calendar.yahoo.co.jp/?
[footer] <td><a href="f/pbox/clndr/06/29/*-http://calendar.yahoo.co.jp/?
: ( 101 paragraphs)
[footer] <li><a href="r/fdi">免責事項</a></li></ul>
[footer] <address>Copyright (C) 2010 Yahoo Japan Corporation. All Rights
[footer]   </body> <!--http://ard.yahoo.co.jp/SIG=15blcke9p/M=300330001.
実行例(しょこたんブログ)
[head] <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "
[menu]   <body id="mainIndex"> <!--bodyTop--> <ul id="amebaBar"> <li id
[menu] <li><a href="http://pigg.ameba.jp/" title="ピグ">ピグ</a></
[menu] <li class="last"><a href="http://blog.ameba.jp/ucs/entry/srvent
: ( 167 paragraphs)
[menu] <p><a href="http://blog.ameba.jp/reader.do?bnm=nakagawa-shoko">
[menu] <!--//.readerMainLink--> <div class="page articlePaging"> <a ti
              手強すなよ……
[menu] <!--TopPagingBottom--> <div class="entry new"> <div class="ent
[cm] <!--//.entry_head-->          <h3 class="title"><!-- google_ad_s
[cm]         <span class="theme">テーマ:<!-- google_ad_section_s
[cm] <DIV>ぽこ(&lt;●&gt;&lt;●&gt;)メポぽん</DIV><DIV>&nbsp;
: ( 33 paragraphs)
[cm] <!--//#footer_ad--></div>
[cm] <!--//#sub_main--> </div><!--//#main--> </div>
[cm] <!--//#subFirstContentsArea--> </div>
[linklist] <!--//#firstContentsArea--> <div id="sub_b"> <!--subBTop--> <!--
[linklist] “中川翔子物語~空色デイズ~”連載中<br
[linklist] 原明日美 (著)<br>
: ( 53 paragraphs)
[linklist] <li><a href="http://ameblo.jp/nakagawa-shoko/theme-10014191488.
まとめ
• CRFを使ったWeb本文抽出を実装
 – CRFは本文抽出タスクにも有効っぽい?
  • というには、まだまだ訓練が足りない……

• L1 の効果を見るには特徴量がまだ少ない
 – 長距離の特徴を扱えれば指数的に増やせる
 – 有効素性を減らすことは確かにできそう
発展(課題)
• データを増やす
• アノテーションを見直す
• 素性を増やす(増やせるように作り直す)
 – ライブラリを使えばいい
• Gibbs サンプリングで解いてみる
 – non linear-chain なモデルも試してみたい?
• C++ などでまじめに書いて実用化を狙う
References
• [Lafferty+ 2001] Conditional Random Fields: Probabilistic
  Models for Segmenting and Labeling Sequence Data
• [Sutton+ 2006] An Introduction to Conditional Random
  Fields for Relational Learning
• [Kudo+ 2004] Conditional Random Fieldsを用いた日本語
  形態素解析
• [Duchi+ 2009] Efficient Online and Batch Learning using
  Forward Backward Splittin
• [Marek+ 2007] Web Page Cleaning with Conditional
  Random Fields

Contenu connexe

Tendances

Active Learning の基礎と最近の研究
Active Learning の基礎と最近の研究Active Learning の基礎と最近の研究
Active Learning の基礎と最近の研究Fumihiko Takahashi
 
【メタサーベイ】基盤モデル / Foundation Models
【メタサーベイ】基盤モデル / Foundation Models【メタサーベイ】基盤モデル / Foundation Models
【メタサーベイ】基盤モデル / Foundation Modelscvpaper. challenge
 
[DL輪読会]Model soups: averaging weights of multiple fine-tuned models improves ...
[DL輪読会]Model soups: averaging weights of multiple fine-tuned models improves ...[DL輪読会]Model soups: averaging weights of multiple fine-tuned models improves ...
[DL輪読会]Model soups: averaging weights of multiple fine-tuned models improves ...Deep Learning JP
 
[DL輪読会]Deep Learning 第15章 表現学習
[DL輪読会]Deep Learning 第15章 表現学習[DL輪読会]Deep Learning 第15章 表現学習
[DL輪読会]Deep Learning 第15章 表現学習Deep Learning JP
 
自己教師学習(Self-Supervised Learning)
自己教師学習(Self-Supervised Learning)自己教師学習(Self-Supervised Learning)
自己教師学習(Self-Supervised Learning)cvpaper. challenge
 
【メタサーベイ】Transformerから基盤モデルまでの流れ / From Transformer to Foundation Models
【メタサーベイ】Transformerから基盤モデルまでの流れ / From Transformer to Foundation Models【メタサーベイ】Transformerから基盤モデルまでの流れ / From Transformer to Foundation Models
【メタサーベイ】Transformerから基盤モデルまでの流れ / From Transformer to Foundation Modelscvpaper. challenge
 
Deep Learningと画像認識   ~歴史・理論・実践~
Deep Learningと画像認識 ~歴史・理論・実践~Deep Learningと画像認識 ~歴史・理論・実践~
Deep Learningと画像認識   ~歴史・理論・実践~nlab_utokyo
 
[DL輪読会]data2vec: A General Framework for Self-supervised Learning in Speech,...
[DL輪読会]data2vec: A General Framework for  Self-supervised Learning in Speech,...[DL輪読会]data2vec: A General Framework for  Self-supervised Learning in Speech,...
[DL輪読会]data2vec: A General Framework for Self-supervised Learning in Speech,...Deep Learning JP
 
【メタサーベイ】数式ドリブン教師あり学習
【メタサーベイ】数式ドリブン教師あり学習【メタサーベイ】数式ドリブン教師あり学習
【メタサーベイ】数式ドリブン教師あり学習cvpaper. challenge
 
【DL輪読会】言語以外でのTransformerのまとめ (ViT, Perceiver, Frozen Pretrained Transformer etc)
【DL輪読会】言語以外でのTransformerのまとめ (ViT, Perceiver, Frozen Pretrained Transformer etc)【DL輪読会】言語以外でのTransformerのまとめ (ViT, Perceiver, Frozen Pretrained Transformer etc)
【DL輪読会】言語以外でのTransformerのまとめ (ViT, Perceiver, Frozen Pretrained Transformer etc)Deep Learning JP
 
20190619 オートエンコーダーと異常検知入門
20190619 オートエンコーダーと異常検知入門20190619 オートエンコーダーと異常検知入門
20190619 オートエンコーダーと異常検知入門Kazuki Motohashi
 
【DL輪読会】SimCSE: Simple Contrastive Learning of Sentence Embeddings (EMNLP 2021)
【DL輪読会】SimCSE: Simple Contrastive Learning of Sentence Embeddings  (EMNLP 2021)【DL輪読会】SimCSE: Simple Contrastive Learning of Sentence Embeddings  (EMNLP 2021)
【DL輪読会】SimCSE: Simple Contrastive Learning of Sentence Embeddings (EMNLP 2021)Deep Learning JP
 
Swin Transformer (ICCV'21 Best Paper) を完璧に理解する資料
Swin Transformer (ICCV'21 Best Paper) を完璧に理解する資料Swin Transformer (ICCV'21 Best Paper) を完璧に理解する資料
Swin Transformer (ICCV'21 Best Paper) を完璧に理解する資料Yusuke Uchida
 
情報抽出入門 〜非構造化データを構造化させる技術〜
情報抽出入門 〜非構造化データを構造化させる技術〜情報抽出入門 〜非構造化データを構造化させる技術〜
情報抽出入門 〜非構造化データを構造化させる技術〜Yuya Unno
 
トピックモデルの基礎と応用
トピックモデルの基礎と応用トピックモデルの基礎と応用
トピックモデルの基礎と応用Tomonari Masada
 
[DL輪読会]Meta-Learning Probabilistic Inference for Prediction
[DL輪読会]Meta-Learning Probabilistic Inference for Prediction[DL輪読会]Meta-Learning Probabilistic Inference for Prediction
[DL輪読会]Meta-Learning Probabilistic Inference for PredictionDeep Learning JP
 
最適輸送の解き方
最適輸送の解き方最適輸送の解き方
最適輸送の解き方joisino
 
ブースティング入門
ブースティング入門ブースティング入門
ブースティング入門Retrieva inc.
 
トピックモデルの評価指標 Perplexity とは何なのか?
トピックモデルの評価指標 Perplexity とは何なのか?トピックモデルの評価指標 Perplexity とは何なのか?
トピックモデルの評価指標 Perplexity とは何なのか?hoxo_m
 

Tendances (20)

Active Learning の基礎と最近の研究
Active Learning の基礎と最近の研究Active Learning の基礎と最近の研究
Active Learning の基礎と最近の研究
 
【メタサーベイ】基盤モデル / Foundation Models
【メタサーベイ】基盤モデル / Foundation Models【メタサーベイ】基盤モデル / Foundation Models
【メタサーベイ】基盤モデル / Foundation Models
 
[DL輪読会]Model soups: averaging weights of multiple fine-tuned models improves ...
[DL輪読会]Model soups: averaging weights of multiple fine-tuned models improves ...[DL輪読会]Model soups: averaging weights of multiple fine-tuned models improves ...
[DL輪読会]Model soups: averaging weights of multiple fine-tuned models improves ...
 
[DL輪読会]Deep Learning 第15章 表現学習
[DL輪読会]Deep Learning 第15章 表現学習[DL輪読会]Deep Learning 第15章 表現学習
[DL輪読会]Deep Learning 第15章 表現学習
 
自己教師学習(Self-Supervised Learning)
自己教師学習(Self-Supervised Learning)自己教師学習(Self-Supervised Learning)
自己教師学習(Self-Supervised Learning)
 
【メタサーベイ】Transformerから基盤モデルまでの流れ / From Transformer to Foundation Models
【メタサーベイ】Transformerから基盤モデルまでの流れ / From Transformer to Foundation Models【メタサーベイ】Transformerから基盤モデルまでの流れ / From Transformer to Foundation Models
【メタサーベイ】Transformerから基盤モデルまでの流れ / From Transformer to Foundation Models
 
Deep Learningと画像認識   ~歴史・理論・実践~
Deep Learningと画像認識 ~歴史・理論・実践~Deep Learningと画像認識 ~歴史・理論・実践~
Deep Learningと画像認識   ~歴史・理論・実践~
 
[DL輪読会]data2vec: A General Framework for Self-supervised Learning in Speech,...
[DL輪読会]data2vec: A General Framework for  Self-supervised Learning in Speech,...[DL輪読会]data2vec: A General Framework for  Self-supervised Learning in Speech,...
[DL輪読会]data2vec: A General Framework for Self-supervised Learning in Speech,...
 
【メタサーベイ】数式ドリブン教師あり学習
【メタサーベイ】数式ドリブン教師あり学習【メタサーベイ】数式ドリブン教師あり学習
【メタサーベイ】数式ドリブン教師あり学習
 
【DL輪読会】言語以外でのTransformerのまとめ (ViT, Perceiver, Frozen Pretrained Transformer etc)
【DL輪読会】言語以外でのTransformerのまとめ (ViT, Perceiver, Frozen Pretrained Transformer etc)【DL輪読会】言語以外でのTransformerのまとめ (ViT, Perceiver, Frozen Pretrained Transformer etc)
【DL輪読会】言語以外でのTransformerのまとめ (ViT, Perceiver, Frozen Pretrained Transformer etc)
 
20190619 オートエンコーダーと異常検知入門
20190619 オートエンコーダーと異常検知入門20190619 オートエンコーダーと異常検知入門
20190619 オートエンコーダーと異常検知入門
 
【DL輪読会】SimCSE: Simple Contrastive Learning of Sentence Embeddings (EMNLP 2021)
【DL輪読会】SimCSE: Simple Contrastive Learning of Sentence Embeddings  (EMNLP 2021)【DL輪読会】SimCSE: Simple Contrastive Learning of Sentence Embeddings  (EMNLP 2021)
【DL輪読会】SimCSE: Simple Contrastive Learning of Sentence Embeddings (EMNLP 2021)
 
Swin Transformer (ICCV'21 Best Paper) を完璧に理解する資料
Swin Transformer (ICCV'21 Best Paper) を完璧に理解する資料Swin Transformer (ICCV'21 Best Paper) を完璧に理解する資料
Swin Transformer (ICCV'21 Best Paper) を完璧に理解する資料
 
情報抽出入門 〜非構造化データを構造化させる技術〜
情報抽出入門 〜非構造化データを構造化させる技術〜情報抽出入門 〜非構造化データを構造化させる技術〜
情報抽出入門 〜非構造化データを構造化させる技術〜
 
トピックモデルの基礎と応用
トピックモデルの基礎と応用トピックモデルの基礎と応用
トピックモデルの基礎と応用
 
[DL輪読会]Meta-Learning Probabilistic Inference for Prediction
[DL輪読会]Meta-Learning Probabilistic Inference for Prediction[DL輪読会]Meta-Learning Probabilistic Inference for Prediction
[DL輪読会]Meta-Learning Probabilistic Inference for Prediction
 
最適輸送の解き方
最適輸送の解き方最適輸送の解き方
最適輸送の解き方
 
LDA入門
LDA入門LDA入門
LDA入門
 
ブースティング入門
ブースティング入門ブースティング入門
ブースティング入門
 
トピックモデルの評価指標 Perplexity とは何なのか?
トピックモデルの評価指標 Perplexity とは何なのか?トピックモデルの評価指標 Perplexity とは何なのか?
トピックモデルの評価指標 Perplexity とは何なのか?
 

En vedette

系列ラベリングの基礎
系列ラベリングの基礎系列ラベリングの基礎
系列ラベリングの基礎Takatomo Isikawa
 
条件付き確率場の推論と学習
条件付き確率場の推論と学習条件付き確率場の推論と学習
条件付き確率場の推論と学習Masaki Saito
 
今日からできる構造学習(主に構造化パーセプトロンについて)
今日からできる構造学習(主に構造化パーセプトロンについて)今日からできる構造学習(主に構造化パーセプトロンについて)
今日からできる構造学習(主に構造化パーセプトロンについて)syou6162
 
論文紹介:「End-to-end Sequence Labeling via Bi-directional LSTM-CNNs-CRF」
論文紹介:「End-to-end Sequence Labeling via Bi-directional LSTM-CNNs-CRF」論文紹介:「End-to-end Sequence Labeling via Bi-directional LSTM-CNNs-CRF」
論文紹介:「End-to-end Sequence Labeling via Bi-directional LSTM-CNNs-CRF」Naonori Nagano
 
自然言語処理はじめました - Ngramを数え上げまくる
自然言語処理はじめました - Ngramを数え上げまくる自然言語処理はじめました - Ngramを数え上げまくる
自然言語処理はじめました - Ngramを数え上げまくるphyllo
 
Crfと素性テンプレート
Crfと素性テンプレートCrfと素性テンプレート
Crfと素性テンプレートKei Uchiumi
 
Amazon Athena で実現する データ分析の広がり
Amazon Athena で実現する データ分析の広がりAmazon Athena で実現する データ分析の広がり
Amazon Athena で実現する データ分析の広がりAmazon Web Services Japan
 
「はじめてでもわかる RandomForest 入門-集団学習による分類・予測 -」 -第7回データマイニング+WEB勉強会@東京
「はじめてでもわかる RandomForest 入門-集団学習による分類・予測 -」 -第7回データマイニング+WEB勉強会@東京「はじめてでもわかる RandomForest 入門-集団学習による分類・予測 -」 -第7回データマイニング+WEB勉強会@東京
「はじめてでもわかる RandomForest 入門-集団学習による分類・予測 -」 -第7回データマイニング+WEB勉強会@東京Koichi Hamada
 
シリコンバレーの「何が」凄いのか
シリコンバレーの「何が」凄いのかシリコンバレーの「何が」凄いのか
シリコンバレーの「何が」凄いのかAtsushi Nakada
 

En vedette (11)

系列ラベリングの基礎
系列ラベリングの基礎系列ラベリングの基礎
系列ラベリングの基礎
 
条件付き確率場の推論と学習
条件付き確率場の推論と学習条件付き確率場の推論と学習
条件付き確率場の推論と学習
 
今日からできる構造学習(主に構造化パーセプトロンについて)
今日からできる構造学習(主に構造化パーセプトロンについて)今日からできる構造学習(主に構造化パーセプトロンについて)
今日からできる構造学習(主に構造化パーセプトロンについて)
 
論文紹介:「End-to-end Sequence Labeling via Bi-directional LSTM-CNNs-CRF」
論文紹介:「End-to-end Sequence Labeling via Bi-directional LSTM-CNNs-CRF」論文紹介:「End-to-end Sequence Labeling via Bi-directional LSTM-CNNs-CRF」
論文紹介:「End-to-end Sequence Labeling via Bi-directional LSTM-CNNs-CRF」
 
Signl213
Signl213 Signl213
Signl213
 
自然言語処理はじめました - Ngramを数え上げまくる
自然言語処理はじめました - Ngramを数え上げまくる自然言語処理はじめました - Ngramを数え上げまくる
自然言語処理はじめました - Ngramを数え上げまくる
 
Crfと素性テンプレート
Crfと素性テンプレートCrfと素性テンプレート
Crfと素性テンプレート
 
言語モデル入門
言語モデル入門言語モデル入門
言語モデル入門
 
Amazon Athena で実現する データ分析の広がり
Amazon Athena で実現する データ分析の広がりAmazon Athena で実現する データ分析の広がり
Amazon Athena で実現する データ分析の広がり
 
「はじめてでもわかる RandomForest 入門-集団学習による分類・予測 -」 -第7回データマイニング+WEB勉強会@東京
「はじめてでもわかる RandomForest 入門-集団学習による分類・予測 -」 -第7回データマイニング+WEB勉強会@東京「はじめてでもわかる RandomForest 入門-集団学習による分類・予測 -」 -第7回データマイニング+WEB勉強会@東京
「はじめてでもわかる RandomForest 入門-集団学習による分類・予測 -」 -第7回データマイニング+WEB勉強会@東京
 
シリコンバレーの「何が」凄いのか
シリコンバレーの「何が」凄いのかシリコンバレーの「何が」凄いのか
シリコンバレーの「何が」凄いのか
 

Similaire à CRF を使った Web 本文抽出

Web本文抽出 using crf
Web本文抽出 using crfWeb本文抽出 using crf
Web本文抽出 using crfShuyo Nakatani
 
CRF を使った Web 本文抽出 for WebDB Forum 2011
CRF を使った Web 本文抽出 for WebDB Forum 2011CRF を使った Web 本文抽出 for WebDB Forum 2011
CRF を使った Web 本文抽出 for WebDB Forum 2011Shuyo Nakatani
 
TreeFrog Frameworkの紹介
TreeFrog Frameworkの紹介TreeFrog Frameworkの紹介
TreeFrog Frameworkの紹介ao27
 
Jubatusでマルウェア分類
Jubatusでマルウェア分類Jubatusでマルウェア分類
Jubatusでマルウェア分類Shuzo Kashihara
 
アドテク×Scala×パフォーマンスチューニング
アドテク×Scala×パフォーマンスチューニングアドテク×Scala×パフォーマンスチューニング
アドテク×Scala×パフォーマンスチューニングYosuke Mizutani
 
第9回ACRiウェビナー_日立/島田様ご講演資料
第9回ACRiウェビナー_日立/島田様ご講演資料第9回ACRiウェビナー_日立/島田様ご講演資料
第9回ACRiウェビナー_日立/島田様ご講演資料直久 住川
 
STARC RTL設計スタイルガイドによるVerilog HDL並列記述の補強
STARC RTL設計スタイルガイドによるVerilog HDL並列記述の補強STARC RTL設計スタイルガイドによるVerilog HDL並列記述の補強
STARC RTL設計スタイルガイドによるVerilog HDL並列記述の補強Kiyoshi Ogawa
 
使い捨て python コードの書き方
使い捨て python コードの書き方使い捨て python コードの書き方
使い捨て python コードの書き方Sho Shimauchi
 
jQueryの先に行こう!最先端のWeb開発トレンドを学ぶ
jQueryの先に行こう!最先端のWeb開発トレンドを学ぶjQueryの先に行こう!最先端のWeb開発トレンドを学ぶ
jQueryの先に行こう!最先端のWeb開発トレンドを学ぶShumpei Shiraishi
 
企業におけるSpring@日本springユーザー会20090624
企業におけるSpring@日本springユーザー会20090624企業におけるSpring@日本springユーザー会20090624
企業におけるSpring@日本springユーザー会20090624Yusuke Suzuki
 
とあるFlashの自動生成
とあるFlashの自動生成とあるFlashの自動生成
とあるFlashの自動生成Akineko Shimizu
 
刊行記念セミナー「HBase徹底入門」
刊行記念セミナー「HBase徹底入門」刊行記念セミナー「HBase徹底入門」
刊行記念セミナー「HBase徹底入門」cyberagent
 
最近のストリーム処理事情振り返り
最近のストリーム処理事情振り返り最近のストリーム処理事情振り返り
最近のストリーム処理事情振り返りSotaro Kimura
 
cs-12. 式の抽象化と関数,モジュール,算法(アルゴリズム)
cs-12. 式の抽象化と関数,モジュール,算法(アルゴリズム) cs-12. 式の抽象化と関数,モジュール,算法(アルゴリズム)
cs-12. 式の抽象化と関数,モジュール,算法(アルゴリズム) kunihikokaneko1
 
A Machine Learning Framework for Programming by Example
A Machine Learning Framework for Programming by ExampleA Machine Learning Framework for Programming by Example
A Machine Learning Framework for Programming by ExampleKoji Matsuda
 
Sourcecode Reading Workshop2010
Sourcecode Reading Workshop2010Sourcecode Reading Workshop2010
Sourcecode Reading Workshop2010Hiro Yoshioka
 
2020/11/19 Global AI on Tour - Toyama プログラマーのための機械学習入門
2020/11/19 Global AI on Tour - Toyama プログラマーのための機械学習入門2020/11/19 Global AI on Tour - Toyama プログラマーのための機械学習入門
2020/11/19 Global AI on Tour - Toyama プログラマーのための機械学習入門Daiyu Hatakeyama
 

Similaire à CRF を使った Web 本文抽出 (20)

Web本文抽出 using crf
Web本文抽出 using crfWeb本文抽出 using crf
Web本文抽出 using crf
 
CRF を使った Web 本文抽出 for WebDB Forum 2011
CRF を使った Web 本文抽出 for WebDB Forum 2011CRF を使った Web 本文抽出 for WebDB Forum 2011
CRF を使った Web 本文抽出 for WebDB Forum 2011
 
TreeFrog Frameworkの紹介
TreeFrog Frameworkの紹介TreeFrog Frameworkの紹介
TreeFrog Frameworkの紹介
 
Jubatusでマルウェア分類
Jubatusでマルウェア分類Jubatusでマルウェア分類
Jubatusでマルウェア分類
 
アドテク×Scala×パフォーマンスチューニング
アドテク×Scala×パフォーマンスチューニングアドテク×Scala×パフォーマンスチューニング
アドテク×Scala×パフォーマンスチューニング
 
第9回ACRiウェビナー_日立/島田様ご講演資料
第9回ACRiウェビナー_日立/島田様ご講演資料第9回ACRiウェビナー_日立/島田様ご講演資料
第9回ACRiウェビナー_日立/島田様ご講演資料
 
STARC RTL設計スタイルガイドによるVerilog HDL並列記述の補強
STARC RTL設計スタイルガイドによるVerilog HDL並列記述の補強STARC RTL設計スタイルガイドによるVerilog HDL並列記述の補強
STARC RTL設計スタイルガイドによるVerilog HDL並列記述の補強
 
使い捨て python コードの書き方
使い捨て python コードの書き方使い捨て python コードの書き方
使い捨て python コードの書き方
 
PFI Christmas seminar 2009
PFI Christmas seminar 2009PFI Christmas seminar 2009
PFI Christmas seminar 2009
 
jQueryの先に行こう!最先端のWeb開発トレンドを学ぶ
jQueryの先に行こう!最先端のWeb開発トレンドを学ぶjQueryの先に行こう!最先端のWeb開発トレンドを学ぶ
jQueryの先に行こう!最先端のWeb開発トレンドを学ぶ
 
企業におけるSpring@日本springユーザー会20090624
企業におけるSpring@日本springユーザー会20090624企業におけるSpring@日本springユーザー会20090624
企業におけるSpring@日本springユーザー会20090624
 
とあるFlashの自動生成
とあるFlashの自動生成とあるFlashの自動生成
とあるFlashの自動生成
 
刊行記念セミナー「HBase徹底入門」
刊行記念セミナー「HBase徹底入門」刊行記念セミナー「HBase徹底入門」
刊行記念セミナー「HBase徹底入門」
 
最近のストリーム処理事情振り返り
最近のストリーム処理事情振り返り最近のストリーム処理事情振り返り
最近のストリーム処理事情振り返り
 
cs-12. 式の抽象化と関数,モジュール,算法(アルゴリズム)
cs-12. 式の抽象化と関数,モジュール,算法(アルゴリズム) cs-12. 式の抽象化と関数,モジュール,算法(アルゴリズム)
cs-12. 式の抽象化と関数,モジュール,算法(アルゴリズム)
 
A Machine Learning Framework for Programming by Example
A Machine Learning Framework for Programming by ExampleA Machine Learning Framework for Programming by Example
A Machine Learning Framework for Programming by Example
 
Rokko チュートリアル
Rokko チュートリアルRokko チュートリアル
Rokko チュートリアル
 
Sourcecode Reading Workshop2010
Sourcecode Reading Workshop2010Sourcecode Reading Workshop2010
Sourcecode Reading Workshop2010
 
Startup JavaScript
Startup JavaScriptStartup JavaScript
Startup JavaScript
 
2020/11/19 Global AI on Tour - Toyama プログラマーのための機械学習入門
2020/11/19 Global AI on Tour - Toyama プログラマーのための機械学習入門2020/11/19 Global AI on Tour - Toyama プログラマーのための機械学習入門
2020/11/19 Global AI on Tour - Toyama プログラマーのための機械学習入門
 

Plus de Shuyo Nakatani

画像をテキストで検索したい!(OpenAI CLIP) - VRC-LT #15
画像をテキストで検索したい!(OpenAI CLIP) - VRC-LT #15画像をテキストで検索したい!(OpenAI CLIP) - VRC-LT #15
画像をテキストで検索したい!(OpenAI CLIP) - VRC-LT #15Shuyo Nakatani
 
Generative adversarial networks
Generative adversarial networksGenerative adversarial networks
Generative adversarial networksShuyo Nakatani
 
無限関係モデル (続・わかりやすいパターン認識 13章)
無限関係モデル (続・わかりやすいパターン認識 13章)無限関係モデル (続・わかりやすいパターン認識 13章)
無限関係モデル (続・わかりやすいパターン認識 13章)Shuyo Nakatani
 
Memory Networks (End-to-End Memory Networks の Chainer 実装)
Memory Networks (End-to-End Memory Networks の Chainer 実装)Memory Networks (End-to-End Memory Networks の Chainer 実装)
Memory Networks (End-to-End Memory Networks の Chainer 実装)Shuyo Nakatani
 
人工知能と機械学習の違いって?
人工知能と機械学習の違いって?人工知能と機械学習の違いって?
人工知能と機械学習の違いって?Shuyo Nakatani
 
RとStanでクラウドセットアップ時間を分析してみたら #TokyoR
RとStanでクラウドセットアップ時間を分析してみたら #TokyoRRとStanでクラウドセットアップ時間を分析してみたら #TokyoR
RとStanでクラウドセットアップ時間を分析してみたら #TokyoRShuyo Nakatani
 
ドラえもんでわかる統計的因果推論 #TokyoR
ドラえもんでわかる統計的因果推論 #TokyoRドラえもんでわかる統計的因果推論 #TokyoR
ドラえもんでわかる統計的因果推論 #TokyoRShuyo Nakatani
 
[Yang, Downey and Boyd-Graber 2015] Efficient Methods for Incorporating Knowl...
[Yang, Downey and Boyd-Graber 2015] Efficient Methods for Incorporating Knowl...[Yang, Downey and Boyd-Graber 2015] Efficient Methods for Incorporating Knowl...
[Yang, Downey and Boyd-Graber 2015] Efficient Methods for Incorporating Knowl...Shuyo Nakatani
 
星野「調査観察データの統計科学」第3章
星野「調査観察データの統計科学」第3章星野「調査観察データの統計科学」第3章
星野「調査観察データの統計科学」第3章Shuyo Nakatani
 
星野「調査観察データの統計科学」第1&2章
星野「調査観察データの統計科学」第1&2章星野「調査観察データの統計科学」第1&2章
星野「調査観察データの統計科学」第1&2章Shuyo Nakatani
 
言語処理するのに Python でいいの? #PyDataTokyo
言語処理するのに Python でいいの? #PyDataTokyo言語処理するのに Python でいいの? #PyDataTokyo
言語処理するのに Python でいいの? #PyDataTokyoShuyo Nakatani
 
Zipf? (ジップ則のひみつ?) #DSIRNLP
Zipf? (ジップ則のひみつ?) #DSIRNLPZipf? (ジップ則のひみつ?) #DSIRNLP
Zipf? (ジップ則のひみつ?) #DSIRNLPShuyo Nakatani
 
ACL2014 Reading: [Zhang+] "Kneser-Ney Smoothing on Expected Count" and [Pickh...
ACL2014 Reading: [Zhang+] "Kneser-Ney Smoothing on Expected Count" and [Pickh...ACL2014 Reading: [Zhang+] "Kneser-Ney Smoothing on Expected Count" and [Pickh...
ACL2014 Reading: [Zhang+] "Kneser-Ney Smoothing on Expected Count" and [Pickh...Shuyo Nakatani
 
ソーシャルメディアの多言語判定 #SoC2014
ソーシャルメディアの多言語判定 #SoC2014ソーシャルメディアの多言語判定 #SoC2014
ソーシャルメディアの多言語判定 #SoC2014Shuyo Nakatani
 
猫に教えてもらうルベーグ可測
猫に教えてもらうルベーグ可測猫に教えてもらうルベーグ可測
猫に教えてもらうルベーグ可測Shuyo Nakatani
 
アラビア語とペルシャ語の見分け方 #DSIRNLP 5
アラビア語とペルシャ語の見分け方 #DSIRNLP 5アラビア語とペルシャ語の見分け方 #DSIRNLP 5
アラビア語とペルシャ語の見分け方 #DSIRNLP 5Shuyo Nakatani
 
どの言語でつぶやかれたのか、機械が知る方法 #WebDBf2013
どの言語でつぶやかれたのか、機械が知る方法 #WebDBf2013どの言語でつぶやかれたのか、機械が知る方法 #WebDBf2013
どの言語でつぶやかれたのか、機械が知る方法 #WebDBf2013Shuyo Nakatani
 
数式を綺麗にプログラミングするコツ #spro2013
数式を綺麗にプログラミングするコツ #spro2013数式を綺麗にプログラミングするコツ #spro2013
数式を綺麗にプログラミングするコツ #spro2013Shuyo Nakatani
 
ノンパラベイズ入門の入門
ノンパラベイズ入門の入門ノンパラベイズ入門の入門
ノンパラベイズ入門の入門Shuyo Nakatani
 
[Kim+ ICML2012] Dirichlet Process with Mixed Random Measures : A Nonparametri...
[Kim+ ICML2012] Dirichlet Process with Mixed Random Measures : A Nonparametri...[Kim+ ICML2012] Dirichlet Process with Mixed Random Measures : A Nonparametri...
[Kim+ ICML2012] Dirichlet Process with Mixed Random Measures : A Nonparametri...Shuyo Nakatani
 

Plus de Shuyo Nakatani (20)

画像をテキストで検索したい!(OpenAI CLIP) - VRC-LT #15
画像をテキストで検索したい!(OpenAI CLIP) - VRC-LT #15画像をテキストで検索したい!(OpenAI CLIP) - VRC-LT #15
画像をテキストで検索したい!(OpenAI CLIP) - VRC-LT #15
 
Generative adversarial networks
Generative adversarial networksGenerative adversarial networks
Generative adversarial networks
 
無限関係モデル (続・わかりやすいパターン認識 13章)
無限関係モデル (続・わかりやすいパターン認識 13章)無限関係モデル (続・わかりやすいパターン認識 13章)
無限関係モデル (続・わかりやすいパターン認識 13章)
 
Memory Networks (End-to-End Memory Networks の Chainer 実装)
Memory Networks (End-to-End Memory Networks の Chainer 実装)Memory Networks (End-to-End Memory Networks の Chainer 実装)
Memory Networks (End-to-End Memory Networks の Chainer 実装)
 
人工知能と機械学習の違いって?
人工知能と機械学習の違いって?人工知能と機械学習の違いって?
人工知能と機械学習の違いって?
 
RとStanでクラウドセットアップ時間を分析してみたら #TokyoR
RとStanでクラウドセットアップ時間を分析してみたら #TokyoRRとStanでクラウドセットアップ時間を分析してみたら #TokyoR
RとStanでクラウドセットアップ時間を分析してみたら #TokyoR
 
ドラえもんでわかる統計的因果推論 #TokyoR
ドラえもんでわかる統計的因果推論 #TokyoRドラえもんでわかる統計的因果推論 #TokyoR
ドラえもんでわかる統計的因果推論 #TokyoR
 
[Yang, Downey and Boyd-Graber 2015] Efficient Methods for Incorporating Knowl...
[Yang, Downey and Boyd-Graber 2015] Efficient Methods for Incorporating Knowl...[Yang, Downey and Boyd-Graber 2015] Efficient Methods for Incorporating Knowl...
[Yang, Downey and Boyd-Graber 2015] Efficient Methods for Incorporating Knowl...
 
星野「調査観察データの統計科学」第3章
星野「調査観察データの統計科学」第3章星野「調査観察データの統計科学」第3章
星野「調査観察データの統計科学」第3章
 
星野「調査観察データの統計科学」第1&2章
星野「調査観察データの統計科学」第1&2章星野「調査観察データの統計科学」第1&2章
星野「調査観察データの統計科学」第1&2章
 
言語処理するのに Python でいいの? #PyDataTokyo
言語処理するのに Python でいいの? #PyDataTokyo言語処理するのに Python でいいの? #PyDataTokyo
言語処理するのに Python でいいの? #PyDataTokyo
 
Zipf? (ジップ則のひみつ?) #DSIRNLP
Zipf? (ジップ則のひみつ?) #DSIRNLPZipf? (ジップ則のひみつ?) #DSIRNLP
Zipf? (ジップ則のひみつ?) #DSIRNLP
 
ACL2014 Reading: [Zhang+] "Kneser-Ney Smoothing on Expected Count" and [Pickh...
ACL2014 Reading: [Zhang+] "Kneser-Ney Smoothing on Expected Count" and [Pickh...ACL2014 Reading: [Zhang+] "Kneser-Ney Smoothing on Expected Count" and [Pickh...
ACL2014 Reading: [Zhang+] "Kneser-Ney Smoothing on Expected Count" and [Pickh...
 
ソーシャルメディアの多言語判定 #SoC2014
ソーシャルメディアの多言語判定 #SoC2014ソーシャルメディアの多言語判定 #SoC2014
ソーシャルメディアの多言語判定 #SoC2014
 
猫に教えてもらうルベーグ可測
猫に教えてもらうルベーグ可測猫に教えてもらうルベーグ可測
猫に教えてもらうルベーグ可測
 
アラビア語とペルシャ語の見分け方 #DSIRNLP 5
アラビア語とペルシャ語の見分け方 #DSIRNLP 5アラビア語とペルシャ語の見分け方 #DSIRNLP 5
アラビア語とペルシャ語の見分け方 #DSIRNLP 5
 
どの言語でつぶやかれたのか、機械が知る方法 #WebDBf2013
どの言語でつぶやかれたのか、機械が知る方法 #WebDBf2013どの言語でつぶやかれたのか、機械が知る方法 #WebDBf2013
どの言語でつぶやかれたのか、機械が知る方法 #WebDBf2013
 
数式を綺麗にプログラミングするコツ #spro2013
数式を綺麗にプログラミングするコツ #spro2013数式を綺麗にプログラミングするコツ #spro2013
数式を綺麗にプログラミングするコツ #spro2013
 
ノンパラベイズ入門の入門
ノンパラベイズ入門の入門ノンパラベイズ入門の入門
ノンパラベイズ入門の入門
 
[Kim+ ICML2012] Dirichlet Process with Mixed Random Measures : A Nonparametri...
[Kim+ ICML2012] Dirichlet Process with Mixed Random Measures : A Nonparametri...[Kim+ ICML2012] Dirichlet Process with Mixed Random Measures : A Nonparametri...
[Kim+ ICML2012] Dirichlet Process with Mixed Random Measures : A Nonparametri...
 

CRF を使った Web 本文抽出

  • 1. CRF を使ったWeb本文抽出 2011/7/30 確率の科学研究会 #1 中谷 秀洋@サイボウズ・ラボ
  • 2. アジェンダ • 本文抽出について – Web ページからの本文抽出 – ルールベースでの本文抽出 • 条件付確率場(CRF)について – 系列ラベリング – FOBOS による L1 正則化 • CRF を使った本文抽出
  • 4. Webページは雑多な情報だらけ Web ゲーム 経済 生活 スマホ 映画 PC livedoor ニュース より
  • 5. 「本文」 • さまざまなアプリが「本文」を要求 – 分類、読み上げ、検索、携帯向け変換、etc
  • 7. Web 本文抽出モジュール (中谷 2007) • ExtractContent for Ruby – html から本文抽出を行う Ruby モジュール • http://rubyforge.org/projects/extractcontent/ • オープンソース(BSD ライセンス) – ルールベース • アルゴリズムの概略は次スライド – Google の「セクションターゲット」を利用し、 主要サイトの本文抽出を高精度で行う • 本発表とは関係ないので、詳細は省略 • http://labs.cybozu.co.jp/blog/nakatani/2007/09/web_1.html
  • 8. ExtractContent のアルゴリズム概略 • html をブロックに分割 • ブロックごとにスコアを計算 – 句読点が多い – 非リンクテキストが長い – 本文っぽくないフレーズが含まれている • 連続するブロックを「大ブロック」にまとめる – スコアの高いものをつなげていく – スコアが低いとつながる確率は減衰していく • スコアが最大となる「大ブロック」が本文
  • 11. 「本文」の切れ目がわかりにくい 関係ない話題も 「本文」に入ってしまう 毎日 jp より
  • 12. 一番長いところが本文? 本文より 本文 長い ここも それなり PC Watch より
  • 13. 短い「本文」を見落としがち livedoor ニュース より
  • 15. そもそも「本文」がない場合も ここを「本文」と してしまう Yahoo! Japan トップ より
  • 16. その他の課題 • アプリごとに求める「本文」が異なる – 分類ではコメント不要。全文検索では必要 • パラメータを手動で設定 – 重み、減衰率、閾値など – 最適なものとは言い難い • 当時は機械学習をまだ勉強していなかった……
  • 17. 参考 : CLEANEVAL (2007) • Webページcleaning(本文抽出)のコンテスト – http://cleaneval.sigwac.org.uk/ – 英語と中国語の開発用データセット(約60件ずつ) – 主に「おとなしいデータ」 • 開発データセット120件中、「本文なし」は1件だけ • ファイルサイズの最大は150KB – 現実には 1MB 超える html も珍しくない – 結果 • 中国語は参加1組。精度 18%…… • 英語は9組。精度の最高値は84%
  • 18. 先行研究 • [Marek+ 2007] Web Page Cleaning with Conditional Random Fields – CLEANEVALの優勝チーム • 評価はCLEANEVALの英語データセットのみ – 今回紹介するのとほぼ同じ手法 • 実装後に発見 • というわけで、本発表に新規性はありません
  • 20. ExtractContent のアルゴリズム(再掲) • html をブロックに分割 • ブロックごとにスコアを計算 – 句読点が多い – 非リンクテキストが長い ←特徴量 – 本文っぽくないフレーズが含まれている • 連続するブロックを「大ブロック」にまとめる – スコアの高いものをつなげていく – スコアが低いとつながる確率は減衰 ←転移確率 • スコアが最大となる「大ブロック」が【本文】 ↑ラベル 「系列ラベリング」の問題として定式化できる
  • 21. 系列ラベリング • 系列に対してラベルを付与する – 観測変数と潜在変数が1対1に対応 • 様々な問題を解くための定式化の一つ – 形態素解析 • 品詞推定 隠れ変数 • 分かち書き – 係り受け 代名詞 動詞 不定冠詞 名詞 – 音声認識 I am a pen – DNA解析 観測変数
  • 22. 隠れマルコフモデル (Hidden Markov Model, HMM) • 系列ラベリング手法のための生成モデル • ベイジアンネットワーク – 潜在変数は(1次の)マルコフ連鎖をなす – 観測変数の分布は対応する潜在変数にのみ依存 • 線形オーダーの推論手法がある – Baum-Welch / Viterbi • 教師無し ������1 ������2 ������3 ������������ ������1 ������2 ������3 ������������
  • 23. HMMの推論と予測 ������ ������ ������(������, ������) = ������ ������1 ������ ������������ ������������−1 ������(������������ |������������ ) ������=2 ������=1 • をもとに、 – ������ ������ Θ = ������ ������(������, ������|Θ) を最大化する Θ と、 – ������(������|������) ∝ ������(������, ������) を最大化する ������ が • 動的計画法により求められる ������1 ������2 ������3 ������������ ������1 ������2 ������3 ������������
  • 24. HMM の問題点 (1) • 未知の観測値を扱うことが出来ない – p(X|Y) が値を持たないと計算できない • Y:潜在変数(ラベル)、X:観測変数 • 自然言語処理の場合、訓練データが全て の単語を網羅するのは難しい – 存在しない単語の確率=0
  • 25. HMM の問題点 (2) • 潜在変数を止めたとき、観測変数間は独 立になる • 非独立/同時に起きうる特徴量を扱うこと が難しい – 「テキストが長い」と「句読点が多い」は同時 に起きやすい – 「<ul>タグを含む」と「次のブロックが <li>タグを含む」は非独立
  • 26. HMM の問題点 (3) • 大域的な「最適性」を得られない可能性 – 分岐の少ない経路が選ばれやすい • Label bias と Length bias – 同じラベルを持つ系列の続く確率が指数的に減衰 するため、「長い本文」が選ばれにくい • 局所的な条件付き確率の積によって尤度を求めるため [Kudo+ 2004] より
  • 27. 条件付き乱数場 (Conditional Random Fields, CRF) [Lafferty+ 2001] • 系列ラベリングのための識別モデル – マルコフ確率場 / 対数線型モデル – 形態素解析器 Mecab(Kudo+ 04)で利用 • 線形オーダーの推論手法がある – Linear-chain CRF の場合 • HMMより最適な系列を得やすい • 教師有り
  • 28. CRFのモデル 簡便性のために こちらのモデルで説明 ������0 ������1 ������2 ������3 ������������ ������������+1 linear-chain CRF と言えば ������ 現在はこちらが主流
  • 29. モデル • (バイナリ)特徴量 – ������ ������, ������ = (������ ������������−1 , ������������ , ������ ������������ , ������������ ) • 例:������������ = 1 if ������������ が大文字で始まる & ������������ が”名詞” • 対数線型モデル – ������ ������ ������; ������ ∝ exp ������ T ������ ������, ������ • ������(������, ������)を経由せず、������(������|������)を直接モデリング • 目的関数 : 負の対数尤度 – ������ = − ������,������ ∈������ log ������ ������ ������; ������ where T:訓練データ集合
  • 30. 解き方 • (1) 勾配を使ってなにがしかの最適化 ������������ =− {������ ������, ������ − ������������′ [������ ������′, ������ ]} ������������ ������,������ ∈������ – 準ニュートン法、勾配法 • ������������′ は動的計画法で求められる • (2) Gibbs サンプリング – ������(������������ |������−������ , ������; ������) からのサンプリングを繰り返す • linear-chain でない CRF の場合 • この研究会的にはこっちでしょうけど(苦笑)
  • 31. HMM と CRF の相違点 Hidden Markov Model Conditional Random Fields ベイジアンネット /生成モデル マルコフ確率場 /識別モデル 教師無し 教師有り ������(������������ |������������ )で記述できる特徴量 特徴量設計の自由度が高い ������(������, ������)から������(������|������)を計算 ������(������|������)を直接計算 ラベリングの計算量はどちらも O(特徴量数×状態数^2×系列長) だが、 CRFは特徴量数が爆発する傾向あり(bigramの特徴量=状態数^2) [Sutton+ 06]より
  • 33. Linear-chain CRF の Python 実装 • 簡易な実装 – 下図のモデルを採用 – 長距離の特徴量は扱えない • 実用と言うより勉強用 – numpy / scipy でできる限り処理しているが、遅い • Python の行列・科学計算ライブラリ – CRF 処理部は 200行程度なので読みやすい、かも? • https://github.com/shuyo/iir/blob/master/sequence/crf.py
  • 34. 推論 • 次の2つをサポート – (1) 準ニュートン法 • BFGS を用いて目的関数を最大化 • scipy.optimize.fmin_bfgs – (2) 最急降下法 + L1 正則化 • 学習率は手動で調整…… • FOBOS(Duchi+ 09) による L1 正則化 – SGD では特徴量がつぶれにくい
  • 35. L1 正則化 • 目的関数に「ペナルティ項」を付加 L′ = − log ������ ������ ������; ������ + ������ ������ 1 ������,������ ∈������ – 過学習を抑える – 効果の小さいパラメータを0に落とす • 推論と同時に特徴選択できる • 特徴を手当たり次第つぎ込める CRF と相性がよい • ������ ������ 1 は微分不可なため、一般には扱いにくい – FOBOS(Duchi+ 09) はオンライン正則化を容易に実現
  • 37. CRFを使ったWeb本文抽出 (中谷 2010, 2011) • 系列ラベリングの問題に定式化 – htmlを閉じタグ/<br>で分割、ブロックの系列に – ブロックの系列に12種類のラベル付けを行う • start, stop, head, header, menu, title, body, comment, linklist, cm, form, footer • CRFが本文抽出タスクに有用かどうかの実験 – ヒューリスティックな工夫はしない • script/style タグの除去のみ例外として行っている • Google AdSense Section Targetは無視 • http://github.com/shuyo/iir/blob/master/extractcontent/webextract.py
  • 38. 特徴量 • 特徴量設計(1678個) – bigram(ラベルの組) – タグ(a/p/div/...)の有無 – キーワードの有無 • Copyright/会社概要/利用規約など – 句読点、日付、アフィリエイトリンク – テキスト長、リンクされているテキスト長
  • 39. データ作成方法 • html ファイルに分類タグを打つ – 手作りなので、データ数がとても少ない…… – アノテーションの揺れも(多分)少なくない <img src="/images08/common/icn_bookmark_e.gif" alt="このエントリ をBuzzurlに登録" title="このエントリをBuzzurlに登録" width="16" height="16" /></a> <!-- extractcontent_body --> ← ここから下は [body] 部 </p></div><div class="ThmbSet256"><div class="BodyTxt"><p> トヨタ自動車が、マツダからハイブリッド車(HV)の技術の供与を……
  • 40. 結果 訓練データ テストデータ 件数 20 5 総系列長 4341 709 BFGS 正解数 3505 400 正解率 80.7% 56.4% FOBOS L1 正解数 3424 397 (λ=1) 正解率 78.9% 56.0% 有効特徴数 1676 / 1678 FOBOS L1 正解数 3520 401 (λ=10) 正解率 81.1% 56.6% 有効特徴数 1630 / 1678 FOBOS L1 正解数 3488 401 (λ=20) 正解率 80.4% 56.6% 有効特徴数 1323 / 1678
  • 41. 実行例(Yahoo! Sports) [head] <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" " [header] <body class="yj950-2"> <div id="wrapper"> <!--- header ---> [header] <div class="yjmth"> <div class="yjmthproplogoarea"><a href=htt [header] <div class="yjmthloginarea"><strong><a href="https://login.yaho : ( 29 blocks) [header] <li title="ニュース" class="active_click"><a href="/news"> [header] <li title="コラム" class="end"><a href="/column/">コラム</ [header] <!---/globalnavi---> <div id="contents-header"> <div id="cat-pa [title] <!--- body ---> <div id="contents-body"> <span class="yj-guid" [title] <em>サンケイスポーツ - 2009/7/9 7:52</em> </div> [body] <!----- article -----> <div class="Article clearfix"> <table [body] <p> (セ・リーグ、巨人3x-2横浜、11 [body] 一塁ベースを回っても、坂本は下を向いたま 関連記事へのリンクを : ( 5 blocks) linklist として正しく分類 [body] 「チームにとっても彼にとっても大きな本塁 [body] 現役時代に何度もスランプを味わった原監督 [body] 【関連記事】<br /> [linklist] ・<a href="http://www.sanspo.com/baseball/news/090709/bsa09070 [linklist] ・<a href="http://www.sanspo.com/baseball/news/090709/bsa09070 [linklist] ・<a href="http://www.sanspo.com/baseball/news/090709/bsa09070 : ( 3 blocks) [linklist] <!-- anemos --> <!-- /anemos --> <div class="Kejiban"> <im
  • 42. 実行例(はてなダイアリー) [head] <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> [header] <body> <div id="simple-header"> <a href="http://www.hatena. : ( 9 paragraphs) [header] <p class="sectionheader"><span class="sectioncategory"><a hre [body] <p><a class="keyword" href="http://d.hatena.ne.jp/keyword/Py [body] <p>でも以下のように書くと、<a class="keyword" hr [body] <pre class="syntax-highlight"> <span class="synComment"># A, B, コメントを : ( 2 paragraphs) 正しく判別 [body] <pre class="syntax-highlight"> labels = [&quot;<span class="syn [body] <p>そのせいで以下のようなハマりパターンも [body] <pre class="syntax-highlight"> <span class="synStatement">def</ [comment] <p class="sectionfooter"><a href="/n_shuyo/20100629/python"> [comment] <!-- google_ad_section_end --> </div> [comment] <form id="comment-form" method="post" action="/n_shuyo/comment : ( 14 paragraphs) [comment] <div class="refererlist"> <div class="caption"> [comment] <div class="refererlist"> <div class="caption"><a [linklist] <ul> <li><a href="http://d.ha [linklist] <div class="refererlist"> <div class="caption : ( 121 paragraphs)
  • 43. 実行例(Yahoo! Japan トップ) [head] <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" " [menu] <body> <div id="wrapper"> <div id="header"> <div id="masthead" [menu] <ul id="mhicon"> <li id="mhi1st"><a title="Yahoo! BB" href="r/m 記事見出しや抜粋を [menu] <li id="mhi2nd"><a title="オークション" href="r/mauc">オ : ( 30 paragraphs) linklist として正しく分類 [menu] <li id="clr5"><a href="r/header/color/5/*-http://www.yahoo.co. [menu] <li id="clr6"><a href="r/header/color/6/*-http://www.yahoo.co. [menu] <p class="help"><a href="r/mht">ヘルプ</a></p></div> </div> < [linklist] <hr class="separate"> <div id="contents"> <div id="toptxt"> <u [linklist] <li id="toptxt2"><a href=s/69879>全国約1000件の花火大莨 [linklist] <li id="toptxt3"><a href=s/69950>新機能は?「ポケモン : ( 150 paragraphs) [linklist] <li><a title="Yahoo!ノートパッド" class="second" href="r/p [body]とラベリングされた [linklist] <li><a title="Yahoo!ブリーフケース" class="third" href="r ブロック無し [linklist] <div id="pbindexbg"><div id="pbindex"> <div id="pbcalendar"><di [footer] </tr> <tr> <td><a href="f/pbox/clndr/06/27/*-http://calendar.ya [footer] <td><a href="f/pbox/clndr/06/28/*-http://calendar.yahoo.co.jp/? [footer] <td><a href="f/pbox/clndr/06/29/*-http://calendar.yahoo.co.jp/? : ( 101 paragraphs) [footer] <li><a href="r/fdi">免責事項</a></li></ul> [footer] <address>Copyright (C) 2010 Yahoo Japan Corporation. All Rights [footer] </body> <!--http://ard.yahoo.co.jp/SIG=15blcke9p/M=300330001.
  • 44. 実行例(しょこたんブログ) [head] <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" " [menu] <body id="mainIndex"> <!--bodyTop--> <ul id="amebaBar"> <li id [menu] <li><a href="http://pigg.ameba.jp/" title="ピグ">ピグ</a></ [menu] <li class="last"><a href="http://blog.ameba.jp/ucs/entry/srvent : ( 167 paragraphs) [menu] <p><a href="http://blog.ameba.jp/reader.do?bnm=nakagawa-shoko"> [menu] <!--//.readerMainLink--> <div class="page articlePaging"> <a ti 手強すなよ…… [menu] <!--TopPagingBottom--> <div class="entry new"> <div class="ent [cm] <!--//.entry_head--> <h3 class="title"><!-- google_ad_s [cm] <span class="theme">テーマ:<!-- google_ad_section_s [cm] <DIV>ぽこ(&lt;●&gt;&lt;●&gt;)メポぽん</DIV><DIV>&nbsp; : ( 33 paragraphs) [cm] <!--//#footer_ad--></div> [cm] <!--//#sub_main--> </div><!--//#main--> </div> [cm] <!--//#subFirstContentsArea--> </div> [linklist] <!--//#firstContentsArea--> <div id="sub_b"> <!--subBTop--> <!-- [linklist] “中川翔子物語~空色デイズ~”連載中<br [linklist] 原明日美 (著)<br> : ( 53 paragraphs) [linklist] <li><a href="http://ameblo.jp/nakagawa-shoko/theme-10014191488.
  • 45. まとめ • CRFを使ったWeb本文抽出を実装 – CRFは本文抽出タスクにも有効っぽい? • というには、まだまだ訓練が足りない…… • L1 の効果を見るには特徴量がまだ少ない – 長距離の特徴を扱えれば指数的に増やせる – 有効素性を減らすことは確かにできそう
  • 46. 発展(課題) • データを増やす • アノテーションを見直す • 素性を増やす(増やせるように作り直す) – ライブラリを使えばいい • Gibbs サンプリングで解いてみる – non linear-chain なモデルも試してみたい? • C++ などでまじめに書いて実用化を狙う
  • 47. References • [Lafferty+ 2001] Conditional Random Fields: Probabilistic Models for Segmenting and Labeling Sequence Data • [Sutton+ 2006] An Introduction to Conditional Random Fields for Relational Learning • [Kudo+ 2004] Conditional Random Fieldsを用いた日本語 形態素解析 • [Duchi+ 2009] Efficient Online and Batch Learning using Forward Backward Splittin • [Marek+ 2007] Web Page Cleaning with Conditional Random Fields