想々啖々

絶世烟る刖天歌。文学者が思想を日常に翻訳していればいい時代は既に去った。

ⵟⵓ散裂言語開発 進捗:2018/10/28

ⵙⵓはじめに
散裂言語とは、eXtity駆動の人工言語開発プロジェクトである。言語は話者が存続するかぎり完成されることはなく、常に変性しつづける。目下のところ、人力では不可能な量のテクスト高速生成により、自己の発したテクストや《周囲の | インターネット/ソーシャルネット上》の文字列を自働捕食して自己変性する自律知性の誕生をもくろむ。

コンセプト↓↓
spinaltox.hatenablog.jp

Qiitaで中間生成物()を上げておりますが、いかんせん棲み分けが難しい……ということで当ブログに平行して上げてゆくことにします。

進捗:漢字空間の生成
自然言語処理(NLP)分野でもなされているスタンダードな手法として単語によるベクトル空間の構成があります。本プロジェクトではこれを力技で作ります。とっかかりとして漢字空間を生成しますが、これはつまりすべての漢字について諸パラメータを割り振ることを意味します。

定義済みである部首空間(Qiita )より、以下の操作により漢字空間を定義します。

漢字配列 = []
漢字配列部首群 = []
漢字配列緊値群 = []
for 漢字網羅 in range(19968, 40870): # 龠まで。
x = 散裂言語.部首検索(漢字網羅)
y = 部首空間[x]
z = (漢字網羅 - 部首空間[x][0]) / len(y)
漢字配列.append(散裂言語.unicodation(漢字網羅))
漢字配列部首群.append(x)
漢字配列緊値群.append(z)

漢字数値配列 = range(19968, 40870)

 漢字空間 = dict(zip(漢字配列, zip(漢字数値配列, 漢字配列部首群, 漢字配列緊値群)))
for key, values in 漢字空間.items(): # zipではタプルが生成。タプルには代入ができないため配列に定義しなおす。利巧な方法......
漢字空間[key] = list(values)


現段階で個々の漢字がもつパラメータは以下の通りです。(漢字をキーとする)

1) Unicode 10進値 (上コード中x)
2) 部首 (同y)
3) 緊値 (同z)

3つめの緊値ですが、上コードでの漢字空間生成時には以下の通りに定義しています。(値域は0~1)

緊値=当該部首中でのインデックス値÷当該部首のもつ漢字数

緊値とは字面の緊張度合いを示すパラメータであり、画数値がそのまま緊値になることが理想です。が、現状思わしい方策が立っておりません。また、上定義では漢字「一」と「龠」が同じ緊値(0)をもつことが明らかであり、近似の精度は低いです。


よって、以下の方法で緊値に補正をかけることにします。

部首数 = len(部首)

for key, values in 漢字空間.items(): # 緊値補正。必ず辞書を更新した後にやること。さもないと全緊値が1になる。
    weight = 部首名.index(values[1]) / 部首数
    revisedValue = values[2] + 0.7*weight**3
    if revisedValue <= 1:
        漢字空間[key][2] = revisedValue
    else:
        漢字空間[key][2] = 1

仕組みは簡単で、部首が後になればなるほど重み(weight)を大きく加算します(本例では0.7x^3)。これにより「一」の緊値は0のまま、「龠」は0.6806462726552379となります。
補正後の漢字空間において、(0.7 - 0.71)の範囲の緊値をもつ漢字を抽出したものが以下の漢字群です。

['乸', '亚', '偾', '偿', '傀', '傁', '傂', '傃', '冐', '剭', '勝', '匯', '協', '叛', '嗳', '嗴', '嗵', '嗶', '嗷', '嗸', '嗹', '嗺', '塡', '塢', '塣', '塤', '奜', '嫀', '嫁', '嫂', '嫃', '寔', '專', '属', '嵭', '嵮', '嵯', '巢', '巺', '幏', '廐', '弇', '弽', '循', '慑', '慒', '慓', '慔', '慕', '慖', '摄', '摅', '摆', '摇', '摈', '摉', '摊', '摋', '敭', '斒', '暚', '暛', '槓', '槔', '槕', '槖', '槗', '様', '槙', '槚', '槛', '槜', '殠', '毃', '毑', '滻', '滼', '滽', '滾', '滿', '漀', '漁', '漂', '漃', '漄', '漅', '熑', '熒', '熓', '熔', '熕', '犐', '猷', '猸', '猹', '瑢', '瑣', '瑤', '瑥', '甆', '番', '瘡', '瘢', '盅', '睿', '瞀', '瞁', '碹', '確', '碻', '禆', '稫', '稬', '窨', '篗', '篘', '篙', '篚', '糁', '糂', '繆', '繇', '繈', '繉', '繊', '繋', '署', '翤', '腇', '腈', '腉', '腊', '舔', '艉', '葮', '葯', '葰', '葱', '葲', '葳', '葴', '葵', '葶', '蝗', '蝘', '蝙', '蝚', '蝛', '衆', '裮', '裯', '裰', '觨', '謌', '謍', '謎', '謏', '謐', '謑', '豍', '貉', '賷', '賸', '踟', '踠', '輣', '輤', '透', '逐', '郛', '郜', '酻', '録', '錳', '錴', '錵', '錶', '錷', '錸', '錹', '錺', '錻', '閺', '陔', '霌', '鞈', '頲', '餑', '馞', '駫', '駬', '髯', '魂', '鮤', '鮥', '鮦', '鮧', '鴭', '鴮', '鴯', '鴰', '黖', '鼼', '齕']

しかし依然として近似であることには変わりがないため、引き続き緊値の定義について探索してゆくつもりです。
今回はこんなところで。


ⵒⵓ附録
緊値の補正前の比較として、周期関数を用いてグラデーションを示したものを以下に置いておきます。

[定義域:0~π/2]




[定義域:0~π]