概要
Pixivのタグ検索結果から、MeCabの辞書を生成・適用する。
特定用途に特化したテキストマイニングをするなら、ありかもしれない。
ピクシブ百科事典にまだ載っていないタグも取れる。
※実行環境はLinuxMint13(Ubuntu12.04 LTS)です。
方法
01.Pixiv検索結果のデータを取得する。
-> Pixiv検索結果をCSVダウンロードするHTMLファイルを用意した
02.取得データと同じ階層に下記Rubyコードを配置する。
※取得データのファイル名は「INPUT.csv」にすること。
# coding: UTF-8
require 'csv'
#しきい値(出現回数が指定範囲外のタグは出力しない)
MIN_COUNT = ARGV[0] || 3
#入力ファイル名
INPUT_CSV = ARGV[1] || 'INPUT.csv'
#出力ファイル名
OUTPUT_CSV = ARGV[2] || 'pixiv.csv'
#表示しないタグのパターン
UNDISP_KEYPATTERN = Regexp.new (ARGV[3] || "漫画|落書き")
h = {}
h.default = 0
CSV.foreach(INPUT_CSV, encoding: "UTF-8") do |row|
row[13].split(' ').each do |item|
h[item.downcase] += 1
end
end
CSV.open(OUTPUT_CSV, "wb") do |csv|
h.sort_by{|key, cnt|
-cnt
}.each do |set|
break if (set[1] < MIN_COUNT)
next if (set[0] =~ UNDISP_KEYPATTERN)
word = set[0]
cost = [-32768, (6000 - 200 *(word.length**1.3))].max.to_i
csv << [word,0,0,cost,'名詞','一般','*','*','*','*',word,'*','*','pixiv']
end
end
puts 'end!'
※コスト計算方法はこちらのサイトを参考にさせてもらった。
03.Rubyコードを実行する。
ruby pxcsv2mecab.rb
※pixiv.csvが同階層に出力される。
04.MeCabの辞書を生成・適用する。
出力したCSVを使い、MeCab: 単語の追加方法の「ユーザ辞書への追加」を実行した。
ただし、辞書生成コマンドは下記のようにした。
/usr/local/libexec/mecab/mecab-dict-index -d/usr/local/lib/mecab/dic/ipadic -u pixiv.dic -f utf-8 -t utf-8 pixiv.csv
結果
にこまきは、ラブライブ!の矢澤にこと西木野真姫のカップリングです。
にこまき 名詞,一般,,,,,にこまき,,,pixiv
は 助詞,係助詞,,,,,は,ハ,ワ
、 記号,読点,,,,,、,、,、
ラブライブ! 名詞,一般,,,,,ラブライブ!,,,pixiv
の 助詞,連体化,,,,,の,ノ,ノ
矢澤にこ 名詞,一般,,,,,矢澤にこ,,,pixiv
と フィラー,,,,,,と,ト,ト
西木野真姫 名詞,一般,,,,,西木野真姫,,,pixiv
の 助詞,連体化,,,,,の,ノ,ノ
カップリング 名詞,一般,,,,,カップリング,カップリング,カップリング
です 助動詞,,,,特殊・デス,基本形,です,デス,デス
。 記号,句点,,,,,。,。,。
EOS
感想
ラブライブ百合SS内では、
にこちゃん・まきちゃん・えりち・のんたん等のニックネームが多用される。
SSのテキストマイニングするなら、こんなんじゃ甘いよ(棒読み)
Twitterのハッシュタグを集めなきゃ……(使命感)