文書要約コンテストに参加しました
はじめに
eF-4 インターン生のなかやまです。
文書要約コンテストで、私は与えられた文書からタイトルを生成するモデルを作りました。
アプローチ
文書中で最重要な単語を推測するためにword2vecを使いました。
実際に作成したアルゴリズムの概要は以下の通りです。
- 与えられた文書を形態素解析し、標準形の単語単位に分解
- 形態素解析された文書を教師データとしてword2vecを学習
- 学習したword2vec内の文書中で最頻出の単語ベクトルに最も近い単語ベクトルをいくつか抽出
- “wikipediaの記事から学習した”word2vecに、最頻出語と抽出したいくつかの単語の平均に最も近い単語を抽出
最後に”wikipediaの記事から学習した”word2vecから抽出した単語を今回の出力結果としました。
解説
今回は2種類のword2vecモデルを使いました。
1つは与えられた文書にのみ基づいて学習したモデル(text_model)、もう1つはwikipediaを用いて膨大な量の文章から事前に学習したモデル(wiki_model)です。
text_modelは与えられた文書での独特な単語の使われ方などをよく表現できます。また、文書において、最頻出語、特に名詞の中での最頻出語は、その文書において重要な要素であると思われます。そこで、text_modelにおいて最頻出語の単語ベクトルの周りには最頻出語が文書内でどのような意味で使われ、どのような意味で重要なのかを示す単語ベクトルが分布していると考えられます。
そこで最頻出語の周辺にある単語をいくつか見ることで、文書の主題が分かります。しかし、ただ単語を並べただけではタイトルとすることができません。得られたいくつかの単語から自然な文章を生成するタスクはそれ自体が大変難しいので、今回は得られた単語を1つの単語に集約するという方針にしました。
具体的には、事前にwikipediaの記事を用いて学習したモデルwiki_modelを使いました。広範な内容の文章から学習することで、一般的な日本語の知識が暗に得られていると考えられます。そこでこのwiki_modelにおいて、上で説明したようにして得られたいくつかの単語を平均化したベクトルの周辺には与えられた文書の主題を表すような”一般的に使われる”単語を得ることができます。
このような考えに基づいて、今回のアルゴリズムを作りました。
おわりに
今回は文書をword2vecで単語単位で詰め込むことによって、文書から重要そうなものを抽出しました。しかし、このword2vecの学習が難しいところでした。各文書ごとに最適な学習のハイパーパラメータが違うことがあります。これを系統的に見つけ出す方法がなければ、真に自動な文章要約はできません。同じことですが、今のままでは般化性能に疑問が残ります。
この記事のタグ
機械学習と物理、最近は量子計算に興味があります。