python 3.11で実行確認済み
中市先輩の技術資料からは細かな部分に変更があるため、こちらのほうだけを確認し作業する様に
iie.lab.tpu.2324にアクセス.
中市のページを開く,それを前提にして話す.
MeCab は日本語の形態素解析エンジンの一つで、文章を単語(形態素)ごとに分割し、それぞれの品詞を解析するツール
MeCabは、自然言語処理の分野で広く利用されており、形態素解析が必要な検索エンジン、機械翻訳、テキストマイニングなどに役立つ
https://github.com/ikegami-yukino/mecab/releases/tag/v0.996
C:\Program Files\MeCab\bin\
文章から不必要な文字列を除去し,Mecabの辞書に基づいて単語単位に分割する
cd "c:\Program Files\MeCab\dic\ipadic-UTF8" mecab-dict-index -f utf-8 -t utf-8
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
; userdic = /home/foo/bar/user.dic userdic = C:\Program Files\MeCab\dic\neologd\NEologd.20200820-u.dic
スクレイピング.zipをダウンロード
このスクレイピングのところでエラーが出る場合は,Seleniumのバージョンが最新になってる可能性があるので4.1.0以降にする.(最新版だとプログラムの書き方が変わったから)
keyword.csvを書き換えると検索ワードが変化する.
chromeを使ったスクレイピング,実際に画面が現れ遷移するのが特徴
chromeは勝手に更新するので常に最新版になっている
そのためdriverも常に更新し続けなければならない
ここからchromeのバージョンにあったものをダウンロードする
一回サイトの場所が変わってるので,また変わるかもしれない 注意
pipでインストールすることもできるだろうが,わかりやすいしスクレイピング実行ディレクトリに入れとくだけでもいい.
sakusei_sale.pyを実行
youtubeのスクレイピングを一瞬でできるapi
このAPIキーを使用することによりプログラムを利用して動画情報やチャンネル情報の取得ができるようになる。
video_sakusei.py の api_key を取得したものに書き換えて実行
make_database.pyを実行することで,app.pyで使えるファイルに変化する。
例として作成したものが "教材データ.zip" である。
膨大な量のhtmlが必要であるので繰り返しを使ってhtmlを作っている.
ドライブからhtml作成.zipをダウンロードする
first/html.pyは教材ページに飛ぶまでの中間地点をつくる.
派生するならここにキーワードを入れるといいとおもう.
second/kyouzai.pyは教材ページを作る
作科目単元カテゴリ,理解度作成.zipをダウンロードし,
rikai_html_sakusei1(小学生)2(中学生)or3(高校生).pyを実行するとメインプログラム/app/templatesのrikai1(小学生)or2(中学生)or3(高校生).htmlが作成される.
メインプログラム.zipをダウンロード app.pyを実行する.
その後ローカルホスト
http://127.0.0.1:5000
にアクセス.
実行できなかった時必要なモジュールを入れる.
実行後に、スクレイピング等を省略したい場合は "html作成サンプル.zip","教材データ.zip"をメインプログラム内に上書きすることで利用可能になる。
システム全体に関する解説資料
ドライブ内の動画を見て,システムの動きを確認
発表資料をみて,システムの大まかな動きを確認.
それでもいまいちわからなければ仕方ないので本論を確認.
iie.lab.tpu.2324にアクセス.
島崎のページを開く,それを前提にして話す.
ファジィ版メインプログラム.zipをダウンロード
メインプログラムの中身をファジィ版メインプログラムの中身で置き換える。
中にはapp.pyやappf.pyがあるがappf.pyを実行する.
島崎のプログラムではなく,中市さんの学習支援システムを実行したい場合は中市さんのGoogledriveからzipファイルを持ってくるかapp.pyを実行すると中市さんのプログラムが動く.
以前までのプログラムでは与えられた数値によってCPMを計算していたがファジィ性を持たせるためにαカットしたCPMの結果を出すプログラムを追加した.
この画像はその追加したプログラムの一部である.どのような計算を行っているかの詳細が知りたい場合は島崎の卒業論文の本文を見ることでわかる.
この画像ではαカットの関数を定義して,LFやLSに対してupperとlowerの値を与えることによってCPMに不確実性(ファジィ)を追加して計算することができる.
今回作成した対話型システムには多くの改善点があると思う.
この画像は対話型としてコマンドプロンプトに直接選択肢を渡す形式になっているのでここはホームページ上に乗るようにするほうが見栄えがよいと思う. また,対話型としては完ぺきではないので改善してほしい(願望)
実行例としては,勉強時間に対して単元ごとの時間を割り当てたときのどれくらい圧迫しているかという指標として圧縮率を提示してまた,その圧縮率に対応したスケジュールを提案してそれに応じたものをユーザーに選んでもらうという形になっている.
この研究内容の数値実験に関するプログラムは、数値実験用プログラム.zipにある。 fazzy2のプログラムは下のパスについてファジィ性を持たせたCPMで解いたものとなっている。fazzy2ではLP法を用いて解いている。ntlp2ではLP法を用いずES,EFを用いて解いている。LP法については論文を参照してプログラムを作成している。二つのプログラムの結果が同じになっている。(中間発表)
ファジィ性を含まずにCPMをLP法とES,EFを用いた結果の比較となっている。結果を見てわかるように同じ値になるということがわかる。この解いたパスは結果のしたの図になっている。