背景デザイン画像1 背景デザイン画像2

Portfolio

WordNetで文書群のラベル推定をしてみた

MENU

 概要

最近の研究を調べていたら以下の研究を見つけました。
単語の分散表現を用いた文書群のラベル推定

文書データはlivedoorニュースコーパスを使っていますね。
livedoorニュースコーパス

SVMを使って各カテゴリーの重要語を割り出して、その重要語から各カテゴリーのラベル候補を選出しているみたいです。


つまり、現在のカテゴリー名はこうなっていますが、人間が名前を考えて付けています。
  • dokujo-tsushin

  • it-life-hack

  • kaden-channel

  • livedoor-homme

  • movie-enter

  • peachy

  • smax

  • sports-watch

  • topic-news
この「カテゴリー名を考えて付ける作業」を機械に任せるとどうなるかという内容です。

先行研究では上位語を上手く取得できなかったようですが、どんな感じなのか自分もやってみます。

ラベル推定方法

以下の手順でラベル推定をしてみます。

カイ二乗検定で重要語を上から100個取得

取得した重要語の中で、WordNetに登録されていない単語は削除

残った重要語から各重要語の上位語を取得

各上位語の出現回数を計算

出現回数が最も多い上位語をカテゴリー名とする

上位語について

ある単語の上位概念のことです。

猫→動物
車→乗り物
蛙→爬虫類

こんな感じで重要語の上位語を取得します。

カイ二乗検定について

カイ二乗検定に関しては別の記事で説明してます。
分類精度が低いカテゴリーについての分析

WordNetについて

一言でいうと概念辞書です。

ある言葉の「意味」「類義語」「上位語」「下位語」などが定義されていて、これ以外にも多くの機能があります。

公式サイトは以下
日本語 WordNet

今回は上位語を検索する機能を使用します。

 実装

カイ二乗検定で重要語を上から100個取得

以下のプログラムを使用
プログラム(zsc)

取得した重要語の中で、WordNetに登録されていない単語は削除

以下のプログラムを使用
プログラム(exist_word)

残った重要語から各重要語の上位語を取得

以下のプログラムを使用
プログラム(wordnet)
ここは以下のサイトのプログラムを参考にしました。
日本語WordNetで上位語を全てを表示する(python)

各上位語の出現回数を計算

以下のプログラムを使用
プログラム(def_category)

出現回数が最も多い上位語をカテゴリー名とする

notepadの機能でソート

 結果

こうなりました。

左の数字は上位語の出現回数です。

まあまあ当たってる気がするのでWordNetを使用したのは意外とよかったかなという感じです。