Matter Mind Meaning

思ったことを忘れてしまわないように書き留める

NLTK: 単語数をカウント

単語数をカウントすれば、ストップワードやレアワードの辞書を簡単に作ることが出来る。nltkではこれを行う関数が用意されている。

>>> from nltk import FreqDist

>>> text = "a a a b b a a c c d d e e w w a a z z d s q a f a a s w q f x a z a a a w e q d x x a s w a a a a b b b x s s s j y r r d a a z a a a a "

>>> fd = FreqDist(text)

>>> fd

FreqDist({' ': 68, 'a': 25, 's': 6, 'b': 5, 'd': 5, 'w': 5, 'x': 4, 'z': 4, 'e': 3, 'q': 3, ...})

>>> fd.most_common(5)

[(' ', 68), ('a', 25), ('s', 6), ('b', 5), ('d', 5)]

 

なんと便利だろう!!

 

参考文献

1. Language Processing and Python

 

 

論文紹介:Natural Language Processing from (almost) Scratch.

概要

フィードフォワードニューラルネットワークを用いて品詞タグ付け、チャンキング、固有表現抽出、意味役割付与のタスクに取り組む。意味役割付与以外は同じモデルを用いる。入力素性を作るための工学的負担は最小限にする。ラベル付けされていないデータを用いた言語モデル学習を事前に行うことにより性能が上がる。さらにタスク間でパラメタを共有してマルチタスク学習を行うことにより性能がいっそう上がる。

 

背景

はじめに各タスクを説明する。品詞タグ付けでは各単語に名詞、形容詞、動詞などといった統語的役割を付与する。

 

チャンキングは単語を統語的により大きな単位(チャンク)にまとめることである。例えば名詞句や動詞句を作る。各単語はチャンクの始まりであるかチャンクの中にあるか(あるいは、チャンクの終わりであるかなど。タグの体系にはIOB1、IOB2など色々と提案されている)でタグ付けされる。

 

固有表現抽出では文中の表現にPERSON, COMPANY, LOCATIONなどのカテゴリを割り当てる。チャンキングと同じように各単語はカテゴリの始まりであるか終わりであるかなどがタグ付けされる。

 

意味役割付与は文中の統語的単位に意味役割を付与することを目標とする。意味役割は述語に対する項の論理的関係である。Agent, experiencer, theme, goal, sourceなどが考えられる。他にも場所や時間などを述語の項として考える場合もある。単語の意味役割は述語に対して定められるため、ひとつの単語が複数の述語に対して別々の意味役割を持つこともあり得る。述語が与えられた時の各単語の意味役割タグを付与することがタスクの目標である。

 

これらのタスクは自然言語理解という大きな目的を取り組みやすいように分割したものであると考えることが出来る。実世界での応用の際には、それぞれのタスクに特化したモデルを統合しなければならない。ところが、各モデルは特定のタスクに最適化しすぎているため、それらをうまく組み合わせることは必ずしも容易ではない。実際、入力素性がオーバーエンジニアリングされていると、入力文に対してそれぞれのモデルに入力する素性を別々に計算することが大きな負担になる。

 

提案されている手法では同じ入力素性を用いる同じニューラルネットワーク複数のタスクを解かせる。これによりタスクを統合することが圧倒的に簡単になるだけでなく、あるタスクの教師データが提供する情報を別のタスクを解くときに役立てることが出来るようになる。

 

手法

単語ごとに離散的な素性が入力される。最も基本的な素性はその単語の辞書におけるインデックスである。もちろんインデックスは単語の情報をほとんど含まない。そこで紹介論文では単語インデックスに対応する密な実数ベクトルをルックアップテーブルに保存しておき、インデックスはルックアップテーブルのベクトルに変換されてからフィードフォワードニューラルネットワークに入力される。このような実数ベクトルは単語が持つ情報の分布的表現と呼ばれる。分布的表現は乱数を初期値とし、誤差逆伝播による学習で値が変化する。

 

インデックスの他にも単語の持つ情報を表す離散的な素性が考えられる。それらの素性に対しても分布的表現を割り当てて学習させることが出来る。一般にK種類の離散的素性があった場合、K個の実数ベクトルが求められる。これらは連結されて一つのベクトルとなる。これが単語の情報を総合的に表す分布的表現となる。

 

入力は複数の単語からなる。各単語の分布的表現が並び順に連結してベクトルを作る。このベクトルがニューラルネットワークの入力層である。ネットワークは入力された単語列の中心にある単語のタグを予測する。例えば、品詞タグ付けを行うことを考える。このとき、入力と期待される出力の例を以下に示す。

 

入力: cat sat on the mat

出力:preposition

 

すなわち、単語列の中心には単語 on があるので、品詞タグは preposition となる。すでに説明したように、実際にはニューラルネットワークに入力されるのは単語列を表す実数ベクトルである。また、出力層は品詞タグの集合上の確率分布を表すベクトルとなる。

 

入力層から出力層を求めるまでの計算方法は次の通り。入力層ははじめに行列を掛け合わせられたあと、非線形関数により変換され、中間層のベクトルとなる。中間層に行列を掛け合わせたベクトルを正規化すると出力層のベクトルとなる。出力層は尤度により評価される。このとき、他の単語に対する出力値も考慮に入れる。従って、目標関数は交差エントロピー誤差関数よりも手の込んだものになっている。これについて詳細は省くが、条件付き確率場の最尤推定と同等と考えて良い。

 

品詞タグ付け、チャンキング、固有表現抽出はすべて同じ入力素性、同じモデルを用いて取り組むことが出来る。それぞれのタスクで別々に(つまりパラメタの共有を行わずに)学習を行った結果を以下に示す。意味役割付与については、ネットワークの構造が若干異なる(ただし、分布的表現などのパラメタの形は共通している)ため説明の簡単のため、本記事では省略する。

 

品詞タグ付け(精度):ベンチマーク 97.24 提案手法(基本)96.37

チャンキング(F1):ベンチマーク 94.29 提案手法(基本)90.33

固有表現抽出(F1):ベンチマーク 89.31 提案手法(基本)81.47

 

提案手法はベンチマークより性能が劣っていることがわかる。紹介論文の面白い所は、ここから教師無し言語モデル学習とパラメタ共有によるマルチタスク学習を導入することで性能を上げていき、ベンチマークに匹敵する結果を得ていることである。

 

まず、言語モデル学習を事前に行うことで性能が上がることを述べる。言語モデル学習を使うことのモチベーションを直感的に理解するために、上述の教師ありだけの学習手法(意味役割付与)で獲得された最終的な単語の分散表現をみてみよう。以下にいくつかの単語に対して分布表現が距離的に最も近い5単語を示す。

 

・FRANCE: PERSUADE, FAW, BLACKSTOCK, GIORGI, SHAHEED

・JESUS: THICKETS, SAVARY, SYMPATHETIC, JFK, KHWARAZM

XBOX: DECADENT, DIVO, VERUS, OXIDE, URBINA

 

分布的表現が近い単語は意味的には似ていないことがわかる。これは意味が似ている単語はタスクに対して似たように振る舞うべきだという通念に反する。翻って、意味が似ている単語同士の分布的表現が近くなるように学習を行うことで、モデルの汎化能力が高まることが期待される。そこで、言語モデル学習を行ってみようというわけである。

 

言語モデル学習の目的関数は一般的な交差エントロピー関数では無く、マージン損失関数である。マージン損失関数は入力として与えられた単語列のランクが、その単語列の中心の単語を他の任意の単語で置き換えたときのランクよりもあるマージン以上で大きくなるようことを奨励する。これは人間の振る舞いにより近いモデルといえる。何故なら、人間もある単語がその文脈で出現する確率を一々計算しているわけではなく、出現しやすい上位の単語に対して見積もりを立てているだけだからである。

 

 言語モデル学習が終わった時点でのパラメタを各教師あり学習のパラメタの初期値とする。このような芸当が出来るのは、あらゆるタスクに同じモデルを用いているからである。論文では、言語モデルの学習コーパスの規模として小さいもの(LM1)と大きいもの(LM2)を用意し比較している。言語モデル学習後に各教師有り学習を行ったときの評価結果を以下に示す。

 

品詞タグ付け(精度):ベンチマーク 97.24 提案手法(基本+LM1)97.05 提案手法(基本+LM2)97.10

チャンキング(F1):ベンチマーク 94.29 提案手法(基本+LM1)91.91 提案手法(基本+LM2)93.65

固有表現抽出(F1):ベンチマーク 89.31 提案手法(基本+LM1)85.68 提案手法(基本+LM2)87.58

言語モデル学習により性能が向上していることが認められる。しかも、コーパスの規模を大きくした方が性能の向上が大きい。これは言語モデルが様々なタスクに役に立つ単語の本質的な情報を表現しているためであると考えられる。

単語の本質的な情報とは正に単語の「意味」であるといえる。これを裏付けるように、言語モデル学習により獲得された分布的表現は意味が似ているほど近いものになっている。例えばFRANCEという単語と最も近い5単語はそれぞれAUSTRIA, BELGIUM, GERMANY, ITALY, GREECEである。

 

さらに性能を上げる方法として登場するのがマルチタスク学習である。これはそれぞれのモデル間でパラメタを共有して学習を行うことである。そうすることで各モデルは他のモデルが発見した統計的情報を「借りて」、自分のタスクを解くのに役に立てることが出来ると期待される。提案されているネットワークでこれを行うことは極めて自然である。くどいようだが、こんなことが可能なのは全く同じモデルで複数のタスクに取り組めるような汎用的な設計がなされているからに他ならない。結果を以下に示す。

 

品詞タグ付け(精度):ベンチマーク 97.24 提案手法(基本+LM2+マルチタスク)97.22

チャンキング(F1):ベンチマーク 94.29 提案手法(基本+LM2+マルチタスク)94.10

固有表現抽出(F1):ベンチマーク 89.31 提案手法(基本+LM2+マルチタスク)88.62


マルチタスク学習を行うことで、ベンチマークに匹敵する性能が得られることがわかる。ベンチマークは人手で徹底的にエンジニアリングされた入力素性を用いていることに注意する。これに対して提案モデルでは、単純な情報のみを事前に与えてあとはモデルが自動的に表現を学習するようにしている。

 

ちなみに、入力素性にエンジニアリングを加えることでベンチマークの性能を上回ることを論文では示している。

 

参考文献

 R. Collobert, J. Weston, L. Bottou, M. Karlen, K. Kavukcuoglu and P. Kuksa. Natural Language Processing (Almost) from Scratch. Journal of Machine Learning Research, 12:2493- 2537, 2011.

ニューラル言語モデルを高速化する2つの方法

ニューラル言語モデルニューラルネットワークによりn-gram確率を予測するモデル)は、2つの工夫をすることで、テスト時(学習が終わって、モデルを実際に使う段階)に高速化が可能である。

 

(1)出力層の正規化

ニューラル言語モデルは出力層にsoftmax関数を使用する。このとき確率を正しく計算するためには正規化係数を計算しなければならないが、計算量は語彙数に比例し、この部分が計算時間の主なボトルネックとなる。

 

もしもsoftmax関数への入力がはじめから正規化されているならば、任意の単語の出現確率を他の単語に関して考慮すること無しに求めることが出来る。このためには訓練時に正規化係数 Z(x_i) が1になることを奨励するように目的関数 L を定義すればよい。

 

                             L = ∑_i [ log(P(x_i)) - α log^2(Z(x_i)) ]

 

(2)中間層のメモリ・ルックアップ

さらに、ニューラルネットワークの中間層の値を入力n-gramのそれぞれに対して事前に計算してメモリに保存しておけば、使いたいときには単にメモリを参照すれば良いだけになり、計算時間を大幅に短縮できる。このテクニックはフィードフォワードニューラルネットワークにのみ使える。

 

参考文献

J. Devlin, R. Zbib, Z. Huang, T. Lamar, R. Schwartz, and J. Makhoul. Fast and robust neural network joint models for statistical machine translation. In ACL, 2014.

論文紹介: Modeling Events through Memory-based, Open-IE Patterns for Abstractive Summarization

概要

抽象的要約(Abstractive Summarization)は文の要点をみつけ、短い文で言い表すタスクである。ニュース記事の抽象的要約のためには、ひとつのイベントに言及するたくさんの文をまとめて抽象的に表すことが必要である。紹介論文では、文から抽出されるイベントの表現(イベントパターン)を大量に集めてメモリ上に保存し、似通ったイベント表現のクラスタをイベントの抽象的表現とする。抽象的要約文を生成する場合は、元の文が属するクラスタを探し、次にそのクラスタに含まれる代表的なイベントパターンを選んで出力する。提案されたメモリに基づく手法は、ヒューリスティックに基づく手法、文圧縮に基づく手法と同一のコーパスを用いて比較され、人間の評価において可読性、有用性(情報の有用さ)がともに最高だった。

 

背景

情報抽出を超えた文書要約には、意味的表現を単語や句の表面的なレベルよりも抽象化し、その抽象化された意味表現から要約が生成されることが求められる。

 

ニュース記事で現れる文を抽象化するには、文からイベントに言及した表現(イベントパターン)を取り出し、イベントパターンを大量に集めてクラスタリングを行う。要約をするときは、はじめに与えられた文のイベントパターンが属するクラスタを同定する。次にそのクラスタに対応するイベントから簡潔なイベントパターンが選ばれ、簡潔な文に変換されて出力される。実際には、イベントパターン自体が文として完全であることを意図して作られる。従って、イベントパターンがそのまま要約文として出力される。

 

イベントパターンのクラスタを用いた意味表現の有用性は、イベントパターンやクラスタの質に左右される。多くの場合、イベントパターンは依存構造木の部分木を取り出すことで抽出される。具体的には知識ベースにおいて関係を持つ2つの実体に言及した文をみつけ、依存構造木でその2つの実体を指すノードを結ぶ経路をイベントパターンとして取り出す。この手法の問題は、抽出されたイベントパターンが文法的に正しいことが保証されないことである。これを解決するために、紹介論文ではニュース記事の見出しなど、文法的に正しいことが予めわかっている文をそのままイベントパターンとして保存する。

 

手法

抽象的要約においては、ヒューリスティックに基づく手法、文圧縮に基づく手法、メモリに基づく手法が考えられる。3つの手法は共に元の文を依存構造木として表現し、その部分木の集合の中からイベントを簡潔に表現しているものを選ぶ。

 

ヒューリスティックに基づく手法は、品詞タグの正規表現や、依存構造木から部分木を取り出す手書きルールなどを用いてイベントパターンを取り出す。この手法は関係抽出の分野でよく使われる。紹介論文で検討されている特定のヒューリスティック手法では、はじめに依存構造木上で2実体を結ぶ最小全域木をみつけ、そこから依存関係や品詞情報に着目した手書きルールを用いて部分木を拡大していく。

 

文圧縮に基づく手法は、依存構造木の各辺に重みを付け、いくつかの制約を満たす中で最小の重み和を持つ部分木を探す。既存手法とは別に紹介論文で提案されている新たな制約には、木の辺数(3から6)、実体が言及されていること、文節の主語が残っていること、木がひとつの文節に含まれることなどがある。

 

メモリに基づく手法は上述した2つの手法が持つ、イベントパターンの文法的正しさが保証されないという問題を克服する。あらかじめニュース記事の見出しなどの依存構造木をイベントパターンとしてメモリに保存しておく。入力文からイベントパターンを取り出したいときには、入力文の依存構造木の部分木で、メモリ上に存在するもの全てを取り出す。

 

イベントパターンの保存や検索を効率的に行うために幾つかの工夫がなされる。まず単語の表層を人名、場所、組織などのカテゴリに変換する。次に依存構造木を文字のベクトルとして表して、全てのイベントパターンをトライ木に保存する。

 

実験

実験では、抽象的要約の3つの手法が比較された。同じコーパスから各手法でイベントパターンを集める。次に同じアルゴリズムを使ってクラスタリングを行う。3つの手法で異なるのは文からどのようにしてイベントパターンを取り出すかである。

 

コーパスは2008年から2013年までにWeb上のニュース記事をクロールして得られたものを使う。事前処理として、品詞タグ付け、依存構造解析、共参照解析、FreeBaseおよびWikipediaを用いた実体リンク付けが行われた。コーパス中の文書は公開時間の近さと使用されている単語の種類によってグループ化された。

 

クラスタリングの手順は以下の通りである。

 

  1. コーパスからイベントパターンを全て取り出す
  2. 全てのニュース記事のグループCollと全ての実体の集合E(Eの例は{Jhon Smith, Mary Brown}など)に対して、Eの集合の要素である実体すべてに言及しているイベントパターンを集める。これらのイベントパターンは同じイベントに言及している可能性が高い
  3. クラスタリングアルゴリズムを走らせ、手順2で得られた各イベントパターン集合で互いに共起することが多いイベントパターンが同じクラスタに属するように学習する。学習アルゴリズムはNoisy-ORベイジアンネットワークを用いる

 

要約文生成の段階の手順は以下の通りである。ただし、一部簡単化してある。

 

  1. ニュース記事の見出しまたは最初の文が与えられた時、そこからイベントパターンを取り出す
  2. イベントパターンが属するクラスタを同定する
  3. クラスタを代表するイベントパターンを取り出す
  4. イベントパターンの文のうち、単語が単語のカテゴリに変換されているものを、入力文で対応する単語に置き換える

 

手法の性能の評価には2013年に集められた4万ほどのニュース記事が使われた。ニュース記事の文から各手法により簡潔な要約文が生成され、人間の評価者によって可読性、有用性(情報の有用さ)が5段階(高いほどよい)で評価された。評価の平均は以下の通りであった。

 

  • ヒューリスティック法:可読性3.95、有用性3.07
  • 文圧縮法:可読性3.98、有用性2.35
  • メモリ法:可読性4.20、有用性3.70

 

従って、論文で提案されていたメモリ法が他の手法を上回っていることがわかる。

 

参考文献

[Pighin et al. 2014] Pighin, D., Cornolti, M., Alfonseca, E., and Filippova, K. (2014). “Modelling Events through Memory-based, Open-IE Patterns for Abstractive Summarization.” In Proceedings of the 52nd Annual Meeting of the Association for Computational Linguistics (Volume 1: Long Papers), pp. 892–901 Baltimore, Maryland. Association for Computational Linguistics.

論文紹介:Tagging the Web: Building a robust web tagger with neural network

概要

フィードフォワードニューラルネットワークを用いてWebテキストに品詞タグ付けを行う。ニューラルネットワークへの入力はWebテキストから学習された単語の分散表現と、スパースなn-gram に基づく素性が使われる。SANCL2012 shared taskによる評価では、2種類の素性を両方使うことにより、n-gram素性だけを使った場合に比べて1%ほど高い93.15の精度を得た。

 

背景

Webから情報を抽出する技術は自然言語処理の重要な研究分野であり、多くのタスクは品詞タグ付けを根本的な事前処理として必要とする。しかし、最高精度の品詞タガーは特定のコーパスに最適化されており、Webテキストに対する精度は十分ではない。

 

Webテキストは多様性に富み、品詞タグが付与された教師データよりも、アノテーションを受けていない生のデータの方が圧倒的に多い。従って、Webテキストに対する品詞タグ付けの精度を上げるためには、ラベル付されていないデータが持つ情報を積極的に活用することが必要と考えられる。

 

テキストデータの持つ統計的性質を教師なしで取り出す技術として、単語の分散表現が注目される。これは、各単語の他の単語との共起情報を、密なベクトル空間にマッピングする技術である。マッピングの方法としては、行列分解や、ニューラルネットワーク、トピックモデルなどが使われる。

 

手法

紹介論文では、まず単語の分散表現をWebテキストから学習し、次にその表現を用いて品詞タグ付けの教師あり学習を行う。

 

単語の分散表現はRBMを用いたn-gram言語モデルの推定によって学習される。このとき、入力層は一般的な離散表現ではなく、実数ベクトルを用いる。これにより、入力層の次元を大きく抑えることが可能になる。この入力層の実数ベクトルが単語の分散表現に対応する。4-gramをn-gramとして選択すると性能が最も良くなる。

 

品詞タグ付けの教師あり学習は、フィードフォワードニューラルネットワークにより行われる。入力層はn-gramの各単語のベクトル表現および既存手法で提案されたスパースな素性である。スパースな素性は紹介論文ではフォーカスされていない。中間層では(ニューラルネットワークの常として)入力層の値が非線形に混ぜ合わされる。出力層では、各ユニットが単語と品詞の全組み合わせのひとつを表す。最も出力の大きいユニットが、モデルが最も自信を持つ品詞タグ付けと解釈される。

 

品詞タグ付けは次のように行われる。まず、出力層のユニットの値が最大である単語・品詞ペアが選ばれ、そのペアに関しては品詞が決定する。次に、残りの単語に関して同じことを行う。これを単語が無くなるまで繰り返す。このような決定法はEasy First Taggingと呼ばれる。単に決定を行うだけでなく、それぞれの決定(この場合は各単語の品詞タグ付け)を行う順序までもシステムに任せるという考え方である。

 

学習はバックプロパゲーションによる。評価関数は、次式で定義されるマージン損失関数である。

 

            max(0, 1 + nn(w’,t’) - nn(w^,t^))   … (1)

 

ここで、単語・品詞ペア(w’,t’)はモデルと教師が食い違うペアの中で、モデルが最大の評価をしたものである。ペア(w^,t^)はモデルと教師が一致するペアの中で、モデルが最大の評価をしたものである。nn(w’,t’), nn(w^,t^)はニューラルネットワークがそれぞれのペアに対して行った評価を表す。実数1はマージンの値である。すなわち、この評価関数は正しい予測と間違っている予測との間の評価の差が1以上ならば満足し(0を出力)、1以下ならば文句(正の値を出力)を言う。

 

実験

実験ではSANCL2012 shared taskに取り組み、性能を評価した。このタスクはWebドメインで汎用的に使える構文解析システムを開発することを目的とする。ラベル付けされたデータとラベル付けされていないデータから構成されている。

 

事前処理として、括弧、数字、URL、引用符、連続する文字などがひとつの記号に置き換えられる。これはWebテキストの乱雑さを抑えるために必要であり、行わない場合には精度が落ちる。

 

実験結果によれば、単語の分散表現を使用しないで、既存のスパースな表現のみを用いた場合の精度は92.02であり、分散表現を使った場合の精度は93.15であった。

 

実験結果は、教師なし学習によって得られた単語の分散表現がラベル付けされたデータの不足したWebテキストの品詞タグ付けに役に立つことを示している。

 

参考文献

[Ma et al. 2014] Ji Ma, Yue Zhang, Tong Xiao, and Jingbo Zhu. 2014. Tagging the Web: Building a robust web tagger with neural network. In Proceedings of the Annual Meeting of the Association for Computational Linguistics, Proceedings of the Conference (ACL). The Association for Computer Linguistics.

NLTK : 英語の文章を文または単語単位で分割する

論文中で、nltkを使って文章を文単位に分割したという記述が出てきたので、具体的にどうやってやるのか調べた。

 

文単位の分割

>> from nltk.tokenize import sent_tokenize

>> text = "This is a pen. Is this a pen?"

>> sent_tokenize_list = sent_tokenize(text)

>> print sent_tokenize_list

出力 

['This is a pen.', 'Is this a pen?']

 

単語単位の分割

>> from nltk.tokenize import word_tokenize

>> text = "This is a test."

>> word_tokenize_list = word_tokenize(text)

>> print word_tokenize_list

出力

['This', "'s", 'a', 'test', '.']

 

非常にシンプルである!

 

[参考文献]

Dive Into NLTK, Part II: Sentence Tokenize and Word Tokenize | Text Mining Online | Text Analysis Online | Text Processing Online

論文紹介: A Bayesian Approach to Unsupervised Semantic Role Induction

概要

紹介論文[Titov and Klementiev 2012] では、教師なし学習により意味役割を付与する。これは述語項同定と項のクラスタリングからなる2ステップで行われる。述語項同定は依存構造木からヒューリスティック手法を用いて判別する[Lang and Lapata 2011]。項のクラスタリングは、ディリクレ過程のひとつであるDistance Dependent CRPsをクラスタの事前分布として行う。各クラスタが意味役割に対応する。

 

背景

意味役割とは、述語と項の関係を分類したものである。意味役割としては、動作主、経験者、主題、目標、起点などがある。例えば、以下の例において<A0>は動作主、<A1>は主題を表す。

 

(a) [<A0> Mary ] opend [<A1> the door ]

(b) [<A0> Mary ] is expected to open [<A1> the door] .

(c) [<A1> The door ] opend.

(d) [<A1> The door ] was oopend by [<A0> Mary ].

 

意味役割付与は質問応答、アラインメント、機械翻訳などで役立ってきた。統語的な表現は意味役割を予測するのに有用だが、単純なルールにより一方からもう一方を決定することは出来ない。これは、統計的な手法を採用する動機になる。

 

CRFなどの統計的な手法を用いた意味役割付与は大きな成功を収めてきたが、大量の教師データを必要とする。これは、特殊なドメインやアノテートされたデータが十分に存在しないドメインにおいて問題となる。このことは教師なしの手法を使う動機となる。

 

手法 

まず、述語に対する項の同定が行われる。このステップは紹介論文では[Lang and Lapata 2011]で提案された言語学的な知識に基づく手法が使われている。紹介論文の主要な貢献は、同定した項を素性に基いてクラスタリングする新手法を提案したことである。以下では、データ(述語と項)の生成過程のモデルを説明する。データを用いたモデルパラメタの推定は最尤法に基づくが、論文中では詳しく説明されていない。

 

項の素性は統語的な特徴により構成される。統語的な特徴としては態(能動態か受容体か)、述語に関する相対的位置(右か左か)、述語に対する依存関係、前置詞がある。上記の例(a)であれば、素性はACT:RIGHT:SBJとなる。

 

紹介論文では項の素性をクラスタリングする。クラスタの数に関して仮定を起きたくないので、クラスタ数可変のディリクレ過程をクラスタの事前分布とする。ディリクレ過程とは有限個のデータ系列であり、系列の全体がディリクレ分布に従う。ディリクレ過程に従う系列を実際に生成するのが中華料理店過程(CRPs)である。さらに、CRPsを一般化した距離依存CRPsも使われている。クラスタの生成からデータの生成までを箇条書きすると以下のようになる。ただし、一部簡単化した。

 

  1. 各述語に対して項の素性の全体集合がCRPsによりクラスタリングされる。各クラスタは意味役割を表す
  2. 各述語の各クラスタに対して、述語の項となる単語が従う多項分布のパラメタがディリクレ分布からサンプルされる
  3. 述語のクラスタが幾何分布からサンプルされる
  4. 各述語の各クラスタに対して、項の素性がクラスタに属する素性の集合の一様分布からサンプルされる
  5. 項に当てはめる具体的な単語が2で生成した多項分布からサンプルされる

パラメタの推定は教師なしで行うが、詳細な方法は論文からは読み取れなかった。

 

実験

実験では意味役割付与のベンチマークであるCoNNL2008 Shared task により評価を行った。評価手法は、ひとつのクラスタに属する、ひとつの主要な意味役割の項の他の項に対する割合(純度PU)と、ひとつの意味役割の項が、ひとつの主要クラスタに含まれる割合(集積度CO)が求められ、両者の平均をF値とする。述語項の同定のゴールドデータが与えられた場合の最良の結果は、PU=88.7、CO=78.1、F=83.0であった。

 

参考文献

[Titov and Klementiev 2012] Titov, I. and Klementiev, A.  A bayesian approach to semantic role induction. In Proc. EACL, Avignon, France.
[Lang and Lapata 2011] Lang, J. and Lapata, M. (2011a). Unsupervised semantic role induction via split-merge clus- tering. In ACL.