メインサイト
 アイマス動画発掘サイト『ニコマスchガイド』

ニコニコ動画のアイドルマスター動画を独自のジャンルとキーワードで検索できる総合カタログサイトです。ログイン不要の再生にも対応。
ニコマス急上昇ワード

設置方法
NEW ENTRIES
CATEGORIES
拍手ボタンによるおススメ
ARCHIVES
LINKS
Calendar
Sun Mon Tue Wed Thu Fri Sat
 123456
78910111213
14151617181920
21222324252627
28293031   
<< May 2017 >>
PROFILE
OTHERS
 
ニコニコ動画にある”アイドルマスター”タグ付き動画に付けられたコメントを集計・加工してできた色々(powered by ニコマスchガイド)

<< 今週のニコマスまとめ〜7月第3週 | main | 今週のニコマスまとめ〜7月第4週 >>
Lingua::JA::Categorizeを試してみた
このブログをテキストデータ解析の参考のためにチェックしている人がいるとは思えないんですが、予定が余りに遅れていて今年中に解説を作成できそうにないので、気が向いたときに技術情報も書いてみようと思います。

現在自動カテゴリ分類に行き詰っているんですが、その過程でPerlモジュールLingua::JA::Categorizeを使ってみたのでそのメモ。
使おうと思ったらLingua::JA::Categorizeの情報があまりに少なかったので。

ダウンロードたけし(寅年)の日記
2008-11-24 「日本語テキストを分類するベイジアンフィルタ」を簡単につくる
http://d.hatena.ne.jp/download_takeshi/20081124/1227539934



自分の環境(CentOS 5)では、READMEのインストール方法で環境は整ったものの、サンプルのコードそのままでは動かなかったのでいくつか修正してあります。
他にmecabがインストール済みである必要があります。

以下のプログラムソースの使い方は、ファイル名のみで実行すると初期学習データを生成し、パラメータとして、改行で区切った解析対象のテキストファイルのファイル名リストを記述したファイル名を与えてやると文書の分類を行います。

結果は以下のようになります。

$ ./category.pl filelist.txt
nm2676413 ミステリー 三国志 野球 0.474341649025257
nm2731793 ミステリー 三国志 野球 0.474341649025257
nm2773972 ミステリー 三国志 野球 0.474341649025257
nm3248741 ミステリー 三国志 野球 0.474341649025257
nm3674729 ミステリー 三国志 野球 0.474341649025257

見ての通りうまくいってません。


単語データセットが悪いのか文書が悪いのか分かりませんが、作成者さんのブログにも書いてある通り、個々のコメントの羅列であるニコニコ動画のコメント解析ではまともな精度に達しないだろうと判断して不採用に。

でも補正的な学習っていうフェーズがあったんですね。

現在はなんちゃってシソーラスの作成を試行中。
それがうまくいかなかったらもう一度トライしてみようかな。

web拍手 by FC2他の人にもおすすめの記事だと思ったら押してください。左の記事ランクに反映されます。私信の送信にも使えます。
#!/usr/bin/perl

#use Data::Dumper;
use YAML::Loader;
use Lingua::JA::Categorize;

my $filename = shift;

my $c = Lingua::JA::Categorize->new;

sub make_category() {
my $yaml = YAML::Loader->new;
#my $category_config = YAML::Load( join "", <DATA>);
my $category_config = $yaml->load(join ("", <DATA>));

$c->generate($category_config);
$c->save('category.dat');
exit;
}

open (FILE, "< $filename") or &make_category();
@filelist = <FILE>;
close FILE;

$c->load('category.dat');

foreach $filename (@filelist) {
chomp($filename);
open(TEXTDATA, "< $filename") or next;
@textfile = <TEXTDATA>;
close(TEXTDATA);
$text=join("", @textfile);

my $result = $c->categorize($text);
#print Dumper $result->word_set; # 特徴語一覧
print $id, "¥t",
  keys %{${$result->score}[0]}, "¥t",
  keys %{${$result->score}[1]}, "¥t",
  keys %{${$result->score}[2]}, "¥t",
  values %{${$result->score}[0]}, "¥n";
}

__DATA__
---
三国志:
  keyword:
    - 三国志 能力値
  weight: 2
TRPG:
  keyword:
    - 卓ゲ者 ドワーフ シーフ キャラシート
  weight: 1
戦争:
  keyword:
    - 帝国 同盟 植民地
  weight: 1
RPG:
  keyword:
    - 洞窟 召喚 獣 魔道 LV1 パーティ 宝箱 迷宮 レベル
  weight: 1
ミステリー:
  keyword:
    - 推理 犯人 アリバイ 探偵 証拠 ミステリー
  weight: 2
野球:
  keyword:
    - 投手 打線 走者 バッター 捕手
  weight: 2
カードゲーム:
  keyword:
    - カード デュエル 手札 ドロー
  weight: 1
| 技術情報 | 18:35 | comments(0) | trackbacks(0) |









http://blog.nicomas.main.jp/trackback/1447840