{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# テキストのベクトル化(spacy + α)\n", "- spacyに限定しない、一般的に共通した考え方。\n", " - まずベクトル化するテキストの単位を決める。決めた単位でまとめておく。\n", " - 複数文章?単一文章?複数文?単一文?複数単語?単一単語?\n", " - テキスト群をtokenに分割する。ここでは分かち書き+原形処理に留める。\n", " - token系列に対し、分布類似度仮説を踏まえた特徴量設計を考える。\n", "- 今回の例\n", " - 文章のベクトル化\n", " - [Bag-of-Words(BoW)](https://en.wikipedia.org/wiki/Bag-of-words_model), sklearnを利用。\n", " - [TF-IDF](https://en.wikipedia.org/wiki/Tf–idf), sklearnを利用。\n", " - [word2vec](https://ja.wikipedia.org/wiki/Word2vec)\n", " - ベクトル空間を利用した類似コメント検索。\n", "- 今回は扱わない別例\n", " - 名詞や形容詞など特定品詞のみ処理する。ストップワードで不要語を削除する。類語をまとめてしまう。n-gram、共起、係り受け情報の利用, etc." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## 利用ライブラリの用意、データセット準備\n", "事前に、[load_r_assesment.ipynb](./load_r_assesment.ipynb) でデータセットを作成し、pkl形式でファイル保存(r_assesment.pkl)しておく。今回は作成済みファイルをダウンロードして利用することにする。\n", "\n", "r_assesment.pklは授業評価アンケートの自由記述欄をpd.DataFrame形式で保存したもので、授業名(title)、学年(grade)、必修か否か(required)、質問番号(q_id)、コメント(comment)で構成される。" ] }, { "cell_type": "code", "execution_count": 1, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ " % Total % Received % Xferd Average Speed Time Time Time Current\n", " Dload Upload Total Spent Left Speed\n", "100 34834 100 34834 0 0 154k 0 --:--:-- --:--:-- --:--:-- 157k\n" ] } ], "source": [ "!curl -O https://ie.u-ryukyu.ac.jp/~tnal/2022/dm/static/r_assesment.pkl" ] }, { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", " | title | \n", "grade | \n", "required | \n", "q_id | \n", "comment | \n", "
---|---|---|---|---|---|
0 | \n", "工業数学Ⅰ | \n", "1 | \n", "True | \n", "Q21 (1) | \n", "特になし | \n", "
1 | \n", "工業数学Ⅰ | \n", "1 | \n", "True | \n", "Q21 (2) | \n", "正直わかりずらい。むだに間があるし。 | \n", "
2 | \n", "工業数学Ⅰ | \n", "1 | \n", "True | \n", "Q21 (2) | \n", "例題を取り入れて理解しやすくしてほしい。 | \n", "
3 | \n", "工業数学Ⅰ | \n", "1 | \n", "True | \n", "Q21 (2) | \n", "特になし | \n", "
4 | \n", "工業数学Ⅰ | \n", "1 | \n", "True | \n", "Q21 (2) | \n", "スライドに書く文字をもう少しわかりやすくして欲しいです。 | \n", "