語義曖昧解消のためのLeskアルゴリズム
4667 ワード
このアルゴリズムはMichael E.Leskによって1986年に提案され,辞書に基づく語義曖昧解消法である.
このアルゴリズムは,辞書における1つの語の意味解釈がその語が存在する文と類似していると考えられる.この類似性は同じ単語の個数で表すことができ、例えば「cone」と「pine」の意味はそれぞれ:
ここでPine#1とCone#3の重なり度は2であり、この2つの意味が類似していることを示す.
簡単なLeskの偽コードは以下の通りで、入力は1つの語とその語がある文で、補助的な資源は辞書で、辞書の中に語義の解釈と例文があります
function SIMPLIFIED LESK(word,sentence) returns best sense of word best-sense max-overlap then max-overlap
ここでマッチング類似度は,その語の語義解釈だけでなく,その語の例文にも用いられる.もちろん実際の応用では無効語を取り除く必要がある.
しかし,このアルゴリズムにも多くの問題があり,例えば辞書に現れない語や辞書における解釈が少なすぎる語がある.また,他の辞書を用いて,義語辞典のように単純に重なり度を判断するのではなく,2つの言葉のそれぞれの語の同義語の重なり度も考慮してもよい.この方法の精度はSenVal−2の評価タスクにおいて50%〜70%に達した.
WordNetに基づく非常に使いやすい語の類似度を計算するツールJWSを紹介します.http://www.cnblogs.com/sl-shilong/archive/2013/01/23/2874094.htmlあ、次はプロフィール
要約:
wordentは、2つの概念(またはword sense)間の意味類似度を計算するために使用できる無料のパッケージであり、6つの計算類似度と3つの計算概念間の関連度方法を提供し、これらの方法はすべてwordnetという語彙データベースに基づいている.これらの計算方法はPerlで実装されており,アルゴリズムモデルの入力は2つの概念であり,戻り結果は類似度または関連度を表すための1つの数値である.
概要:
2つの概念の類似度を計算し、主に階層「is-a」構造に含まれる情報に基づいている.たとえば、automobileとboatが同じ祖先vehicleを持っている場合、automobileはboatとの類似度がtreeとの類似度より大きいと考えられます.
wordnetが名詞と動詞をis-aという階層関係に組織してから,wordnetは類似度の計算に非常に適している.2.0版では、9つの名詞階層が80000の概念を含み、554の動詞階層が13500の概念を含む.
Wordnetのis-a関係は跨語的ではないので,wordnetに基づく類似度計算は名詞間(例えばcatとdog)と動詞対間(例えばrunとwalk)に限られる.wordnetには形容詞や副詞も含まれており,これらの語はis−a関係に組織できないため,類似度の計算はできない.
しかし,概念間では類似度による関連付けに加えて,多くの他の方法を用いることができる.例えば、wheelはcarの一部であり、nightはdayの反対側であり、snowはwaterからなり、knifeはbreadを切るために使われるなどです.Wordentはまた、has-part、is-made-of、is-an-attribute-ofなどの追加の連絡を提供します.それ以外に、各概念(またはword sense)は短い定義または注釈によって記述される.
関連付けを計算する方法は、これらの追加情報に基づいており、これらの方法は、より広範な概念ペアで使用することができる.例えば、語性を越えて、動詞murderと名詞gunを関連付ける程度にすることができます.形容詞violentやharmfulのようなis−a関係ではない語彙を計算することもできる.
類似度計算
3つの類似度の計算は、lch(Leacock&Chodorow 1998)、wup(Wu&Palmer 1994)、およびpathに基づいており、lch法は、2つの概念間の最短経路を見つけ、is−a階層で最大経路長を見つける.Wup法は,最近の共通祖先ノードからrootノードへの2つの概念の経路長を見つけることである.Path法は2つの概念間の最短経路長の逆数である.
また,コンセプトの情報内容はSemCorのsense−tagged集合から得られる.しかしながら、Brown Corpus、the Penn Treebank、British Nation Corpus、または任意の形式の通常のテキストのような、表記されていない集合中の情報を計算するプログラムも存在する.
WordNet::Similarityは2つの仮定のルートノードをサポートし、この2つのルートノードは存在しても存在しなくてもよい.存在する場合、1つのルートノードはすべての名詞ノードを含み、もう1つはすべての動詞ノードを含む.これにより,類似度計算を任意の名詞と動詞対の間に適用できる.2つのルートノードが存在しない場合、類似度は同じis-a階層の語のみが計算されます.
関連性の計算
3つのwordnetがサポートする関連度の計算方法は、hso(Hirst&St-Onge 1998)、lesk(Banerjee&Pedersen 2003)、vector(Patwardhan 2003)である.hso法は経路に基づいて関係を方向によって分類する.例えばis−a関係は縦方向でありhas−part関係は横方向である.2つの概念の間に1つの経路を見つけることが望ましい.この経路は長すぎず、方向も頻繁に変えられない.
Wordnetの各概念(またはword sense)は、短い注釈で定義されています.LeskメソッドとVectorメソッドは,注釈を概念とする唯一の識別メソッドである.Lesk法は2つの概念の注釈の交差部分を探索し計算し,wordnetで同時に1つの概念に接続する方法によって類似度を計算する.
Vector法はwordnet注釈からなるco‐occurrence行列を確立する.Wordnetコメントにはwordごとに関連ベクトルがあります.各注釈はgloss vectorの形式で構成され、gloss vectorの内容は通常、すべてのコンテキストベクトルのglossの語から構成されます.2つの概念間の関連度は,2つのglossベクトルの挟み角コサイン値を計算することである.
運用Wordnet::Similarity
Wordnet::Similarityの実装はPerlのオブジェクト向けの特徴を持つ.Wordnet::QueryDataパッケージ(Rennie 2000)を使用して、Wordnetの記述を作成します.既存の類似度測定法を実現するために多くの既存の方法がある.
既存のメソッドをPerlプログラムにマージする場合、そのメソッドのオブジェクトはnew()メソッドで作成する必要があります.次いでgetRelatedness()法によりWorldNet内の一対のsenseの類似度および関連度が得られる.
Wordnet::Similarityはアプリケーションでもsimilarity.plが提供するコマンドラインインタフェースにアクセスします.この方法は、ユーザが特定の一対の概念(word#pos#senseの形式で与えられる)に対して、ある方法を用いてインタラクティブな操作を行うことを可能にすることができる.例えば、car#n#3はcarの3番目のwordnet名詞senseを表す.さらに、1つのwordまたはword#posの組合せに関連付けられたすべての可能なsenseについて詳細に説明することも可能である.このほか,このようなアプリケーションに基づくweb形式のインタフェースもある.
私たちはwordnetがどのように動作するかを無視し、Wordnet::Similarityはそれぞれの異なる方法について詳細な追跡を提供し、様々な診断情報の具体的な説明を示した.たとえば、パス長に依存するメソッド(lch,wup,path)について、すべての2つの概念間のすべてのパスを追跡して表示します.情報コンテンツの追跡方法(res,lin,jcn)には、2つの概念間のすべてのパスと最近の共通サブ概念が含まれている.hso法の追跡はwordnetを介して見つかった真の経路を示し,leskはwordnetにおける2つの概念が互いに重なり合うglossとそれらに近い関係を示した.Vectorメソッドは、コンセプトのglossベクトルを作成するためのすべてのword vectorsを示します.
我々はすでにWordnet::Similarityを汎用的な意味関係に基づく語意曖昧化の方法に統合した(Patwardhan,Banerjee,&Pdersen 2003).この方法はすでにSenseRelateパッケージで実現されている(http://senserelate.sourceforge.netこのアルゴリズムの前提は、wordのsenseが、そのすべてのsenseの中で隣接するwordのsenseに最も関連するものを検索することによって得ることができることである.類似度と関連度のアルゴリズムをtext generation systemの構築選択を評価するために模索している.
このアルゴリズムは,辞書における1つの語の意味解釈がその語が存在する文と類似していると考えられる.この類似性は同じ単語の個数で表すことができ、例えば「cone」と「pine」の意味はそれぞれ:
CONE
1. solid body which narrows to a point
2. something of this shape whether solid or hollow
3. fruit of certain evergreen trees
PINE
1. kinds of evergreen tree with needle-shaped leaves
2. waste away through sorrow or illness
ここでPine#1とCone#3の重なり度は2であり、この2つの意味が類似していることを示す.
簡単なLeskの偽コードは以下の通りで、入力は1つの語とその語がある文で、補助的な資源は辞書で、辞書の中に語義の解釈と例文があります
function SIMPLIFIED LESK(word,sentence) returns best sense of word best-sense max-overlap then max-overlap
ここでマッチング類似度は,その語の語義解釈だけでなく,その語の例文にも用いられる.もちろん実際の応用では無効語を取り除く必要がある.
しかし,このアルゴリズムにも多くの問題があり,例えば辞書に現れない語や辞書における解釈が少なすぎる語がある.また,他の辞書を用いて,義語辞典のように単純に重なり度を判断するのではなく,2つの言葉のそれぞれの語の同義語の重なり度も考慮してもよい.この方法の精度はSenVal−2の評価タスクにおいて50%〜70%に達した.
WordNetに基づく非常に使いやすい語の類似度を計算するツールJWSを紹介します.http://www.cnblogs.com/sl-shilong/archive/2013/01/23/2874094.htmlあ、次はプロフィール
要約:
wordentは、2つの概念(またはword sense)間の意味類似度を計算するために使用できる無料のパッケージであり、6つの計算類似度と3つの計算概念間の関連度方法を提供し、これらの方法はすべてwordnetという語彙データベースに基づいている.これらの計算方法はPerlで実装されており,アルゴリズムモデルの入力は2つの概念であり,戻り結果は類似度または関連度を表すための1つの数値である.
概要:
2つの概念の類似度を計算し、主に階層「is-a」構造に含まれる情報に基づいている.たとえば、automobileとboatが同じ祖先vehicleを持っている場合、automobileはboatとの類似度がtreeとの類似度より大きいと考えられます.
wordnetが名詞と動詞をis-aという階層関係に組織してから,wordnetは類似度の計算に非常に適している.2.0版では、9つの名詞階層が80000の概念を含み、554の動詞階層が13500の概念を含む.
Wordnetのis-a関係は跨語的ではないので,wordnetに基づく類似度計算は名詞間(例えばcatとdog)と動詞対間(例えばrunとwalk)に限られる.wordnetには形容詞や副詞も含まれており,これらの語はis−a関係に組織できないため,類似度の計算はできない.
しかし,概念間では類似度による関連付けに加えて,多くの他の方法を用いることができる.例えば、wheelはcarの一部であり、nightはdayの反対側であり、snowはwaterからなり、knifeはbreadを切るために使われるなどです.Wordentはまた、has-part、is-made-of、is-an-attribute-ofなどの追加の連絡を提供します.それ以外に、各概念(またはword sense)は短い定義または注釈によって記述される.
関連付けを計算する方法は、これらの追加情報に基づいており、これらの方法は、より広範な概念ペアで使用することができる.例えば、語性を越えて、動詞murderと名詞gunを関連付ける程度にすることができます.形容詞violentやharmfulのようなis−a関係ではない語彙を計算することもできる.
類似度計算
3つの類似度の計算は、lch(Leacock&Chodorow 1998)、wup(Wu&Palmer 1994)、およびpathに基づいており、lch法は、2つの概念間の最短経路を見つけ、is−a階層で最大経路長を見つける.Wup法は,最近の共通祖先ノードからrootノードへの2つの概念の経路長を見つけることである.Path法は2つの概念間の最短経路長の逆数である.
また,コンセプトの情報内容はSemCorのsense−tagged集合から得られる.しかしながら、Brown Corpus、the Penn Treebank、British Nation Corpus、または任意の形式の通常のテキストのような、表記されていない集合中の情報を計算するプログラムも存在する.
WordNet::Similarityは2つの仮定のルートノードをサポートし、この2つのルートノードは存在しても存在しなくてもよい.存在する場合、1つのルートノードはすべての名詞ノードを含み、もう1つはすべての動詞ノードを含む.これにより,類似度計算を任意の名詞と動詞対の間に適用できる.2つのルートノードが存在しない場合、類似度は同じis-a階層の語のみが計算されます.
関連性の計算
3つのwordnetがサポートする関連度の計算方法は、hso(Hirst&St-Onge 1998)、lesk(Banerjee&Pedersen 2003)、vector(Patwardhan 2003)である.hso法は経路に基づいて関係を方向によって分類する.例えばis−a関係は縦方向でありhas−part関係は横方向である.2つの概念の間に1つの経路を見つけることが望ましい.この経路は長すぎず、方向も頻繁に変えられない.
Wordnetの各概念(またはword sense)は、短い注釈で定義されています.LeskメソッドとVectorメソッドは,注釈を概念とする唯一の識別メソッドである.Lesk法は2つの概念の注釈の交差部分を探索し計算し,wordnetで同時に1つの概念に接続する方法によって類似度を計算する.
Vector法はwordnet注釈からなるco‐occurrence行列を確立する.Wordnetコメントにはwordごとに関連ベクトルがあります.各注釈はgloss vectorの形式で構成され、gloss vectorの内容は通常、すべてのコンテキストベクトルのglossの語から構成されます.2つの概念間の関連度は,2つのglossベクトルの挟み角コサイン値を計算することである.
運用Wordnet::Similarity
Wordnet::Similarityの実装はPerlのオブジェクト向けの特徴を持つ.Wordnet::QueryDataパッケージ(Rennie 2000)を使用して、Wordnetの記述を作成します.既存の類似度測定法を実現するために多くの既存の方法がある.
既存のメソッドをPerlプログラムにマージする場合、そのメソッドのオブジェクトはnew()メソッドで作成する必要があります.次いでgetRelatedness()法によりWorldNet内の一対のsenseの類似度および関連度が得られる.
Wordnet::Similarityはアプリケーションでもsimilarity.plが提供するコマンドラインインタフェースにアクセスします.この方法は、ユーザが特定の一対の概念(word#pos#senseの形式で与えられる)に対して、ある方法を用いてインタラクティブな操作を行うことを可能にすることができる.例えば、car#n#3はcarの3番目のwordnet名詞senseを表す.さらに、1つのwordまたはword#posの組合せに関連付けられたすべての可能なsenseについて詳細に説明することも可能である.このほか,このようなアプリケーションに基づくweb形式のインタフェースもある.
私たちはwordnetがどのように動作するかを無視し、Wordnet::Similarityはそれぞれの異なる方法について詳細な追跡を提供し、様々な診断情報の具体的な説明を示した.たとえば、パス長に依存するメソッド(lch,wup,path)について、すべての2つの概念間のすべてのパスを追跡して表示します.情報コンテンツの追跡方法(res,lin,jcn)には、2つの概念間のすべてのパスと最近の共通サブ概念が含まれている.hso法の追跡はwordnetを介して見つかった真の経路を示し,leskはwordnetにおける2つの概念が互いに重なり合うglossとそれらに近い関係を示した.Vectorメソッドは、コンセプトのglossベクトルを作成するためのすべてのword vectorsを示します.
我々はすでにWordnet::Similarityを汎用的な意味関係に基づく語意曖昧化の方法に統合した(Patwardhan,Banerjee,&Pdersen 2003).この方法はすでにSenseRelateパッケージで実現されている(http://senserelate.sourceforge.netこのアルゴリズムの前提は、wordのsenseが、そのすべてのsenseの中で隣接するwordのsenseに最も関連するものを検索することによって得ることができることである.類似度と関連度のアルゴリズムをtext generation systemの構築選択を評価するために模索している.