専門ゼミ(平井)

目次 

ここでできること 

このページを読めば滝沢の卒論の再現ができるはずです.

デモデータの作成 

学生の成績データが欲しかったが実際の学生のデータをもらうことが出来なかったのでダミーデータを作って分析します.

協調フィルタリング 

協調フィルタリングとは 

協調フィルタリングの定義は,「協調フィルタリングは与えられたデータから規則性を見つけ出し,利用者がまだ知らない情報を予測するものである」です.詳しくはこの論文読んでね.

#ref(): File not found: "情報推薦のアルゴリズム.pdf" at page "教学データとシラバスからの情報推薦と教材自動作成"

教学データに対する協調フィルタリング 

滝沢の卒論では教学データに対して協調フィルタリングを行います.

シラバスからキーワード抽出 

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

準備 

pythonでhtml解析を行う際に便利なのがBeautifulSoupというライブラリです.コマンドプロンプトを開いて

pip install beautifulsoup4

キーワード抽出 

富山県立大学のwebシラバスから授業ごとのキーワードを抜き出します.

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

url取得 

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

サンプルコード 

#ref(): File not found: "screiping.py" at page "教学データとシラバスからの情報推薦と教材自動作成"

まずは必要なパッケージをインポート

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(): File not found: "ss2.png" at page "教学データとシラバスからの情報推薦と教材自動作成"

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


トップ   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS