単語を使った特徴量をBasic Summarization Modelに組み込む(NLP, 自動文書要約)

前回,BasicSummarizationModelで文書要約(Python) というのをやりました. 簡単に言うと,これは文をスコア付けして,スコアの高いものから要約として採用するというものでした. このモデルでは,各文は,
最初の文は最も重要であり,終わりに近づくにつれて文の重要度は減少していく , というsentence position hypothesisに基づいてスコア付けされる.

前回紹介した論文

では単語の特徴量をこのBasic Summarization Modelに組み込んだものを提案している. Studyというタイトルとおり,提案しているというよりは,調べていると言った方が良いのか. 基本的には, ある単語の早い出現は情報をたくさんもっている. というword position hypothesisに基づいて各単語の情報量の重みを表現する. これは単語そのものをスコア付けしていたのに対して,単語と出現回数(何回目の出現なのか)のペアでスコア付けをするというものだ. つまり,wという単語のi番目の出現をf(w, i)でスコア付けする. fをどうするか,については4つ程考察されていた.

  1. Direct proportion
  2. Inverse proportion
  3. Geometric sequence
  4. Binary function

Basic Summarization Model では,各文を以下の関数でスコア付けする.

\displaystyle    score(s) = \frac{1}{\|s\|} \sum_{i} \log freq(w_{i})

ちなみに\|s\|は文sに含まれる単語数. これを単語の持つ情報量の平均と解釈しているみたいだ. ちなみに単語wの持つ情報量info(w)は,

\displaystyle    info(w) = - p(w) \log p(w)

だと思うがどうなのか.

さてこのスコアに単語wの位置による特徴量pos(w)を以下のように組み込む.

\displaystyle    score^{'}(s) = \frac{1}{\|s\|} \sum_{i} \log freq(w_{i}) pos(w_{i})

これで単語の出現位置も考慮したスコア付けが可能になる. というわけで例のごとく実装してみた.source code

Result

今回も前と同じ記事を要約してみる. 使う記事の全体は以下.

真に「使える」手書きメモアプリだと思わせてくれた『DioNote』
====================================================================================================
Android:手書きメモアプリが使えないのは過去の話になったかも。
「手書きメモアプリ」と聞くだけで、筆者は敬遠するところがありました。今までいくつかのアプリを試してきて、うまく文字が書けたり、正しく反映されたためしがなかったのです。大人しくキーボードから入力するメモが一番だ、と。
ですが、今回紹介する『DioNote』は、手書き反映の機敏さといい、認識力の高さといい、かなりの実力を持っていて、久々に「いいね!」と言いたくなるアプリでした。
加えて、画像の挿入や文字入力、メモのショートカットをホームに置けるなど、細かな機能も実装されており、あらゆる点からなかなか使える仕上がりとなっています。
早速、トップ画面右上のプラスマークからメモを作ってみます。ノートのようなデザインです。画面下部の領域に文字を手書きで入力していきます。一文字書いてみると、反応の正確さにビックリします。
すぐさま一文字書いたことが認識され、新たな文字、さらに新たな文字...と、そのテンポの良さも素晴らしい。ちなみに、一文字ずつだけでなく、横に連続で書いていくことも可能です。
画面右上のメニューから「キャンパス作成」をタップすると、真っさらな自由帳のような画面になります。ここでは画像の貼り付けも自由にでき、より気ままなメモを作成できます。

実験結果は以下のようになった.上からBasic Summarization Model,direct proportion, inverse proportion, getometric sequence.

真に「使える」手書きメモアプリだと思わせてくれた『DioNote』
====================================================================================================
大人しくキーボードから入力するメモが一番だ、と。ノートのようなデザインです。画面下部の領域に文字を手書きで入力していきます。一文字書いてみると、反応の正確さにビックリします。すぐさま一文字書いたことが認識され、新たな文字、さらに新たな文字...と、そのテンポの良さも素晴らしい。

真に「使える」手書きメモアプリだと思わせてくれた『DioNote』
====================================================================================================
Android:手書きメモアプリが使えないのは過去の話になったかも。「手書きメモアプリ」と聞くだけで、筆者は敬遠するところがありました。今までいくつかのアプリを試してきて、うまく文字が書けたり、正しく反映されたためしがなかったのです。大人しくキーボードから入力するメモが一番だ、と。

真に「使える」手書きメモアプリだと思わせてくれた『DioNote』
====================================================================================================
Android:手書きメモアプリが使えないのは過去の話になったかも。「手書きメモアプリ」と聞くだけで、筆者は敬遠するところがありました。今までいくつかのアプリを試してきて、うまく文字が書けたり、正しく反映されたためしがなかったのです。大人しくキーボードから入力するメモが一番だ、と。ノートのようなデザインです。画面下部の領域に文字を手書きで入力していきます。

真に「使える」手書きメモアプリだと思わせてくれた『DioNote』
====================================================================================================
Android:手書きメモアプリが使えないのは過去の話になったかも。「手書きメモアプリ」と聞くだけで、筆者は敬遠するところがありました。今までいくつかのアプリを試してきて、うまく文字が書けたり、正しく反映されたためしがなかったのです。大人しくキーボードから入力するメモが一番だ、と。ノートのようなデザインです。

Summary

単語の位置情報を考慮した自動文書要約を試した. word position hypothesisが強すぎるのか,ほとんど最初の文が抽出される結果となった. 次回は僕オリジナルの方法を何か試せたらと思う.

単語を使った特徴量をBasic Summarization Modelに組み込む(NLP, 自動文書要約)」への3件のフィードバック

  1. こんばんは。興味深い記事で大変参考になりました。
    ソースコードを見たかったのですが、gist が閲覧出来ませんでした。
    再掲して頂けないでしょうか?
    宜しくお願いします。

コメントを残す

以下に詳細を記入するか、アイコンをクリックしてログインしてください。

WordPress.com ロゴ

WordPress.com アカウントを使ってコメントしています。 ログアウト / 変更 )

Twitter 画像

Twitter アカウントを使ってコメントしています。 ログアウト / 変更 )

Facebook の写真

Facebook アカウントを使ってコメントしています。 ログアウト / 変更 )

Google+ フォト

Google+ アカウントを使ってコメントしています。 ログアウト / 変更 )

%s と連携中