- アーティストの歌詞を抽出して、(実装済み)
- それを元にWordcloudを作るスクリプト(2017/06/01実装中)
Jpopってどいつもこいつも、瞳を閉じて、翼生やして、ナンバーワンよりオンリーワンって言ってやがる!青臭くて中二病で最高じゃねーか!
っていう言説が主に自分の中にあったので、「本当に青臭いのかどうか」を客観的に視覚的に表すツールを作れないかということで作りました。
-
anaconda4(python3)
-
Phantom.jsをインストール。
- Windowsなら以下参照。
- https://gist.github.com/maechabin/7632c460ceede823cbde
scrapephantom.py
の
if __name__ == '__main__':
artist_name = "スガシカオ"
main(artist_name)
wordcloud.main(artist_name)
のartist_name
を任意のアーティスト名に変えて、
python scrapephantom.py
を実行。minedLyricsに出力がある。 この内容をワードクラウドを作成するWebアプリなり、モジュールにぶち込む。
あとは、結果を見て、「aikoっぽいわー、ミスチルっぽいわー」と言って楽しむ。
このスクリプトを作ったということは、 要はテキストマイニングするためのデータ集めに奔走したということになる。
どのようなアルゴリズム、設計で作るか、そのために
- 出力を決め、そこから逆算する。
- 出力:ワードクラウド.png→
- (ワードクラウドを生成する機能+)歌詞を入れたテキストファイルがいる。→
- 歌詞をどこからか抽出して、それを結合させる必要がある→
- 歌詞を抽出できるサイトを探し、構造を見る
といったことが必要になる。↑をさらに分解し、関数を作っていき、それらをテストし、結合させるといった手順を踏む必要があるが、これが意外と難しい。
- pythonの基礎文法を当然として、
- 歌詞を抽出できるサイトを見つけるのがそもそも難しい。
- 運と根気とShift + 右クリック という裏技の知識がいる。
- URLに変数(クエリー)与えてアクセスすると、任意のページにアクセスできるという知識がいる
- スクレイピング、bs4、という単語を知ってる必要がある。
- HTMLソースがjsで生成されてたりすると、bs4では抽出できないという知識。
- phantom.jsというモジュールと組み合わせればイケるという知識。
と言った知識がいる。もっとも、
- Pythonの文法含めて、足りない知識をどうにかしてググって探すググり力。 があればどうにかなる。このスクリプトを作るためにググった回数はおそらく30回を超える。
逆に言えば、単語さえ思いつければどうにかなる。
そんなことをうだうだ考えた制作過程であった。