理論

解を出すための理論的背景
 ここでおもに行っているのは自由記述の分析です。分析といっても,意味も含めて論理的に細かく分析しているわけではありません。人間の思考は論理的な部分もありますが,ある文脈をもとに論理を飛躍させたり,直感的に判断したりします。私自身,1990年代は論理的な記述をしようとして,限界を感じて失敗してしまいました。ここでは,現在のデータが,すでに過去に判断されたデータのどれに近いかを検索する方法をとっています。現在のものを一定のアルゴリズムで論理的に分析して答えを出すのではなく,過去の事例から答えを出すといってよいといえます。そのため,過去のデータをあらかじめカテゴリー化したり(自己組織化マップ),関係性を求めておいたり(ホップフィールドモデル)しています。そのようなたくさんのデータから,最も一致するものを抽出したり,関係性を求めたりしています。これは,コンピュータの処理速度があがってきたためできることといえます。本田氏らが指摘しているように,「コンピュータが解を出すのに複雑なアルゴリズムは必要ではなく,単にフィルターをかけてクラウドに蓄積された膨大なデータを絞り込み,整理するだけでよくなってしまった」ということになります。
 引用:本田幸夫「ロボット革命-なぜグーグルとアマゾンが投資するのかー」,祥伝社,2014,153-154
文章から単語の抽出
 記述や発言内容を対象とした分析において,自己組織化マップやホップフィールドモデルを用いる場合に,どちらも基本になるのは,文章の中から単語を抽出することです。そのために,形態素解析ソフトを用いて,文章の中から単語とその品詞を抽出します。
本システムでは,形態素解析ソフトとして,おもにフリーソフトの「chasen」を用いています。同様に「mecab」があります。「mecab」のほうが,解析に優れていますが,本システムでは構文まで分析の対象としていませんので,どちらでもかまわいません。また,「mecab」は予めデスクトップにインストールしておかないと,システムの中に組み込んでも動作がうまくいかない場合がありますので,「chasen」を用いています。形態素解析においては,「基本形」を求めることにより,同一単語の活用形による違いを検出しないようにしています。一方,品詞を求めることにより,同じ単語の表記でも,品詞が異なることによる違いを検出するようにしています。このようにして求めた単語と品詞から,重複しているものや分析を必要としていない品詞の単語を取り除き,文章において用いられている単語を抽出します。
文章のデータ化
 抽出した単語を行に配置し,1つの文章を列に位置付けます。その文章において,抽出した単語が何回出てくるかを数字にして,マトリクスに示すことができます。ここで単語に注目すると,左図の単語「空気」は「1,0,0,10,11・・・」といった数列で表されます。今度は,文章に注目すると1番目の文章は,「2,2,1,20,11・・・」といった数列で表されます。
 自己組織化マップでは,単語の数列に注目すると,数列のパターンが類似していればしているほど,それらの単語を近くに位置付けるように考えます。同様に,文章の数列に注目すると,数列のパターンが類似している文章ほど,それらを近くに位置付けるように考えます。このようにして,単語や文章を整理していくことによって,分析や評価に役立てることを考えます。
 ホップフィールドモデルにおいても,まず,単語の数列に着目します。ある単語Aと単語Bについて,同時に用いられている度数,単語Aは用いられるが単語Bは用いられない度数,逆に単語Aは用いられないが単語Bは用いられる度数,両単語とも用いられない度数を求めます。これらの度数から,単語Aと単語Bの関連(荷重)を求めるといったように,すべての単語の組み合わせについて求めていきます。この荷重をもとに,ある単語を用いたときに関連して想起されやすい単語を求めることができるため,学習補助や授業設計などに役立てることができます。
自己組織化マップの作成と活用
 ここでは,表現しやすいように自己組織化マップを四角のセルの集合で示します。この自己組織化マップのセルに文章を位置付けることを考えます。先ほどの一つの文章を数列で示しましたが,その数字の数だけ,一つのセルに数字が含まれていると考えます。そのセルの数字は,最初はランダムに設定しておきます。まず一つの文章をとりあげ,その文章の数列とセルに設定した数列を照合し,最も一致しているものを一つ選びます。セルの数列の数字はランダムに設定していますが,その中でも最も一致するセルをどれか一つ選ぶことができます。そのセルに文章を位置付けるとともに,セルの周辺のセル,たとえば前後左右の10個先のセルの値を数パーセント文章が位置付けられたセルの値に近づけるように変更します。次に別の文章を1つ選び同じことを繰り返します。1つの文章が数百回程度選択されるまで繰り返します。繰り返しが進むにつれて,値を変更する周辺のセルを狭めていきます。このように各文章によって,全体のセルの値が変化するので,同一の文章でも,その都度配置されるセルが変わります。しかし繰り返されるたびに,全体の構造が,類似した文章が近くにくるように変更されることになります。左の図では,色の付いたセルに文章が配置されていますが,たとえば正答や誤答の記述によってセルの色を変えるなどして示すことができます。単語を配置する場合も,単語の数列を用いて同様に処理をします。
 このように最初から全体の基準や構造があって,データを位置付けるのではなく,また,個別のデータにもとづいてその値を順序よくならべるといったものではありません。全体の構造はデータによって変動し,各データは,全体の構造によって位置づけられるといった全体と部分の相互作用によって処理が行われる特徴をもちます。よく「縦軸や横軸は何を表すのか」といった質問をされますが,同じようなものが近くに集まってくるだけで,あるセルAとその近くのセルBの類似性と,そのセルBのまた近くにあるセルCの類似性の基準は違っています。そもそも,2次元で表現しているので,そのような軸があるような文章なら,このような分析をしなくても見ただけで気づくと思います。とても2次元では表現できません。何か軸を探していこうとするのは因子分析などの影響だと思いますが,因子分析においてもだいたい経験的にわかっているような因子が,分析によって明確に示されるというものがほとんどで,誰も気づいていない画期的なものが見つかったというようなことは,自分の経験からはあまりありません。
 このような文章を配置した自己組織化マップには,新しく記述した文章を位置付けることができます。まず新しく書いた文章を形態素解析し,単語を抽出します。自己組織化マップを作成したときの単語をもとに,新しく書かれた文章を数列で示します。その数列と,自己組織化マップのすべてのセルの数列を照合し,最も一致するセルを選びます。そのセルに位置付けられた文章が,新しく記述された文章と最も類似していることになります。たとえば,その選ばれたセルの文章が正答であれば,新しく書かれたものも正答である可能性が高いといえます。このようにして,自由記述の回答を自動で評価するシステムなどを作ることができます。

ホップフィールドモデルの作成と活用
 ホップフィールドモデルでは,すべてのユニット(〇)が連結した構造を考えます。一つのユニットに一つの単語を位置づけます。つまり単語間はすべて連結していますが,その連結の度合いに荷重を用います。荷重は関連があれば正の大きな値になりますし,関連がなければ負の小さな値になります。ホップフィールドモデルを用いて,連想記憶モデルを例に動作と活用を考えます。まず,左図のAとBのユニットに対応した単語を刺激語とします。ここかは常に「1」の値を出力します。その他のユニットは最初「0」の値を出力します。すべてのユニットは連結していますから,信号がすべてのユニットに伝達されます。しかし,伝達においてはそれぞれのユニット間の荷重がかけられます。荷重は正の値も負の値もあるわけですから,あるユニットにくる信号をすべて合わせると,正になるときもあれば負になるときもあります。そこで,A,B以外のユニットをランダムに一つ選び,そこにくる信号の合計が「1」以上であれば,そのユニットは「1」を出力するようにし,「1」以下の場合は「0」のままの出力にします。次に,またランダムにユニットを一つ選び,そこにくる信号の合計が「1」以上であれば,そのユニットは「1」を出力するようにし,「1」以下の場合は「0」のままの出力にします。このことをユニットの出力に変化がなくなるまで何回も繰り返していきます。その結果,最終的にCとDのユニットが「1」を出力するようになったとします。これに対応する単語が想起する単語と見なすことができます。たとえば,「天気」「雨」を刺激語とした場合に,「低気圧」「前線」といった単語を想起するといったことになります。教科書の内容で,このようなモデルを作成した場合,ある単語を刺激語として出力する想起語から,授業において関連づけて学習する内容の確認ができ,学習設計などに活用することができます。