平松の卒論の再現
キーワードを2つ入力してWebとTwitterから共起ネットワークを作成するもの
Twitter APIの記事:https://www.itti.jp/web-direction/how-to-apply-for-twitter-api/
・jupyter (デモプログラム動作確認用)
・python 64bit版
・python3.7.6
python3.7の入れ方:https://www.kkaneko.jp/tools/win/python37.html
pythonバージョンの切り替え方:https://gammasoft.jp/python/python-version-management/
1つのパソコンに複数のPythonが入っている場合、今回はPython3.7.6を用いるのでモジュールをインストールする場合は
py -3.7 -m pip install ...
とし、Pythonファイルを実行する場合は
py -3.7 Server.py
のように先頭にversionを示すように記述しなければならない
3D_GraphEX_ver2.0.zipをダウンロードする
Googledriveの平松にあるNeologd.zipファイル
まず、ダウンロードした3D_Graph_EXver2.0.zipを解凍する。
解凍した中身の3D_Graphを開く。※_MACOSXの方は使わない
・Server.py
サーバーを立てるメインのpythonプログラム
・matomeall.py
Server.pyとセットのプログラム。単体では動かない
・system.html
Server.pyを実行した後に開き、キーワード入力、3Dグラフを表示するもの
・miserables.json
スクレイピングして形態素分析した後のデータが記録されるファイル
・その他
特に触る必要はない
vscodeなどを使って3D_Graphのフォルダに入っているServer.pyを起動する
そうすると足りていないpipを要求されるのでその都度
pip install 〇〇
と入力しpipを入れる
同じことをmatomeall.pyも行う
ここでpipのバージョンが古いと警告が出るので更新する
更新の仕方は下記URLを参照
https://sagasite.hatenablog.com/entry/2021/11/02/014339
python -m pip install --upgrade pip
で更新される
インストールするモジュールの中にはただpip install 〇〇とやるだけではインストールできないものもある
例えば、chromedriverがそうで
https://qiita.com/hanzawak/items/2ab4d2a333d6be6ac760
を参考にするとできる
chromedriver-binary==96.0.4664.45
のようにするとよい
詳しい方法や最新のChrome versionを調べる方法は上記URLを参照
また、MeCabはpipとは別に本体をダウンロード&インストールしないといけない
https://qiita.com/menon/items/f041b7c46543f38f78f7
をからMecabをインストールする
※上記リンク先のanacondaのインストールはスキップ
※python3.8の場合、上記リンクのpip install mecab-python-windowsではなくpip install mecabだとできる
[失敗備忘録]
requirements.txtでpipを一括でインストールする際anaconda環境で作成するとanaconda環境じゃない人は一括でインストールできなかった
MeCabは形態素分析を行うモジュールで、その形態素分析を行うときに使う辞書がある
デフォルトの辞書では例えば「進撃の巨人」という言葉を見ても「進撃 の 巨人」という分析結果になってしまう。
これはデフォルトの辞書には進撃の巨人という名詞が存在していないから起こってしまう
そこで、Neologdという新しい辞書を追加する
Neologdの追加の仕方は、
https://qiita.com/zincjp/items/c61c441426b9482b5a48
を参考にする
詳しくは上記URL参照
googledriveからダウンロードしたneologd.zipの中身のmecab-ipadic-neologdを使う
neologd.zipを解凍した後、中身のmecab-ipadic-neologdをdicのフォルダにコピーする
そこに新しいフォルダとして、中身のないフォルダneologdを作成する
管理者権限でコマンドプロンプトを起動し,ipadicのディレクトリに移動し,ipadicの中身をUTF8に変換する
cd "c:\Program Files\MeCab\dic\ipadic"
mecab-dict-index -f utf-8 -t utf-8
Neologdの辞書をコンパイルする
cd "c:\Program Files\MeCab\dic\mecab-ipadic-neologd\seed"
mecab-dict-index -d "c:\Program Files\MeCab\dic\ipadic" -u NEologd.20200820-u.dic -f utf-8 -t utf-8 mecab-user-dict-seed.20200820.csv
mecab-ipadic-neologdのフォルダに作られたNEologd.20200820-u.dicを最初に作った空のneologdのフォルダに移動させる
コマンドプロンプトの作業は終わり
新規でmecab.exeがあるパスを追加する
C:\Program Files\MeCab\bin\
これでMecabの設定は完了
; userdic = /home/foo/bar/user.dic userdic = C:\Program Files\MeCab\dic\neologd\NEologd.20200820-u.dic
右クリックでmecabrcのプロパティを開き、Usersの「書き込み」にチェックを入れる
import sys
import MeCab
m = MeCab.Tagger ("-Ochasen")
print(m.parse ("進撃の巨人"))
matomeall.pyに書いてあるmiserables.jsonなどのpathを各自のアドレスに直す必要がある
※普通にアドレスのコピーをするとバックスラッシュになるので/に直す
TwitterAPIのアクセスキーなどが現状のままだと平松のになっているので各自で取得して変更する必要がある。~TwitterAPIに関しては参考資料の欄に書いてある
もしくは下記にもあるので参照
Server.pyを実行するとhtmlが自動的に表示される※現在のver2.0では二回開かれてしまう。
開かれたhtmlに2つキーワードを入力することで共起ネットワークが作成される
・MaxRetryError: HTTPSConnectionPool
下記のページのopensslをインストールして環境変数を通すところまでやれば直る
https://www.atmarkit.co.jp/ait/articles/1601/29/news043.html
・NetworkXError
matomeall.pyのranking関数の
class_group = driver.find_elements_by_class_name('rc')
のrcの部分がgoogleの気まぐれで変わることがあるのでchromeを開いてhtmlのタグを画像のように調べる
https://www.itti.jp/web-direction/how-to-apply-for-twitter-api/ を参考にしたけどAPIの取得がかなり緩くなったのであまり参考にならないかも.
どうやら2021/11/15日ごろにtwitterのAPIが正式にtwitterの主要APIになったらしくこれに伴い,API申請がかなり緩和され,いちいち長い文章を書く必要がなくなったらしい.一番グレードの低い「Essential」アクセスでも500000ツイート/月のツイートを取得できるらしいので私用目的ならこれで十分.
https://developer.twitter.com/en/apps/ にアクセスしてTwitterのアカウント名/電話番号/メールアドレスのいずれかを入力.その後パスワードを入力してアカウントにログインする.
Twitterを連携したら右上のほうにある「Create an app」をクリック.
ニックネーム,現在住んでいる国,利用目的,利用するデータを政府機関に公開するか否かの4つの質問に回答します.次にTwitterのポリシーみたいなものに同意します.
以上が終わるとtwitterから「Hi!ユーザー名!」のようなメールが届くので「confirm your email」をクリックするとDeveloper Portalに飛べる.
上記の作業が終わった時点でAPIKeyは作成されるが新しいAPIKeyを作成したいときは,「Dashboard」→ユーザーネームの横にある鍵マーク「Regenerate」→「Yes, Regenerate」で新しいAPIKeyが作成される.