#author("2021-11-30T01:01:09+00:00","","")
#author("2021-12-08T14:57:43+00:00","","")
[[技術資料]]

*目次 [#e890b3d5]

#CONTENTS
**【このページでできること】[#i495c384]
平松の卒論の再現

キーワードを2つ入力してWebとTwitterから共起ネットワークを作成するもの

**【参考資料】[#n524e1f0]

Twitter APIの記事:https://www.itti.jp/web-direction/how-to-apply-for-twitter-api/
**【実行環境】[#rde624e4]
・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を示すように記述しなければならない


**【ダウンロードするもの】[#udebb2c6]
3D_GraphEX_ver2.0.zipをダウンロードする
#ref(3D_GraphEX_ver2.0.zip)
Googledriveの平松にあるNeologd.zipファイル
//#ref(requirement.txt)
//anconda入れてない人はここから
//#ref(requirements.txt)
//#ref(neologd.zip)

**【使い方】[#q403d9b3]
***ファイルの説明 [#yd049dee]
まず、ダウンロードした3D_Graph_EXver2.0.zipを解凍する。~
解凍した中身の3D_Graphを開く。※_MACOSXの方は使わない
#ref(104.png,,30%)

・Server.py~
サーバーを立てるメインのpythonプログラム

・matomeall.py~
Server.pyとセットのプログラム。単体では動かない

・system.html~
Server.pyを実行した後に開き、キーワード入力、3Dグラフを表示するもの

・miserables.json~
スクレイピングして形態素分析した後のデータが記録されるファイル

・その他~
特に触る必要はない

***pythonのpip install[#u92c2494]
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
で更新される~
//anaconda promptかcommand promptで以下のコマンドのディレクトリの部分をrequirement.txtの任意のディレクトリに変更して打ち込みpipモジュールを一括でインストールする

//pip install -r C:\Users\hiram\Desktop\requirement.txt

//anaconda入れてない人はこっち
// pip install -r C:\Users\hiram\Desktop\requirements.txt

//※ERROR Could not find a version  that satisfies the requirement 〇〇〇のエラーが出たらその行をrequirement.txtから消してください

インストールするモジュールの中にはただ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の辞書】[#y7fc7a18]

MeCabは形態素分析を行うモジュールで、その形態素分析を行うときに使う辞書がある~
デフォルトの辞書では例えば「進撃の巨人」という言葉を見ても「進撃 の 巨人」という分析結果になってしまう。~
これはデフォルトの辞書には進撃の巨人という名詞が存在していないから起こってしまう~
そこで、Neologdという新しい辞書を追加する

***Neologdの追加  [#t9fb746d]
Neologdの追加の仕方は、~
https://qiita.com/zincjp/items/c61c441426b9482b5a48
を参考にする~
詳しくは上記URL参照

googledriveからダウンロードしたneologd.zipの中身のmecab-ipadic-neologdを使う

#ref(7.png,,30%)

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

#ref(3.PNG,,40%)

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

#ref(4.PNG,,40%)

mecab-ipadic-neologdのフォルダに作られたNEologd.20200820-u.dicを最初に作った空のneologdのフォルダに移動させる

コマンドプロンプトの作業は終わり


-パスを通しておく(システム環境変数の編集で変数Pathを編集する)~
~

#ref(3DGraph3-1.png,,60%)~
~

新規でmecab.exeがあるパスを追加する
 C:\Program Files\MeCab\bin\
~
#ref(3DGraph3.png,,60%)

これでMecabの設定は完了~

***辞書の更新 [#q0bc128b]

--Program Files/MeCab/etcの中にあるmecabrcをメモ帳で開き,下の一行を追加する
  ; userdic = /home/foo/bar/user.dic
 userdic = C:\Program Files\MeCab\dic\neologd\NEologd.20200820-u.dic

***mecabrcを上書き保存する際、アクセス許可がないという旨のエラーが出るとき [#u99aa8e9]
右クリックでmecabrcのプロパティを開き、Usersの「書き込み」にチェックを入れる
#ref(3DGraph4-1.png,,60%)

--下図の4行をjupyterなどで記述し、実行して形態素解析結果が出ればOK~
以下にjupyterのデモプログラムを添付する
#ref(dictionary.ipynb)
 import sys
 import MeCab
 m = MeCab.Tagger ("-Ochasen")
 print(m.parse ("進撃の巨人"))
#ref(106.png,,30%)

~

**【コードの個人で書き換える箇所】  [#u6c63b64]

***ディレクトリの書き換え [#dbac3a9e]

matomeall.pyに書いてあるmiserables.jsonなどのpathを各自のアドレスに直す必要がある~
※普通にアドレスのコピーをするとバックスラッシュになるので/に直す
#ref(7.PNG,,60%)

***TwitterAPIのKey [#dbac3a9e]
TwitterAPIのアクセスキーなどが現状のままだと平松のになっているので各自で取得して変更する必要がある。~TwitterAPIに関しては[[参考資料>#n524e1f0]]の欄に書いてある~
もしくは下記にもあるので参照

#ref(チャ.PNG,,60%)


**【実行】[#t31e1da4]

*** 実行の仕方と結果 [#p5653235]
Server.pyを実行するとhtmlが自動的に表示される※現在のver2.0では二回開かれてしまう。~
開かれたhtmlに2つキーワードを入力することで共起ネットワークが作成される
#ref(21.png,,20%)

**【エラーの対処】[#rde624e4]

・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のタグを画像のように調べる
(12月8日の時点では'yuRUbf'で問題なく動作した)
#ref(22.png,,20%)




**Twitter API の取得方法 [#b19172d2]
https://www.itti.jp/web-direction/how-to-apply-for-twitter-api/ を参考にしたけどAPIの取得がかなり緩くなったのであまり参考にならないかも.~
どうやら2021/11/15日ごろにtwitterのAPIが正式にtwitterの主要APIになったらしくこれに伴い,API申請がかなり緩和され,いちいち長い文章を書く必要がなくなったらしい.一番グレードの低い「Essential」アクセスでも500000ツイート/月のツイートを取得できるらしいので私用目的ならこれで十分.~
~

***Twitterアカウント連携 [#of763817]
https://developer.twitter.com/en/apps/ にアクセスしてTwitterのアカウント名/電話番号/メールアドレスのいずれかを入力.その後パスワードを入力してアカウントにログインする.
***Twitter API 利用申請 [#x159fe25]
Twitterを連携したら右上のほうにある「Create an app」をクリック.~
ニックネーム,現在住んでいる国,利用目的,利用するデータを政府機関に公開するか否かの4つの質問に回答します.次にTwitterのポリシーみたいなものに同意します.~
以上が終わるとtwitterから「Hi!ユーザー名!」のようなメールが届くので「confirm your email」をクリックするとDeveloper Portalに飛べる.
#ref(ss2.png)
***Twitter API Key の作成 [#q9356ca8]
上記の作業が終わった時点でAPIKeyは作成されるが新しいAPIKeyを作成したいときは,「Dashboard」→ユーザーネームの横にある鍵マーク「Regenerate」→「Yes, Regenerate」で新しいAPIKeyが作成される.
#ref(ss4.png)

トップ   編集 差分 履歴 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS