Edited at

Pixivタグ検索結果からMeCab辞書を生成する

More than 5 years have passed since last update.


概要

Pixivのタグ検索結果から、MeCabの辞書を生成・適用する。

特定用途に特化したテキストマイニングをするなら、ありかもしれない。

ピクシブ百科事典にまだ載っていないタグも取れる。

 ※実行環境はLinuxMint13(Ubuntu12.04 LTS)です。


方法


01.Pixiv検索結果のデータを取得する。

-> Pixiv検索結果をCSVダウンロードするHTMLファイルを用意した


02.取得データと同じ階層に下記Rubyコードを配置する。

※取得データのファイル名は「INPUT.csv」にすること。


pxcsv2mecab.rb

# 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のハッシュタグを集めなきゃ……(使命感)