言語ごとの頻出文字から音象徴の理論を利用して「言語の印象」を調べてみた(Python)
音象徴とは
#音象徴 とは、音の響きが特有のイメージを持つよな、みたいな現象のことを言います。
例えば、「タケテ」という架空の言葉はトゲトゲした形を連想させることがヴォルフガング・ケーラーによって実験されたらしいです。
参考
ざっくり破裂音は「スピード」「硬さ」などを感じさせ、流音は「流動的」「柔らかさ」を感じさせたりするようです。
なんとなく #共感覚 を連想させる現象ですね。
言語ごとの頻出文字とは
#エドガー・アラン・ポー の「黄金虫」では、ランダムな文字列に見える暗号を英語の頻出文字によって解読するという話がありました。大昔に読みました……。
例えば、ランダムな文字列の中で最も頻出している文字は、英語の頻出文字である「E」ではないか? という形の推理を行い、宝の地図を見つけました。
#Wikipedia には文字の出現頻度という記事があります。それによると、英語では最も頻出するのはやはり「E」で、次に「T」や「A」が続くようです。
そこで
言語ごとの頻出文字(例えば、「英語: E」)と、音象徴の音素ごとのイメージ(例えば、「/i/: 素早い」)を照らし合わせれば、言語の印象(英語: 素早い)を調べられるのではないかと思いました。
下準備
文字の出現頻度は Wikipedia にあるテーブルをコピペして TSV ファイルにしました。
  Unnamed: 0        0       1       2       3        4       5       6       7       8       9      10      11      12      13      14  ...      90 91 92 93       94 95 96 97 98 99      100 101  102 103       104      105
0         ⽂字        a       b       c       d        e       f       g       h       i       j       k       l       m       n       o  ...       ü  ű  ů  ų        ū  ẃ  ẁ  ŵ  ẅ  ỳ        ý   ŷ    ÿ   ź         ż        ž
1         英語   8.672%  1.485%  3.424%  3.904%  12.155%  2.302%  1.945%  4.745%  7.532%  0.187%  0.600%  4.237%  2.647%  7.337%  7.377%  ...  0.003%  0  0  0  0.0007%  0  0  0  0  0  0.0001%   0    0   0  0.00009%  0.0003%
2      フランス語   7.636%  0.901%  3.260%  3.669%  14.715%  1.066%  0.866%  0.937%  7.529%  0.813%  0.074%  5.456%  2.968%  7.095%  5.796%  ...       0  0  0  0        0  0  0  0  0  0        0   0  ~0%   0         0        0
3       ドイツ語   6.516%  1.886%  2.732%  5.076%  16.396%  1.656%  3.009%  4.577%  6.550%  0.268%  1.417%  3.437%  2.534%  9.776%  2.594%  ...  0.995%  0  0  0        0  0  0  0  0  0        0   0    0   0         0        0
4      スペイン語  11.525%  2.215%  4.019%  5.010%  13.702%  0.692%  1.768%  1.973%  6.247%  0.493%  0.026%  4.967%  3.157%  6.712%  8.683%  ...  0.012%  0  0  0        0  0  0  0  0  0      ~0%   0    0   0         0        0
...
発音ごとの印象は、AI に聞いて表にしてもらいました。
     音素  大きさ  明るさ  形状(鋭さ+/丸さ-)  重さ  硬さ  速さ  滑らかさ
0  /i/    -4    5            4  -4   0   3     0
1  /e/    -2    4            2  -2   0   1     0
2   /a/    5    0           -1   4   0   0     0
3   /o/    4   -4           -4   4   0  -3     0
4   /u/    0   -3           -3   2   0  -1     0
...
また、それらをつなぐものとして、英語のスペルと発音を対照する表も AI に作ってもらいました。
        音素   英語Character  フランス語Character ドイツ語Character スペイン語Character イタリア語Character 日本語Character ロシア語Character
0  /i/ (い)  i, ee, ea, y            i, y     i, ie, ih              i              i            い             и
1  /e/ (え)         e, ea  é, è, ê, e, ai      e, ä, eh              e              e            え          э, е
2  /a/ (あ)             a         a, à, â         a, ah              a              a            あ             а
3  /o/ (お)         o, oa      o, au, eau         o, oh              o              o            お             о
4  /u/ (う)         u, oo          ou, où         u, uh              u              u            う             у
...
ついでに、a_to_z という変数にアルファベットを格納しました。
a_to_z = set("abcdefghijklmnopqrstuvwxyz")
コード
あとはこれらを組み合わせるだけです。
が、けっこうややこしかったので、これも AI に手伝ってもらいました。
## 要望する #Python スクリプト
これらのファイルを元に、音素の特徴を考慮して、各言語の音素の印象を数値化した TSV ファイルを作成してください。
まず、a_to_z のセットをループで回します。
各文字に対し、characters_lng_transposed.tsv を検索して、各言語ごとの文字の出現率を取得します。
各文字に対し、phonics_characters.tsv を検索して、音素を取得します。
音素には日本語文字が含まれていることがあるので、正規表現で//の間の部分を取得してください。
各音素に対し、phonics_impressions.tsv を検索して、音素の印象を取得します。
そして各言語ごとにループを回し、音素の印象を加算していきます。
最後に、各言語ごとの音素の印象を TSV 形式で出力してください。
という感じで聞きました。
できたのが以下のグラフです。
(グラフ)
英語、ドイツ語、フランス語で特徴があまり変わりません。
がっかりしたので再チャレンジ。子音のみを対象にしてみました。
# a-zのセット # ただし、英語の子音のみを使用
a_to_z = set("bcdfghjklmnpqrstvwxyz")
できたのが以下のグラフです。
(グラフ)
特徴が出てきました。
英語->フランス語->ドイツ語の順に、
そうかなあ……。
重くなるのは分かりますが、ドイツ語、滑らかかなあ。
反省
音象徴は音を対象にしていますが、今回は頻出の文字を対象にしてしまいました。
文字は(特に英語においては)、やや不規則な部分があるので、今回の微妙な結果につながったのかもしれません。
例えば E が「イー」なのか「エ」なのかによって、イメージはだいぶ変わります。
まとめ
チャレンジはできました。
音象徴の理論を利用して、言語の印象を調べることができました。
結果は自分の思ったものではありませんでしたが、楽しかったです。
実はドイツ語、滑らかなのかも知れません。