税理士目指す人のブログ

筋トレや読書のことをはじめとして、プログラミングその他日常生活における様々なことについて書いていきます。

Output Blog

主に筋トレ・プログラミングについて書きます

語義曖昧性解消とは?【自然言語処理の要】

スポンサーリンク

語義曖昧性解消とは?【自然言語処理の要】

こんにちは!

以前、自然言語処理についての記事を紹介しました。

www.i-like-output.work


僕は自然言語処理の中でも語義曖昧性解消(WSD : Word Sense Disambiguation)の研究を行っています。

自然言語処理はまだまだ発展途上の分野ですので、今後さらにこの分野に関わる人も増えていくと思います。

そこで、今後研究で語義の曖昧性解消を扱うかもしれない方などに向けて、その全体像を紹介していきたいと思います。

ここを読めば大体の流れがわかるように書きましたので、みなさん参考にしてください!

 

 

語義の曖昧性解消とは?

そもそも自然言語処理って?

そんな方のために、自然言語処理が何なのか説明する記事を前に書いておきました。

そちらに目を通してからですと、幾分スムーズに読み進められると思います。

 

  

語義の曖昧性解消の概要

ドライバーという単語があったとします。これはいわゆる多義語(一つの言葉で複数の意味を持つもの)です。

意味は以下のようなものがありますね。

  • 運転手
  • ゴルフの道具のひとつ
  • 工具
  • デバイスドライバー(ソフトウェア)
  • プロレスの技

例えば、文章中に「タクシー」や「バス」などの単語が出現すれば、それが運転手の意味のドライバーであることがわかりますね。

文章中に多義語が出現し、意味が正確でない状態を「曖昧性がある」状態といいます。

 

僕たち人間は、次のような文章でもドライバーがどの意味か、理解できると思います。

 

「パソコンの電源を付けたがモニターの解像度が合わなかった。

デバイスドライバーがうまくインストールされていなかった。

そこで僕は、付属のドライバーによってうまく映るようにした。

その後、タクシーを呼んで移動した。」

 

赤字のドライバーの意味はデバイスドライバーの意味ですね。

文章の全体像を見ることができる人間は、こういった文章の語義をほとんど正確に判別できます。

この語義を判別するプロセスを語義曖昧性解消語義判別語義識別といいます。

では、コンピュータが語義判別を行う場合はどうでしょうか?

 

「ドライバーによってうまく映る」

 

この部分だけでは、もしかしたらモニターそのものを治したかもしれず工具の場合とデバイスドライバの2通り意味がとれます。

 

「インストールされていなかった。

そこで僕は、ドライバーによってうまく映るようにした。

その後、タクシーを呼んで移動した。」

 

範囲を広げた場合、タクシーが出てきてしまいました。これでは運転手の場合も出てきますね。

つまり、ある多義語があったとき、「どこまでの周辺単語を見るか」ということが重要になってきます。しかし、大事な単語がどこにあるかは文章ごとに異なるため、1文1文適切な範囲を決めるのはとても困難です。

 

このように、前提知識や文章全体を把握する能力がないコンピュータは人間と同じように曖昧性を解消できないのです。

この問題を解決することが、この研究分野の課題です。

 

語義曖昧性解消の応用先

応用先は以下のようなものがあります。

  • 機械翻訳
  • 対話システム
  • 質問応答
  • 文書分類

 特に翻訳では、短い文章の翻訳も多いため、単語の意味を一意にできることが重要となります。

文章の意味を一意に決めることができれば、これらの分野はさらに飛躍的に発展できます。

 

分散表現とは?

まず、こちらで分散表現のおさらいをしておきます。

この後WSDの手法と研究例を紹介しますが、分散表現を取り扱うものが最近では多くなっています。

なのでまずは、分散表現についての紹介をさせていただきます。

 

One-Hotベクトル

以前の記事で紹介しましたが、こちらでも書きます。

私 / は / 幸せ / です / 。

という文章があったとします。

OneHotベクトルで表すと

私 : [1,0,0,0,0]

です : [0,0,0,1,0]

のようになります。

単語を表す表現ですね。

次に文章をベクトルで表す Bag of Words という手法を紹介します。

 

Bag of Words(BoW)

この手法は One-Hotベクトルで表現した文章中の単語を足し合わせるものです。

  1. 私 / は / 幸せ / です / 。
  2. 私 / は / リンゴ / が / すき / です / 。

という2文があったとします。

このとき、単語ごとに分けてひとつにまとめると

BoW : [私, は, 幸せ, りんご, が, すき, です, 。]

のようになります。この処理をBag of Wordsと言います。

バッグに単語を詰めるような感じなので、この名前になったそうです。笑

1の文章を見てみましょう。

1の文章に含まれる単語とBoWを比較します。

重複する部分を1、しない部分を0とすると

[1,1,1,0,0,0,1,1]

と表せますよね。

2では 

[1,1,0,1,1,1,1,1]

ですね。

これをデータのすべての文章に対して行うことで、1文1文の特徴を表すことができます。

BoWのデメリットは、単語数が多いと次元数が高くなること、文章を数値化してしまうため、係り受けなど単語間の意味的関係が失われてしまうことが挙がります。

 

分散表現(Word Embedding)

単語を低次元のベクトルで表す手法です。だいたい100~200次元が多いです。

単語ごとに固有ベクトルを持つため、単語ベクトルごとの足し算引き算、ベクトルを使った類似度計算が可能になります。

この手法は Bag of Wordsの課題を打ち消しました。

Word2Vec

基本Word Embeddingや分散表現はWord2Vecを使って構築したベクトルのことを指します。

自然言語処理の世界に圧倒的なブレイクスルーを起こしたのがWord2Vecです。

訓練データに出現した単語しか対応できないため、未知語に対して弱いのがネックです。

今回はWord2Vecに関する詳細な説明は省きます。

CBOW

Continuous bag of words

Continuous Bag of Wordsの略です。

周辺単語を入力に、中心となる単語を予測するモデルです。

 

Skip-gram

Skip-gram

 CBOWとは逆に、ある単語からその周辺単語を予測するモデルです。

 

語義曖昧性解消手法

ここではその手法を紹介していきます。

 

MFS(Most Frequent Sense)

教師あり機械学習の一種です。

これはタグ付きコーパスなどの訓練データにおいて、対象単語が最も頻繁に使われた意味をテストデータでの語義識別に使う方法です。

つまり、周辺単語などの文脈情報は利用せず、その単語が最も使われやすい意味を当てはめてしまう手法です。

これは、研究者らが考案したオリジナル手法との比較によく用いられます。

単語ごとの用例データにおける意味の偏りが大きいほど精度が高くなります。

この手法でもある程度の精度が出てしまいます。

 

知識ベース(Knowledge Based)

知識ベースの手法は最近下火になっている印象です。

教師あり機械学習の手法と分散表現の手法が圧倒的な精度を誇っていることに起因します。

ただし、分布仮説や共起、概念などの昔から扱われている手法をやってみたい方はこちらの知識を蓄えましょう。

 

Lesk アルゴリズム

アメリカ・ハーバード大学の研究者 Michael Lesk氏が1986年に考案した手法です。

ある対象文およびその中の対象単語があったとき、辞書におけるその単語の語義ごとの定義文に含まれる単語を抽出します。

その後、対象文の単語群と抽出単語群を比較し、最も重複が多いものを語義とする手法です。

これはいわゆる共起度に基づく手法です。

共起とは、ある単語とある単語が文章中で同時に出現することを言います。

この手法の欠点は、重複する単語がない場合は語義が判別できない点にあります。

 

この欠点をなくす研究を行った例を挙げます。

Pierpaolo Basileらの研究

Basile, P., Caputo, A., and Semeraro, G.: "AnEnhanced Lesk Word Sense Disambiguation Algo-rithm through a Distributional Semantic Model" , Proceedings of COLING 2014: Technical Papers,2014, pp. 1591-1600.https://www.aclweb.org/anthology/C14-1151

こちらの論文では、BasileらがBabelnetを使い、辞書定義を拡張することでLeskアルゴリズムの課題を解決しようと試みています。

Babelnetとは WordnetやWikipediaを含んで構成されている271言語対応の意味的ネットワークです。単語の意味やその定義などを取り出せます。

意味ネットワークは、概念間の意味的関係を表すネットワークです。

Basileらは、対象単語の語義ごとの定義文に、その語義の類義語の定義文に重みづけしたものを加えることで拡張を行いました。

分布仮説(似ている文章では単語ごとの意味も似ているという仮説)に基づいた、単語の持つ情報をベクトルで現す ベクトル空間モデル(単語空間モデル)によって、拡張した定義文と対象の文章のコサイン類似度を求めます。

コサイン類似度は1に近いほど類似度が高くなり、0に近いほど低くなります。

このコサイン類似度が最も高いものを語義とする手法です。

この手法は、MFSよりも高い精度を誇りました。

 

村田らの研究

 村田 亘 , 大沢 英一. "ハイパーメディアのJaccard係数に着目した定義文拡張による語義曖昧性解消", 日本ソフトウェア科学会第34回大会(2017年度)講演論文集 

http://jssst.or.jp/files/user/taikai/2017/GENERAL/general2-2.pdf

 この研究では、日本語Wikipediaのハイパーリンク構造をネットワークと捉え、集合の類似性を表すJaccard係数とクラスター係数を使い、語義ごとに関係が密なwikipedia記事を取り出し、その記事中からキーワードを抽出し、語義の定義文に加えて拡張する手法です。

この手法ではLeskアルゴリズムの精度よりも10%高い値を示しました。

 

シソーラス利用

シソーラス



シソーラスとは上図のような木構造で単語の意味を表すものです。

ある単語に対し、その上位概念や下位概念を得ることができます。

また2つの単語に対し、その上位ノードの深さによって、単語間類似度を求めることができます。

シソーラスとして用いられるものは一般的に、EDR電子化辞書の概念体系、分類語彙表、日本語語彙体系です。

これは知識ベースの手法の場合と教師あり機械学習の手法の両方の場合があります。

以下に知識ベース・教師あり学習それぞれの研究例を示します。

平川秀樹, 木村和広. "概念体系を用いた概念抽象化手法と語義判定におけるその有効性の評価", 情報処理学会論文誌, Vol.44, No2, pp421-432, 2003 

https://ipsj.ixsq.nii.ac.jp/ej/?action=repository_action_common_download&item_id=11335&item_no=1&attribute_id=1&file_no=1

 

新納浩幸, 佐々木 稔, 古宮 嘉那子. "語義曖昧性解消におけるシソーラス利用の問題分析", 言語処理学会 第21回年次大会 発表論文集, pp.59-62,2015.

https://www.anlp.jp/proceedings/annual_meeting/2015/pdf_dir/P1-15.pdf

 

辞書・共起・連想利用

辞書の定義文、共起辞書、連想概念辞書などを使う手法です。

これらは、上記で紹介した手法などと組み合わせて使われることも多いです。

最近では、分散表現と辞書などを組み合わせる研究も出てきています。

 

教師あり機械学習(Supervised learning)

タグ付きコーパスを使い、語義をクラスと考えて分類問題に帰着させる手法です。

WSDの手法では最も高い精度を誇ります。

しかし、単語の網羅性を考えると、大量の単語に人手でタグ付けを行わなければならず大きなコストがかかります。

最近では、国語研が「現代 日本語書き言葉均衡コーパス」の製作に着手しており、すでに最も大きな規模のタグ付きコーパスとなっています。

このコーパスの規模をさらに大きくすることで、さらなるWSD精度の上昇が見込めます。

 

素性にはBoWや分散表現などを入れることが多くなっています。

SVM、もしくはニューラルネットワークやリカレントニューラルネットワーク(RNN)などの分類器が多く使用されています。

分類器による分類

 

菅原らの研究

菅原 拓夢, 笹野 遼平, 高村 大也, 奥村 学. "単語の分散表現を用いた語義曖昧性解消",言語処理学会 第21回年次大会 発表論文集,pp.648-651, 2015 

https://www.anlp.jp/proceedings/annual_meeting/2015/pdf_dir/A4-3.pdf

この論文は分散表現を用いたWSDの中で最も有名と言っても過言ではありません。

この研究では、BoWや分散表現を使い、教師あり機械学習を行っています。

分散表現は、対象単語の前後5単語の平均ベクトルを素性にしています。

結果としては、分散表現にBoWを結合させた素性を用いて訓練した分類器において、87.8%というとても高い精度を出すことに成功しました。

 

山木らの研究

山木 翔馬, 新納 浩幸, 古宮 嘉那子, 佐々木 稔. "分散表現を用いた教師あり機械学習による語義曖昧性解消"情報処理学会研究報告, Vol.2015-NL-224, No.17,2015 

http://nlp.dse.ibaraki.ac.jp/~shinnou/papers/IPSJ-NL15224017.pdf

 この論文は菅原らの論文の問題点を改善する手法を提案しています。

BoWに分散表現を使って求めた用例間類似度を結合させたものを素性とするものです。

これによって菅原手法を1%程度上回る精度となりました。

 

教師無し学習(Unsupervised learning)

 こちらは 知識ベース とほとんど同義で扱われます。

 

半教師あり学習(Semi-supervised learning)

半教師あり学習は、タグ付きコーパスのデータに加え、タグのないデータが大量にある場合に使われます。

一般的に使われるアルゴリズムは以下のようになります。

  1. タグ付きコーパスで分類器を作成
  2. タグなしデータを分類
  3. 信頼性の高いものを正解データとして、訓練データに加える
  4. 再度学習する
  5. 任意の回数1~4を繰り返す

このアルゴリズムはYarowsky氏が1995年に論文として発表しました。

Self-Trainingブートストラップ手法とも呼ばれます。

論文はこちら https://www.aclweb.org/anthology/P95-1026

このアルゴリズムは応用すれば、タグ付きコーパスにおいて人手でタグ付けをしなければならないところを、自動で行ってくれるという強みがあります。

Yarowskyは論文における精度は高いものの、扱っているデータが少ないため、まだそこまでの応用はかなっていません。

 

語義曖昧性解消の今後の課題

  • 大規模なタグ付きコーパスの作成
  • 半教師あり学習のさらなる精度向上
  • Word2Vecにおける訓練データに出現していない単語への対処

などが挙げられます。

 

まとめ

いかがでしたでしょうか?

自然言語処理の中でも重要な役割を果たす、語義曖昧性の解消について書かせていただきました。

 

関連研究などを紹介しつつ、予備知識やどのような手法があるのか、といった話に言及しました。

今後、自然言語処理に関わる方のお役に立てたり、この記事を読んで興味を持ってくれたら幸いです。

 

それでは!

スポンサーリンク