学びの可視化・最適化モジュール

学びの可視化・最適化

self_NL_comp.py

0行目に学籍番号など、1行目にレポート本文などが保存ざれたcsvファイルに対して、学びの可視化や最適化を図ります。「スライド処理モジュール(self_slide_img.py)」で作成したテキストファイルに対しても実行できます。自然言語処理には「自然言語処理モジュール(self_NL.py)」を使用します。学びの可視化としては、品詞を指定(名詞や動詞など)して全レポートのワードクラウドを作成します。これにより、クラスにいるほかの学生がどのような単語でレポートを作っているのかが可視化されます。また、特定の文章に対する一致度の高い順にレポートを並べ替えます。これにより、例えば、インライン発表会で学生が見てみたいと思う内容のスライドを提示することができます。その他の機能も随時追加します。

  1. import pandas as pd

  2. import numpy as np

  3. import cgi

  4. import self_NL as NL

  5. form = cgi.FieldStorage()


  6. def sim_doc(youbou,csv_file):

  7. docs=[]

  8. docs.append(youbou) #0行目が要望

  9. youshidocs=pd.read_csv(csv_file).values.tolist()


  10. for youshidoc in youshidocs:

  11. docs.append(youshidoc[1])


  12. c_text=[]

  13. for NLc in NL.docs_cos(docs)[0]:

  14. c_text.append(NLc)

  15. c_youshidocs=[]

  16. i=1

  17. for youshidoc in youshidocs:

  18. line=[]

  19. line.append(c_text[i])

  20. line.append(youshidoc[0])

  21. line.append(youshidoc[1])

  22. c_youshidocs.append(line)

  23. i+=1


  24. np_c_youshidocs=np.array(c_youshidocs)

  25. index=np.argsort(np_c_youshidocs[:,0])[::-1]

  26. sc_np_c_youshidocs = np_c_youshidocs[index,:]


  27. return sc_np_c_youshidocs


  28. def vis_doc(csv_file,parts):

  29. youshidocs=pd.read_csv(csv_file).values.tolist()

  30. docs=[]

  31. for youshidoc in youshidocs:

  32. docs.append(youshidoc[1])

  33. docj="".join(docs)

  34. df=NL.wakachi_part(docj,parts)

  35. NL.wordkumokaki(df[0])


  36. if __name__ == '__main__':

  37. csv_file="************.csv" #0行目に学籍番号など、1行目にレポート本文など


  38. print("学びの可視化")

  39. vis_doc(csv_file,"名詞") #"動詞"、指定なしは""

  40. print("学びの最適化")

  41. youbou= form.getfirst("youbou","") #POST/GETで取得する場合

  42. youbou="薬剤師の業務について" #プログラムで指定する場合

  43. sdoc=(sim_doc(youbou,csv_file))

  44. print(sdoc) #類似度(降順)、学籍番号、レポート本文など

北海道医療大学・情報センター