学びの可視化・最適化モジュール
学びの可視化・最適化
self_NL_comp.py
0行目に学籍番号など、1行目にレポート本文などが保存ざれたcsvファイルに対して、学びの可視化や最適化を図ります。「スライド処理モジュール(self_slide_img.py)」で作成したテキストファイルに対しても実行できます。自然言語処理には「自然言語処理モジュール(self_NL.py)」を使用します。学びの可視化としては、品詞を指定(名詞や動詞など)して全レポートのワードクラウドを作成します。これにより、クラスにいるほかの学生がどのような単語でレポートを作っているのかが可視化されます。また、特定の文章に対する一致度の高い順にレポートを並べ替えます。これにより、例えば、インライン発表会で学生が見てみたいと思う内容のスライドを提示することができます。その他の機能も随時追加します。
import pandas as pd
import numpy as np
import cgi
form = cgi.FieldStorage()
def sim_doc(youbou,csv_file):
docs=[]
docs.append(youbou) #0行目が要望
youshidocs=pd.read_csv(csv_file).values.tolist()
for youshidoc in youshidocs:
docs.append(youshidoc[1])
c_text=[]
for NLc in NL.docs_cos(docs)[0]:
c_text.append(NLc)
c_youshidocs=[]
i=1
for youshidoc in youshidocs:
line=[]
line.append(c_text[i])
line.append(youshidoc[0])
line.append(youshidoc[1])
c_youshidocs.append(line)
i+=1
np_c_youshidocs=np.array(c_youshidocs)
index=np.argsort(np_c_youshidocs[:,0])[::-1]
sc_np_c_youshidocs = np_c_youshidocs[index,:]
return sc_np_c_youshidocs
def vis_doc(csv_file,parts):
youshidocs=pd.read_csv(csv_file).values.tolist()
docs=[]
for youshidoc in youshidocs:
docs.append(youshidoc[1])
docj="".join(docs)
df=NL.wakachi_part(docj,parts)
NL.wordkumokaki(df[0])
if __name__ == '__main__':
csv_file="************.csv" #0行目に学籍番号など、1行目にレポート本文など
print("学びの可視化")
vis_doc(csv_file,"名詞") #"動詞"、指定なしは""
print("学びの最適化")
youbou= form.getfirst("youbou","") #POST/GETで取得する場合
youbou="薬剤師の業務について" #プログラムで指定する場合
sdoc=(sim_doc(youbou,csv_file))
print(sdoc) #類似度(降順)、学籍番号、レポート本文など
北海道医療大学・情報センター