はじめまして、フクロウナギと申します。普段はtwitter(@apupuna1)でアイドルマスターシャイニーカラーズの杜野凛世と放課後クライマックスガールズのかわいさを伝える活動をしています。

今回は言語(正確には単語のセット)が世代を経て変化するモデルを作ります。

言語変化のアルゴリズムには次の要素が必要です。

・言語

・言語を変化させる操作

・言語を評価する関数

今回使用する言語は36個の単語の集合です。各言語は座標を持ちます。単語は有限個の音素の連なりからなります。簡単にするため、私用する音素は次の31個にしました。

両唇音 p b m f v u

歯茎音 t d n s z r

硬口蓋音 C J N S j i

軟口蓋音 k g 0 h x e

口蓋垂音 K G 8 H X o

声門音 a

言語を変化させる操作として、今回は

借用

複合

音素の一律な変化

に限定しました。

借用は隣接した言語から一定数単語をコピーする操作です。

複合は単語の前後に同言語の別の単語を繋げる操作です。

音素変化は言語中の一音素を別の音素、または無音に変化させる操作です。

言語を評価する関数として、

単語間の距離

使われる音素の種類

使われる音素の数

の和としました。

単語間の距離として、予め音素間の距離を設定し、その和をもちいました。距離が大きいほど評価が良くなります。

使われる音素の種類が少ないほど評価が良くなります。

使われる音素の数(3音素の単語が10個あれば音素数は30)が少ないほど評価が良くなります。

言語の世代変化を次のようにモデル化しました。

変化させる言語、その言語を変化させる操作をランダムに選ぶ。

その変化により評価関数がどれほど変化するかを計算する。

評価関数がもっとも改善されるものを選んで実際に変化を適用させる。

言語の操作をランダムに選ぶ際の借用/複合/音素変化が選ばれる確率、評価関数内の単語距離/音素種類/音素数の重みはパラメータとして、最もらしい結果が得られるように調整しました。

とりあえず、全座標に同一な言語データを並べ、100/1000/10000世代変化させた結果を置いておきます(別々の試行なので、gengo100のデータの900世代後がgengo1000というわけではありません)。


gengo10000gengo1000に比べて隣接言語間の違いが小さいように感じます(解析する時間はありませんでした)。評価が安定すると言語変化のスピードが遅くなり、借用による平均化が進むためと考えられます。いくつかの単語の語形の境界が共通しており、語派のようなものが生成されている可能性があります。

今回の言語モデルは言語変化のモデルとしては全く不十分で、さらなる項の追加とパラメータの調節は今後の課題です。また、結果の解析はしたいです。時間がないのでこれで終わります。