#author("2022-11-28T10:27:36+00:00","","")
#author("2022-11-28T10:30:34+00:00","","")
[[専門ゼミ(蒲田)]]


*目次 [#w9b976b5]

#CONTENTS

***ここでできること [#i421f0d8]
インターネットよりほしい情報を効率的に取り入れることができる. 
*スクレイピングのやり方[#ie08a2ef]

**beautifulsoup4によるスクレイピング [#ie08a2ef]
-[[デモデータの作成]] ~

***beautifulsoup4の導入 [#ufcab7f3]
***beautifulsoup4の使い方 [#ufcab7f3]

**seleniumによるスクレイピング [#ga1c2f7d]
Seleniumというのは


***Seleniumの導入 [#c7df3d58]
***Seleniumの使い方 [#ze850b3a]

**協調フィルタリング [#u6d50e13]
***協調フィルタリングとは [#i36c5908]
協調フィルタリングの定義は,「協調フィルタリングは与えられたデータから規則性を見つけ出し,利用者がまだ知らない情報を予測するものである」です.詳しくはこの論文読んでね.
#ref(情報推薦のアルゴリズム.pdf,,情報推薦のアルゴリズム)

***教学データに対する協調フィルタリング [#h0f2d234]
滝沢の卒論では教学データに対して協調フィルタリングを行います.
-[[pythonによるユーザーベース協調フィルタリングの実装]] ~
詳しくはこちらにまとめてます.

**シラバスからキーワード抽出 [#v6774ab0]
シラバスから各授業における「キーワード」を抽出します.このキーワードをあらかじめ抽出しておくことで後の教材作成に役立てます.

***準備 [#j661bc61]
pythonでhtml解析を行う際に便利なのがBeautifulSoupというライブラリです.コマンドプロンプトを開いて
 pip install beautifulsoup4

***キーワード抽出 [#x6d80d4b]
富山県立大学のwebシラバスから授業ごとのキーワードを抜き出します.~
~
ここで少しやっかいなのが,webシラバスは科目区分や配当学年から絞り込みを行ってもurlが変化しません.つまり,上のurlについてhtml解析を行っても何の情報も得られません.~
そこでかなり面倒なのですが一つ一つの科目のwebシラバスを「選択」から開いてやります.そうすると新しいウインドが出ると思いますがこのウインドについては授業ごとにurlが割り当てられているのでこのurlを使用します.

***url取得 [#r4175433]
https://tpuwswebsv.pu-toyama.ac.jp/public/web/Syllabus/WebSyllabusKensaku/UI/WSL_SyllabusKensaku.aspx~
富山県立大学のwebシラバスにアクセス→自分が取得したい科目の「選択」を押す→新しいウインドが出てくるのでurlをコピー

***サンプルコード [#c8a5e552]
#ref(screiping.py,,サンプルコード)~
まずは必要なパッケージをインポート
 import requests
 from bs4 import BeautifulSoup
 import re
 import time
 import csv
 import pandas as pd

webページのurlを指定してhtmlを解析します.html内で授業科目名とキーワードについてidが割り振られているのでidを指定してhtml内からそれぞれを抽出します.同じような処理が続いていますが,これは上記した理由でこうなっています.urlを科目ごとに変えることで科目ごとのキーワードが取得できます.

 # Webページを取得して解析する
 url = "https://tpuwswebsv.pu-toyama.ac.jp/public/web/Syllabus/WebSyllabusSansho/UI/WSL_SyllabusSansho.aspx? 
 P1=1025535&P2=2021&P3=20210401"
 html = requests.get(url)
 soup = BeautifulSoup(html.content, "html.parser")
 
 #授業科目
 koginame = soup.find(id = 'lblKogiName').text
 
 #キーワード
 keyword = re.split('[,_,_、]',soup.find(id ='lblHyokaHoho').text.strip().replace(' ',''))
最後に全てのキーワードをまとめてcsvファイルで出力します.
 keyword_all = []
 keyword_all.append(keyword)
 keyword_all.append(keyword1)
 keyword_all.append(keyword2)
 keyword_all.append(keyword3)
 keyword_all.append(keyword4)
 #print(keyword_all)
 
 koginame_Df = pd.DataFrame(keyword_all,index=[f'{koginame}',f'{koginame1}',f'{koginame2}',f'{koginame3}',f'{koginame4}'],columns=None)
 print(koginame_Df)
 koginame_Df.to_csv('C:/Users/takky/富山県立大学/研究室/卒業研究/RecommendSystem/New Demodata/koginame.csv',columns=None,encoding='shift-jis')

#ref(ss2.png,,50%)
このようなcsvファイルが出力されればOKです.csvファイルの出力先はお好きな場所に変更してください.~
次はこのcsvファイルを使ってwebページとyoutubeからのスクレイピングを行います.

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