これはなに?
KH Coder の環境が整い始めたので、まずは何かをやってみようという事。この記事を読めば歌詞をもってきて解析できる(はず)と思います。
KH Coder の Docker
KH Coder を Docker で動かす(2022) で書きました。github においた NL2E を clone して
その後、
$ git submodule init
$ git submodule update
$ docker-compose up -d
うまくいけば xeyes がでるので、そして、mysql が立ち上がった頃を見計らって
$ do.sh
とすれば立ち上がるはずです。(通しは未検証)
Jupyter の Docker
公式と思われるイメージ を使いました。
KHCoder/wokrs/jupyter というディレクトリを作って Docker と共有させます。ディレクトリのパーミッションを Docker からアクセスできるようにしておきます。本当は 777 とかいうセキュリティの甘いことをしたくないですが、、、これは今後の改善ポイント。共用サーバなどの他人も使う環境ではこういうことはしないように。
$ mkdir KHCoder/works/jupyter
$ chmod 777 KHCoder/works/jupyter
$ docker run --rm -p 8888:8888 -v `pwd`/KHCoder/works/jupyter:/home/jovyan/work jupyter/minimal-notebook
この minimal-notebook ですが、どういうわけか jovyan さんのディレクトリとIDを作ります。立ち上げ時になんかすると変えられるのかもしれません。
たりないモジュールがあるので jupyter にインストール。ほんとうは conda を使うのが正しいかも。
$ docker exec -it <dockerのiD> /bin/bash
# pip3 install pandas
# pip3 install bs4
bs4 が何かは知りません。その後、表示されているホストでトークン付きの URL へ Go!
http://127.0.0.1:8888/?token=<表示されているトークン>
スクレイピング
あとは先人の成果をコピペします。
まとめてスクレイピングしちゃいたいよね
Mr.children桜井さんの20代~50代における変化を歌詞から読み解いてみた ~KH Coder編~
まとめてスクレイピング超便利。でも対応サイトはそのうちまたどっかの料理サイトみたいにわざと壊れた HTML にしたり形式を変えたりしてスクレイピングできなくなるかもしれません。あと著作権にも注意しないとね。
jupyter へコピペ
jupyter でいっこノートブックを使くります。そして、おもむろに「まとめてスクレイピングしちゃいたいよね」の Python のコードをコピー。そして貼り付け。中身は(私は)気にしません。URL という list を作ります。
おっとその前に csv というディレクトリを作っておきます。そうしないと折角とってきたのにファイルに落とすところでエラーになります。そんな時は jupyter なので、最後だけやり直せばよい(と思う).
$ mkdir KHCoder/works/jupyter/csv
で jupyter にもどって URL という list をつくります。
URL= [['yorushika', 'https://www.uta-net.com/artist/22653/']]
ヨルシカだれ?という疑問は置いておいて、whole 関数を実行。私は最初ヨルシカという日本語を使ったのでヨルシカ.csv ができました。あとで yorushika.csv に名前を変えました(日本語ファイル名はトラブルのもとだから)。最初からアルファベットにしておいた方が無難です。
whole(URL)
やった!うまくいけば1曲目、、、とダウンロード(スクレイピング)を始めます。
KH Coder で解析
あとは KH Coder で解析
- ヨルシカ.csv だったので事前に yorushika.csv に変更。
- 新規プロジェクトで該当 csv ファイルをオープン。
- 分析対象とする列として Lyric を選択
- 前処理
- ツール -> 抽出語 -> 共起ネットワーク
こんな感じで解析するとできたっぽくない?
つぎは青空文庫だ!
青空文庫から情報を持ってこれそうな気がするので次はそこに行くよ。「こころ」を分析したのなら次は当然、「内田百閒」だよね。とおもって青空文庫調べると、、、ないのかよ。まぁいいや。ラフカディヨ・ハーンのむじな(だと思う)をとりあえず(コピペで)
解析。「顔 -> 撫でる」があって面白い。