Jupyter notebook による検索から3Dグラフ構築
の編集
Top
/
Jupyter notebook による検索から3Dグラフ構築
[
トップ
] [
編集
|
差分
|
履歴
|
添付
|
リロード
] [
新規
|
一覧
|
検索
|
最終更新
|
ヘルプ
]
-- 雛形とするページ --
島部/menu/template
[[技術メモ]] このサイトは[[スクレイピング・自然言語処理・3Dグラフ]]をもとに作成しています。 #contents * 行うこと [#vbb3086e] -WEBサイトから文章を自動取得(スクレイピング) -自然言語処理(形態素解析)で取得した文章を単語に分解 -単語間の共起頻度を計算し、隣接行列を作成する -隣接行列から3Dグラフを生成する ** キーワード [#y158d4a1] -スクレイピング --Webサイトから何かしらのデータを自動で取ってくる技術のこと -テキストマイニング --文章中の単語どうしのつながりなどを分析し、有用な情報を見つける(マイニングする)こと - Jupyter notebook --ブラウザ上で開発する統合開発環境 --プログラム(主にPython)を対話的に実行できる *前準備 [#t210542d] **(1)添付フォルダのダウンロード [#p76f8c3c] //#ref(Websc3D.zip,,添付フォルダ1) #ref(Websc3Dgraph.zip,,添付フォルダ) フォルダ内のファイルについて -keywords.csv --スクレイピングする際に必要なキーワードを入れるcsvファイル -stopwprd.txt --文章から除外する指示語や代名詞を載せたリスト -4つのJavaScript(js)ファイル --3Dグラフがhtml上で動作するのに必要なもの -Server.py --Jupyterで作成したグラフ情報をhtmlに送るためのもの -web3D.html --3Dグラフを描画する場所 -web_tmining3dg.jpynb --テキストマイニングを行うJupyterファイル -(neologd内)NEologd.20200820-u.dic(必要に応じて配布する) --文章を単語に分解する際に参照する辞書 **(2)pythonからjupyterインストール [#p8f1dfa4] -コマンドプロンプトでpythonのパスの通りを確認 python -V -jupyterをインストール pip install jupyter environment_kernels -jupyter起動 jupyter notebook ***Anacondaを使っている場合 [#xa241e71] Anacondaプロンプトを開き、以下の手順でjupyterをインストール -(base)が表示されている状態(base環境でログイン)で、3Dグラフ用の仮想環境を作成する conda create -n graph python=3.7.13 -y (graphは仮想環境名) -作成した環境に切り替える(ログイン) conda activate graph -jupyterをインストール pip install jupyter environment_kernels -pandasもインストールしておく pip install pandas **(3)プログラム編集ページの起動 [#q1ea3350] ***1.起動後のホーム画面からDLしたフォルダ(Websc3Dgraph)をたどって、web_tmining3dg.ipynbを開く [#hbf43353] #ref(3DGraph-pre.png,,40%)~ -開くと今回実行するプログラムが表示される ~ #ref(3DGraph-pre2.png,,40%) -jupyterではプログラムを分割し、一行単位でプログラムの挙動を確認できる~ →システム開発(or誰かが作ったプログラムの確認)をするときに便利 -今回はプログラムを20処理分に分割してあるので、順番に実行していく ~ *プログラム実行手順 [#d2478c54] **操作方法と注意事項 [#l7f5c18a] -Shift + Enterで実行できる -処理中は左上のマークが[*]となり、終わると[1]のような番号が出るのでそれまで待つ -実行のたびに番号が加算されていく(番号を頼りにどこまで実行したかを把握) -jupyterを動かしているプロンプトで「Ctrl + C」orプロンプトを閉じると、カーネルがリセットされ、1番目からやり直しする必要があるので注意 -基本はプログラムを一つずつ実行することになる --コメントアウトに実行順が書かれている --実行前にやること、実行時のエラー対応、処理の補足説明を載せているので、その都度確認する //-importでno moduleエラーが出ると思うのでpip installしていく //-jupyter画面左上の+でコードを書くセルを出せるので、そこに打ち込んでいく //入れるもの //scipy //requests_oauthlib //スクレイピング用 //selenium //chromedriver_binary //bs4 //lxml //自然言語処理用 //emoji //nltk //MeCab //3Dグラフ用 //networkx //Server.py起動用 //flask //flask_cors ** #1 実行時 [#r53ffa6b] -requirements.txt内に記載のモジュールをpipインストール -実行中に「No module named ~」と出るなら追加インストール !pip install ~ ** #4の補足 [#v0c92b07] -以下のようなcsvを読み込んでいる #ref(3DGraph0.png,,40%) -属性データには「大学生・夫婦」などの人・物、検索キーワードには検索したいワード(大学 バイトなど)、地名データには地名(東京・太閤山など)を入れる。キーワードなしのときは「指定しない」を入れる -これらのキーワードをもとにGoogle検索→スクレイピングしていく ** #5(スクレイピング)実行時 [#ibf3ac9e] -下のようなエラーが出る場合(ChromeでJupyterを開いた場合) --ChromeDriverのバージョンがChromeブラウザよりも古いことで起こる SessionNotCreatedException: Message: session not created: This version of ChromeDriver only supports Chrome version 88 Current browser version is 92.0.4515.131 with binary path C:\Program Files (x86)\Google\Chrome\Application\chrome.exe (88と92で異なっている) Cheomeブラウザと同じバージョンをpip install(ver.88→ver.92へ) !pip install chromedriver-binary==92.0.4515.131 おそらく赤字でエラーが出る ERROR: Could not find a version that satisfies the requirement chromedriver-binary==92.0.4515.131 (from versions: ~~~, 91.0.4472.101.0, 92.0.4515.43.0, 92.0.4515.107.0, 93.0.4577.15.0) ERROR: No matching distribution found for chromedriver-binary==92.0.4515.131 バージョンが列記されると思うので、一番近いバージョンをインストール !pip install chromedriver-binary==92.0.4515.107.0 (2023/01現在だとver108.X.X.Xあたり?) ~ -逆パターンでChromeDriver(ver.93)がChromeブラウザ(ver.92.0.4515.107.0)よりも新しい場合がある~ --その場合もブラウザと同じバージョンのChromeDriverをインストールする !pip install chromedriver-binary==92.0.4515.107.0 *** #5の補足 [#v65e3304] -csvに入れたキーワードで自動検索する処理を行う~ -GoogleトップのHTMLで検索窓を実装しているタグ(qというnameタグ)を探し,そこにキーワードを打ち込んで検索ボタンを勝手に押すようにしている(「検証」で確認できる) #ref(3DGraph1.png,,40%) ~ -#3のrankinng関数を呼び出し,検索結果のwebサイトのリンクとタイトルをスクレイピングする~ (→どちらもtF2Cxcというclassタグに入っているので,そこを見つけて取ってきている) #ref(3DGraph2.png,,40%) ** #6の補足 [#r0f3d2c7] -保存したリンク先(links.txt)のWebサイトに飛び,文章をスクレイピングする --最終的に1つのテキストファイルに文章が保存される(webtext.txt) ** #8の実行前にやること [#hf17a28b] -Mecab(形態素分析を行うモジュール)をインストールする(リンク先の.exeのみ) --#1でもPythonのMeCabをpipしたが、PC本体にも入れる必要がある https://github.com/ikegami-yukino/mecab/releases/tag/v0.996 -パスを通しておく(システム環境変数の編集で変数Pathを編集する) #ref(3DGraph3-1.png,,60%) -新規でmecab.exeがあるパスを追加する C:\Program Files\MeCab\bin\ ~ #ref(3DGraph3.png,,60%) *** MeCabを試す(ここは飛ばしても良い) [#nb96e344] -試しにmecabと打った後、「形態素解析」と打ってみる --何か出てEOSが表示されていればOK -pythonでもmecabを試す --下図の4行をJupyterにコピペして態素解析結果が出ればOK import sys import MeCab m = MeCab.Tagger ("-Ochasen") print(m.parse ("東京特許許可局")) #ref(3DGraph3-2.png,,40%) ~ ** #8の実行前にやること2(辞書の更新)[#q0bc128b] #8でやっていること:文章から不必要な文字列を除去し,Mecabの辞書に基づいて単語単位に分割する -インストールしたMecabには古い辞書しか入っていないので、NEologdという新しい辞書を追加する //-C:\Program Files\MeCab\dic 内に配布フォルダ内dicの中のneologdをコピーする //--MeCabをPCにインストールすると基本Program Filesの中に入る? //#ref(3DGraph4.png,,40%) -GoogleDrive(iie.lab.tpu.1920)の平松さんのページに行き、「neologd.zip」をDLする -解凍したneologdの中身のmecab-ipadic-neologdをdicのフォルダにコピーする #ref(dic1.png,,40%) --dicの中でipadic-UTF8を作成しipadicの中身を全部コピぺする --同様に空のフォルダneologdも作成する -管理者権限でコマンドプロンプトを起動し(管理者として実行),ipadic-UTF8のディレクトリに移動し,ipadicの中身をUTF8に変換する cd "c:\Program Files\MeCab\dic\ipadic-UTF8" mecab-dict-index -f utf-8 -t utf-8 #ref(dic2.png,,40%) -Neologdの辞書をコンパイルする cd "c:\Program Files\MeCab\dic\mecab-ipadic-neologd\seed" mecab-dict-index -d "c:\Program Files\MeCab\dic\ipadic-UTF8" -u NEologd.20200820-u.dic -f utf-8 -t utf-8 mecab-user-dict-seed.20200820.csv #ref(dic3.png,,40%) -mecab-ipadic-neologdのフォルダ内に作られた「NEologd.20200820-u.dic」を先ほど作った空のneologdフォルダに移動させる -Program Files/MeCab/etcの中にあるmecabrcをメモ帳で開き,下の一行を追加する ; userdic = /home/foo/bar/user.dic userdic = C:\Program Files\MeCab\dic\neologd\NEologd.20200820-u.dic -- エラー対応(mecabrcを上書き保存する際、「アクセス許可がない」という旨のメッセージが出るとき --右クリックでmecabrcのプロパティを開き、Usersの「書き込み」にチェックを入れる #ref(3DGraph4-1.png,,60%) *** #8の補足(辞書(dic)について) [#xb395eab] -どのような単位で単語を区切るかなどのルールを記したもの -辞書はなるべく頻繁に更新したほうがいい --デフォルトの辞書(2007年版?)では「進撃の巨人」に対して「進撃 の 巨人」という分析をしてしまう~ --辞書を日々更新することで流行語などを正確に1つの単語として分析してくれる *** #8の補足2(形態素解析について) [#t7b5c738] -形態素解析:文章を意味のある最小単位の単語(形態素)に分解し、単語間の関係性を分析(自然言語処理の一種) -形態素解析ツールは複数あるが、今回は「Mecab」を使用 *** #12補足~ [#r0608430] -隣接行列が生成される(まだ要素は0のまま) --隣接行列は3Dグラフの基となるもので、行の単語から列の単語に向かって矢印が描かれ,値がエッジ(辺)の太さになる #ref(ad_matrix.png,,40%) *** #13の補足[#tecdfe58] -単語の共起頻度を計算する --共起の定義はいろいろあるが、ここでは文章の中で単語Aの後ろに単語Bが出てきたとき、「BがAに共起されたと」という捉え方をしている --このとき隣接行列では(行)A→(列)Bの方向に+1される --それが3DグラフでのノードAからノードBへの線(エッジ)と重み(共起頻度)となる -word_list(重複している単語リスト)を基に単語の順序関係を見ている ~ #ref(3DGraph5.png,,40%) -上図の例では、単語'あ'の次に'う'が来ているので隣接行列の'あ'行'う'列の要素に+1される --文章中の単語'あ'から'う'が1回共起されたとみなす *** #14の補足 [#pde39fbb] --全ての行の共起頻度の合計を計算する --合計値の大きい順に単語を並び替える(列に対しても同じ操作をする) --上位数十件(DfNumで調整)の単語だけ切り取った隣接行列を作る *** #15の補足 [#v604d322] --単語の重み(正規化した共起頻度)を出す *** #16の補足 [#bb94ca83] --閾値以下の単語を除外して,新しい隣接行列を作る *** #17の補足~ [#db7f2224] -今pandasのデータフレーム型になっている隣接行列をpythonの辞書型に変換する --この辞書を参考に3Dグラフが作られる -"nodes"にはノード(頂点)に入れる単語の情報が入る --csvのキーワードになっている単語のみ赤色になる -"links"にはエッジ(辺)の情報(矢印の出発ノードから到着ノード,辺の太さweight(単語どうしの共起頻度など))が入る *** #18の補足~ [#j7246c58] -辞書型のデータをjson形式にする --サーバにデータを送信する際、配列や辞書はjson形式に変換される場合が多い *** #19,#20番目の補足~ [#v7db6352] -サーバ経由でデータを送って,htmlで3Dグラフを描画する -Internet Explorerで開かれる場合、デフォルトで開くブラウザを変更する --BackgroundBrowser()の中にはchrome.exeが保存されているパスを指定する(windows画面左下でchrome.exeを検索する) **ゼミ課題 [#d2f34bc0] -keyword.csvを編集して2単語以上でスクレイピング・3Dグラフ作成を行う --csvを書き換えた後、#4から#20まで再び実行する -組み合わせは何でもあり --「属性データ+検索キーワード」「属性+地名+検索キー」でもOK --検索キーワードx2でも可能(この場合、検索キーワード列の中身は「単語A(半角スペース)単語Bのように入れる)
タイムスタンプを変更しない
[[技術メモ]] このサイトは[[スクレイピング・自然言語処理・3Dグラフ]]をもとに作成しています。 #contents * 行うこと [#vbb3086e] -WEBサイトから文章を自動取得(スクレイピング) -自然言語処理(形態素解析)で取得した文章を単語に分解 -単語間の共起頻度を計算し、隣接行列を作成する -隣接行列から3Dグラフを生成する ** キーワード [#y158d4a1] -スクレイピング --Webサイトから何かしらのデータを自動で取ってくる技術のこと -テキストマイニング --文章中の単語どうしのつながりなどを分析し、有用な情報を見つける(マイニングする)こと - Jupyter notebook --ブラウザ上で開発する統合開発環境 --プログラム(主にPython)を対話的に実行できる *前準備 [#t210542d] **(1)添付フォルダのダウンロード [#p76f8c3c] //#ref(Websc3D.zip,,添付フォルダ1) #ref(Websc3Dgraph.zip,,添付フォルダ) フォルダ内のファイルについて -keywords.csv --スクレイピングする際に必要なキーワードを入れるcsvファイル -stopwprd.txt --文章から除外する指示語や代名詞を載せたリスト -4つのJavaScript(js)ファイル --3Dグラフがhtml上で動作するのに必要なもの -Server.py --Jupyterで作成したグラフ情報をhtmlに送るためのもの -web3D.html --3Dグラフを描画する場所 -web_tmining3dg.jpynb --テキストマイニングを行うJupyterファイル -(neologd内)NEologd.20200820-u.dic(必要に応じて配布する) --文章を単語に分解する際に参照する辞書 **(2)pythonからjupyterインストール [#p8f1dfa4] -コマンドプロンプトでpythonのパスの通りを確認 python -V -jupyterをインストール pip install jupyter environment_kernels -jupyter起動 jupyter notebook ***Anacondaを使っている場合 [#xa241e71] Anacondaプロンプトを開き、以下の手順でjupyterをインストール -(base)が表示されている状態(base環境でログイン)で、3Dグラフ用の仮想環境を作成する conda create -n graph python=3.7.13 -y (graphは仮想環境名) -作成した環境に切り替える(ログイン) conda activate graph -jupyterをインストール pip install jupyter environment_kernels -pandasもインストールしておく pip install pandas **(3)プログラム編集ページの起動 [#q1ea3350] ***1.起動後のホーム画面からDLしたフォルダ(Websc3Dgraph)をたどって、web_tmining3dg.ipynbを開く [#hbf43353] #ref(3DGraph-pre.png,,40%)~ -開くと今回実行するプログラムが表示される ~ #ref(3DGraph-pre2.png,,40%) -jupyterではプログラムを分割し、一行単位でプログラムの挙動を確認できる~ →システム開発(or誰かが作ったプログラムの確認)をするときに便利 -今回はプログラムを20処理分に分割してあるので、順番に実行していく ~ *プログラム実行手順 [#d2478c54] **操作方法と注意事項 [#l7f5c18a] -Shift + Enterで実行できる -処理中は左上のマークが[*]となり、終わると[1]のような番号が出るのでそれまで待つ -実行のたびに番号が加算されていく(番号を頼りにどこまで実行したかを把握) -jupyterを動かしているプロンプトで「Ctrl + C」orプロンプトを閉じると、カーネルがリセットされ、1番目からやり直しする必要があるので注意 -基本はプログラムを一つずつ実行することになる --コメントアウトに実行順が書かれている --実行前にやること、実行時のエラー対応、処理の補足説明を載せているので、その都度確認する //-importでno moduleエラーが出ると思うのでpip installしていく //-jupyter画面左上の+でコードを書くセルを出せるので、そこに打ち込んでいく //入れるもの //scipy //requests_oauthlib //スクレイピング用 //selenium //chromedriver_binary //bs4 //lxml //自然言語処理用 //emoji //nltk //MeCab //3Dグラフ用 //networkx //Server.py起動用 //flask //flask_cors ** #1 実行時 [#r53ffa6b] -requirements.txt内に記載のモジュールをpipインストール -実行中に「No module named ~」と出るなら追加インストール !pip install ~ ** #4の補足 [#v0c92b07] -以下のようなcsvを読み込んでいる #ref(3DGraph0.png,,40%) -属性データには「大学生・夫婦」などの人・物、検索キーワードには検索したいワード(大学 バイトなど)、地名データには地名(東京・太閤山など)を入れる。キーワードなしのときは「指定しない」を入れる -これらのキーワードをもとにGoogle検索→スクレイピングしていく ** #5(スクレイピング)実行時 [#ibf3ac9e] -下のようなエラーが出る場合(ChromeでJupyterを開いた場合) --ChromeDriverのバージョンがChromeブラウザよりも古いことで起こる SessionNotCreatedException: Message: session not created: This version of ChromeDriver only supports Chrome version 88 Current browser version is 92.0.4515.131 with binary path C:\Program Files (x86)\Google\Chrome\Application\chrome.exe (88と92で異なっている) Cheomeブラウザと同じバージョンをpip install(ver.88→ver.92へ) !pip install chromedriver-binary==92.0.4515.131 おそらく赤字でエラーが出る ERROR: Could not find a version that satisfies the requirement chromedriver-binary==92.0.4515.131 (from versions: ~~~, 91.0.4472.101.0, 92.0.4515.43.0, 92.0.4515.107.0, 93.0.4577.15.0) ERROR: No matching distribution found for chromedriver-binary==92.0.4515.131 バージョンが列記されると思うので、一番近いバージョンをインストール !pip install chromedriver-binary==92.0.4515.107.0 (2023/01現在だとver108.X.X.Xあたり?) ~ -逆パターンでChromeDriver(ver.93)がChromeブラウザ(ver.92.0.4515.107.0)よりも新しい場合がある~ --その場合もブラウザと同じバージョンのChromeDriverをインストールする !pip install chromedriver-binary==92.0.4515.107.0 *** #5の補足 [#v65e3304] -csvに入れたキーワードで自動検索する処理を行う~ -GoogleトップのHTMLで検索窓を実装しているタグ(qというnameタグ)を探し,そこにキーワードを打ち込んで検索ボタンを勝手に押すようにしている(「検証」で確認できる) #ref(3DGraph1.png,,40%) ~ -#3のrankinng関数を呼び出し,検索結果のwebサイトのリンクとタイトルをスクレイピングする~ (→どちらもtF2Cxcというclassタグに入っているので,そこを見つけて取ってきている) #ref(3DGraph2.png,,40%) ** #6の補足 [#r0f3d2c7] -保存したリンク先(links.txt)のWebサイトに飛び,文章をスクレイピングする --最終的に1つのテキストファイルに文章が保存される(webtext.txt) ** #8の実行前にやること [#hf17a28b] -Mecab(形態素分析を行うモジュール)をインストールする(リンク先の.exeのみ) --#1でもPythonのMeCabをpipしたが、PC本体にも入れる必要がある https://github.com/ikegami-yukino/mecab/releases/tag/v0.996 -パスを通しておく(システム環境変数の編集で変数Pathを編集する) #ref(3DGraph3-1.png,,60%) -新規でmecab.exeがあるパスを追加する C:\Program Files\MeCab\bin\ ~ #ref(3DGraph3.png,,60%) *** MeCabを試す(ここは飛ばしても良い) [#nb96e344] -試しにmecabと打った後、「形態素解析」と打ってみる --何か出てEOSが表示されていればOK -pythonでもmecabを試す --下図の4行をJupyterにコピペして態素解析結果が出ればOK import sys import MeCab m = MeCab.Tagger ("-Ochasen") print(m.parse ("東京特許許可局")) #ref(3DGraph3-2.png,,40%) ~ ** #8の実行前にやること2(辞書の更新)[#q0bc128b] #8でやっていること:文章から不必要な文字列を除去し,Mecabの辞書に基づいて単語単位に分割する -インストールしたMecabには古い辞書しか入っていないので、NEologdという新しい辞書を追加する //-C:\Program Files\MeCab\dic 内に配布フォルダ内dicの中のneologdをコピーする //--MeCabをPCにインストールすると基本Program Filesの中に入る? //#ref(3DGraph4.png,,40%) -GoogleDrive(iie.lab.tpu.1920)の平松さんのページに行き、「neologd.zip」をDLする -解凍したneologdの中身のmecab-ipadic-neologdをdicのフォルダにコピーする #ref(dic1.png,,40%) --dicの中でipadic-UTF8を作成しipadicの中身を全部コピぺする --同様に空のフォルダneologdも作成する -管理者権限でコマンドプロンプトを起動し(管理者として実行),ipadic-UTF8のディレクトリに移動し,ipadicの中身をUTF8に変換する cd "c:\Program Files\MeCab\dic\ipadic-UTF8" mecab-dict-index -f utf-8 -t utf-8 #ref(dic2.png,,40%) -Neologdの辞書をコンパイルする cd "c:\Program Files\MeCab\dic\mecab-ipadic-neologd\seed" mecab-dict-index -d "c:\Program Files\MeCab\dic\ipadic-UTF8" -u NEologd.20200820-u.dic -f utf-8 -t utf-8 mecab-user-dict-seed.20200820.csv #ref(dic3.png,,40%) -mecab-ipadic-neologdのフォルダ内に作られた「NEologd.20200820-u.dic」を先ほど作った空のneologdフォルダに移動させる -Program Files/MeCab/etcの中にあるmecabrcをメモ帳で開き,下の一行を追加する ; userdic = /home/foo/bar/user.dic userdic = C:\Program Files\MeCab\dic\neologd\NEologd.20200820-u.dic -- エラー対応(mecabrcを上書き保存する際、「アクセス許可がない」という旨のメッセージが出るとき --右クリックでmecabrcのプロパティを開き、Usersの「書き込み」にチェックを入れる #ref(3DGraph4-1.png,,60%) *** #8の補足(辞書(dic)について) [#xb395eab] -どのような単位で単語を区切るかなどのルールを記したもの -辞書はなるべく頻繁に更新したほうがいい --デフォルトの辞書(2007年版?)では「進撃の巨人」に対して「進撃 の 巨人」という分析をしてしまう~ --辞書を日々更新することで流行語などを正確に1つの単語として分析してくれる *** #8の補足2(形態素解析について) [#t7b5c738] -形態素解析:文章を意味のある最小単位の単語(形態素)に分解し、単語間の関係性を分析(自然言語処理の一種) -形態素解析ツールは複数あるが、今回は「Mecab」を使用 *** #12補足~ [#r0608430] -隣接行列が生成される(まだ要素は0のまま) --隣接行列は3Dグラフの基となるもので、行の単語から列の単語に向かって矢印が描かれ,値がエッジ(辺)の太さになる #ref(ad_matrix.png,,40%) *** #13の補足[#tecdfe58] -単語の共起頻度を計算する --共起の定義はいろいろあるが、ここでは文章の中で単語Aの後ろに単語Bが出てきたとき、「BがAに共起されたと」という捉え方をしている --このとき隣接行列では(行)A→(列)Bの方向に+1される --それが3DグラフでのノードAからノードBへの線(エッジ)と重み(共起頻度)となる -word_list(重複している単語リスト)を基に単語の順序関係を見ている ~ #ref(3DGraph5.png,,40%) -上図の例では、単語'あ'の次に'う'が来ているので隣接行列の'あ'行'う'列の要素に+1される --文章中の単語'あ'から'う'が1回共起されたとみなす *** #14の補足 [#pde39fbb] --全ての行の共起頻度の合計を計算する --合計値の大きい順に単語を並び替える(列に対しても同じ操作をする) --上位数十件(DfNumで調整)の単語だけ切り取った隣接行列を作る *** #15の補足 [#v604d322] --単語の重み(正規化した共起頻度)を出す *** #16の補足 [#bb94ca83] --閾値以下の単語を除外して,新しい隣接行列を作る *** #17の補足~ [#db7f2224] -今pandasのデータフレーム型になっている隣接行列をpythonの辞書型に変換する --この辞書を参考に3Dグラフが作られる -"nodes"にはノード(頂点)に入れる単語の情報が入る --csvのキーワードになっている単語のみ赤色になる -"links"にはエッジ(辺)の情報(矢印の出発ノードから到着ノード,辺の太さweight(単語どうしの共起頻度など))が入る *** #18の補足~ [#j7246c58] -辞書型のデータをjson形式にする --サーバにデータを送信する際、配列や辞書はjson形式に変換される場合が多い *** #19,#20番目の補足~ [#v7db6352] -サーバ経由でデータを送って,htmlで3Dグラフを描画する -Internet Explorerで開かれる場合、デフォルトで開くブラウザを変更する --BackgroundBrowser()の中にはchrome.exeが保存されているパスを指定する(windows画面左下でchrome.exeを検索する) **ゼミ課題 [#d2f34bc0] -keyword.csvを編集して2単語以上でスクレイピング・3Dグラフ作成を行う --csvを書き換えた後、#4から#20まで再び実行する -組み合わせは何でもあり --「属性データ+検索キーワード」「属性+地名+検索キー」でもOK --検索キーワードx2でも可能(この場合、検索キーワード列の中身は「単語A(半角スペース)単語Bのように入れる)
テキスト整形のルールを表示する