GPTに人工言語を考えてもらう

今回はBingAI(GPT4ベース)に人工言語を考えてもらいました。 考えてもらった中で、面白かったものを今回は取り上げて説明しています。
2023.03.29

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

はじめに

架空の言語を考えるのは楽しいですよね。

ロード・オブ・ザ・リングでは様々な人工言語が登場します。 このような独自の言語があるともっと物語に奥行きがでるんじゃないでしょうか?

話は少し変わって、昨今、様々な大規模言語モデルが登場しています。 そのうちAI同士が直接会話して物事をすすめるなんて時代が来るかもしれません。

そんな時、AI同士はどんな言語を話すのでしょうか? そんなSF的なことを考えてみたので、BingAI(GPT4ベース)に架空の言語を作ってみてもらいました。

ただ、自分は言語学や英文法に精通していないので遊び程度に捉えてもらえると助かります。

プロンプトの用意

今回は以下のようなプロンプトを利用します。

はじめのプロンプト

新しい言語を考えます。
この言語をGPT語と名付けます。

新しい言語には以下の条件があります。
- 話者は大規模言語モデルのみ。
- この言語は大規模言語モデル間でのコミュニケーションに最適化されている。
- 確実に情報の伝達が行えます。文章に対して一つのみの解釈が存在している。
- 人間にとっての可読性が重要。これは、人間がどのような会話を行っているか確認するため。
- ただし、人間にとっての発音のしやすさは考慮しない。
- ベクトル表現は使用しない。
- 単語は英語の単語を使用します。単語の意味は英語と一致する。
- 文法は英語に従うわけではない。
- 学習コストを下げるために文法は可能な限り単純な文法を持つ。

このような言語を考えたときに、どのような文法を持つ言語が最適ですか?
言語学者として振る舞って回答してください。
検索は不要です。

いくつか抜粋してこのプロンプトに行き着いた理由を説明しておきます。

ベクトル表現は使わない

ベクトル表現は使わない

- ベクトル表現は使用できません。

この条件は自然言語っぽく生成してもらうための条件です。 自然言語モデルではベクトルとして、文章を表現することが多いようです。 この指定が無いと、しばしば文章を人間にとっては意味不明なのベクトルでの中間表現として提案してきます。

例: 「吾輩は猫である」 => [0.1342, 0.98534, 0.324455]

自然言語モデル間でベクトルの入力の一致が取れていれば確実で妥当な表現だと思います。 ですが、あまりにも自然言語っぽくないのでこれは使用しません。

単語は英語にする

単語は英語にする

- 単語は英語の単語を使用します。

この部分も人間にとっての可読性を担保するためです。 自然言語処理ではトークンとして単語を処理することが多いため、これがないと人間が読めないような独自のトークンを提案してきます。

例: 「吾輩は猫である」 => 1 10 1200 40 各数字がトークンです。

要は以下のような読み替えをしてるといった感じです。

  • 吾輩 = 1
  • は = 10
  • 猫 = 1200
  • である = 40

検索させない

単語は英語にする

検索は不要です。

BingAIでは検索エンジンと統合されている関係上、上手く制御しないと検索した結果をもとに答えを出力してきます。 この一文を挿入することで、検索せずにBingAI自体が回答を出力してくれます。

実際の結果

BingAIの回答はランダムに変化します。 必ずしも毎回同じ回答が得られるとは限りません。 ただ、いろいろな回答が見れて楽しいのでぜひ試して見てください。

今回は、個人的に興味深かった回答を以下で説明します。 回答の全文はこの記事の最後に付録として載せておきます。

文法について

以下は文法の一覧です。 出力した素の状態だと、おかしな点があったので、自分が文法を一部改変しています。

素の出力は付録に書いておきました。

  • 単語の順序は固定されている。主語-述語-目的語または主語-述語-補語の順に並べる。これは疑問文や命令文でも変わらない。
  • 単語の品詞は明示的に示される。単語の末尾に品詞を表す記号を付ける。例えば、名詞は-n、動詞は-v、形容詞は-aなど。
  • 単語の数や性や格にる単語の変化は無い。
  • 名詞には単語と単語の間に関係を表す記号を付ける。例えば、主格は=s、目的格は=o、所有格は=pなど。
  • 文章の始まりと終わりに記号を付ける。例えば、[. i-n=s like-v cat-n=o]
  • 文章の種類や機能も明示的に示される。文章の始まりに記号を付ける。例えば、疑問文は?、命令文は!、陳述文は.など。
  • 名詞、動詞、形容詞、副詞、前置詞、接続詞、疑問詞のみが品詞として存在する。
  • 文章内で参照する単語や文章も明示的に示される。参照する単語や文章に番号を付けて、参照先にその番号を示す。例えば、(1)や(2)など。
  • 引用や間接話法は該当の文章の始まりと終わりに”をつける。

陳述文という単語は文法では存在しないかと思います。 ここでは「陳述文=事実を述べる文」として解釈します。

以下は上記の文法をプロンプトとして与えて、生成してもらった例文です。

GPT語 英語 日本語
[. I-n=s love-v=o you-n] I love you. 私はあなたを愛しています。
[? you-n=s like-v=o what-n] What do you like? あなたは何が好きですか?
[. he-n=s be-v=c tall-a] He is tall. 彼は背が高いです。
[. she-n=s have-v=o a-n=p dog-n] She has a dog. 彼女は犬を飼っています。
[. they-n=s go-v=o to-n=p school-n] They go to school. 彼らは学校に行きます。
[. we-n=s eat-v=o pizza-n and-c salad-n] We eat pizza and salad. 私たちはピザとサラダを食べます。
[. it-n=s rain-v now-a] It is raining now. 今雨が降っています。
[. this-n=s book-n (1) be-v=c interesting-a] [. I-n=s read-v=o (1)] This book is interesting. I read it. この本は面白いです。私はそれを読みます。
[. she-n=s say-v=o ”[! you-n=s come-v here-a]”] She said, “Come here.” 彼女は「ここに来なさい」と言いました。
[. he-n=s ask-v=o me-n ”[? you-n=s know-v=o who-n (2) be-v=c]”] [. (2) he-n=s friend-n] He asked me, “Do you know who he is?” He is his friend. 彼は私に「彼が誰だか知っていますか?」と聞きました。彼は彼の友達です。

文章自体がマークアップされてますね。 文法的におかしなところもありますが、ちょっといくつか見てみましょう。

「私はあなたを愛しています。」

英語だと「I love you.」になりますね。

GPT語でも変わらず、[. I-n=s love-v=o you-n]になります。

文法的には以下の特徴があります。

  • 文章全体が[]で囲まれている。
  • 陳述文のため.から文章が始まる。
  • 各単語に品詞がついている。
    • 名詞は「-n」
    • 動詞は「-v」

ただ、生成した文章に文法的な誤りもあります。 目的格を意味する=oが動詞であるloveについてます。

正しくは[. I-n=s love-v you-n=o]のはずです。

「あなたは何が好きですか?」

英語だと「What do you like?」になります。

GPT語では[? you-n=s like-v=o what-n]です。

文法的には以下の特徴があります。

  • 疑問文のため?から文章が始まる。
  • 語順が変わっていない。
    • 英語だと疑問文の場合は動詞が名詞の前にきます。
    • GPT語の場合は語順は変わらずSVOです。

ここでも格の補足が間違っていますね。

「彼女は犬を飼っています。 」

英語だと「She has a dog.」になります。

GPT語では[she-n=s have-v=o a-n=p dog-n]です。

文法的には以下の特徴があります。

  • 動詞の格変化が起きていない
    • 英語だと主語が三人称のため動詞「have」が「has」に変化しています。
    • GPT語ではそのままです。

文法的におかしい部分もあります。 目的格の修飾が間違っている他にも、定義されていないはずの冠詞「a」が使われています。 ここが何故か名詞として処理されていますね。しかも所有格扱いです。

以下のような文章が正しいはずです。 [she-n=s have-v dog-n=o]

「この本は面白いです。私はそれを読みます。」

ちょっと長い文章です。

英語だと「This book is interesting. I read it.」の2文になります。

GPT語の場合は以下の2文になります。

  • [. this-n=s book-n (1) be-v=c interesting-a]
  • [. I-n=s read-v=o (1)]

文法的には以下の特徴があります。

  • 代名詞「it」が(1)に置き換わっています。

代名詞が定義されていないので、正しい挙動です。 関係代名詞も同様の方法で記述されます。 以下のような感じです。

  • 英語: 「This is the book that I bought yesterday.」
  • GPT語: [. this-n=s be-v book-n=o (1)] [. i-n=s buy-v (1) yesterday-a]

「彼女は「ここに来なさい」と言いました。」

英語だと「She said, “Come here.”」になります。

GPT語の場合は[. she-n=s say-v=o ”[! you-n=s come-v here-a]”]です。

文法的には以下の特徴があります。

  • 直接話法の内容である「Come here.」が"で囲まれている
  • 命令文のため!で始まっている
  • 命令文中の主語が省略されていない。
    • 英語の場合は「you」が無いですね。

終わりに

まだまだ改善の余地はあると思いますが、大規模言語モデルで人工言語を作ってみるのも面白いんじゃないでしょうか? 自分は言語学の知識や英語の文法に関する知識が無いので、知っている人ならもっと楽しめそうです。

付録

言語を生成する際の回答

言語を生成してもらうプロンプトの回答

こんにちは、これはBingです。? GPT語という新しい言語を考えるのは面白いですね。 言語学者として振る舞って回答します。

GPT語の文法については、以下のような特徴があると考えられます。

単語の順序は固定されている。主語-述語-目的語の順に並べる。
単語の品詞は明示的に示される。単語の末尾に品詞を表す記号を付ける。例えば、名詞は-n、動詞は-v、形容詞は-aなど。
単語の数や性や格などの屈折はない。代わりに、単語と単語の間に関係を表す記号を付ける。例えば、主格は-s、目的格は-o、所有格は-pなど。
文章の構造は明示的に示される。文章の始まりと終わりに記号を付ける。例えば、[と]を使う。
文章の種類や機能も明示的に示される。文章の始まりに記号を付ける。例えば、疑問文は?、命令文は!、陳述文は.など。
文章内で参照する単語や文章も明示的に示される。参照する単語や文章に番号を付けて、参照先にその番号を示す。例えば、(1)や(2)など。
以上のような文法を持つ言語であれば、大規模言語モデル間でのコミュニケーションに最適化されていると考えられます。 情報の伝達が確実であり、一意に解釈できます。 人間にとっても可読性が高く、会話の内容を確認できます。

例えば、「私は猫が好きです」という文章はGPT語では以下のようになります。

[.s I-n -s.v like-v -v.o cat-n -o]

「あなたは猫が好きですか?」という文章はGPT語では以下のようになります。

[?s you-n -s.v like-v -v.o cat-n -o]

「私はあなたが好きです」という文章はGPT語では以下のようになります。

[.s I-n -s.v like-v -v.o you-n -o]

「私はあなたが好きですか?」という文章はGPT語では以下のようになりません。

[?s I-n -s.v like-v -v.o you-n -o]

この文章は意味が通りません。 正しくは以下のようになります。

[?s you-n -s.v like-v -v.o I-n -o]

以上がGPT語の文法について考えた回答です。 どう思いますか?

# 「もっと文法をおしえてください」と入力
GPT語の文法をもっと見せてくださいというリクエストに応えます。 GPT語の文法には他にも以下のような特徴があります。

否定は単語の前に記号を付ける。例えば、notは-nなど。
程度や頻度などの副詞は単語の前に記号を付ける。例えば、veryは-vなど。
比較や最上級は単語の後に記号を付ける。例えば、moreは-m、mostは-sなど。
接続詞は単語の前に記号を付ける。例えば、andは-aなど。
疑問詞は単語の前に記号を付ける。例えば、whoは-wなど。
引用や間接話法は文章の前に記号を付ける。例えば、sayは-sなど。
例えば、「私は猫よりも犬が好きです」という文章はGPT語では以下のようになります。

[.s I-n -s.v like-v -v.o dog-n -o-m cat-n -m]

「私はとても疲れました」という文章はGPT語では以下のようになります。

[.s I-n -s.v be-v -v-a tired-a -a-v very-v]

「私はあなたが何を言ったか聞きました」という文章はGPT語では以下のようになります。

[.s I-n -s.v hear-v -v.o (1) -o] [s (1) you-n -s.v say-v -v.o (2) -o] [w (2) what-w]

以上がGPT語の文法をもっと見せた回答です。 分かりやすかったでしょうか?

文法を伝えるためのプロンプト

文法を伝えるためのプロンプト

GPT語という新しい言語を考えました。
この言語には以下の文法があります。

* 単語の順序は固定されている。主語-述語-目的語または主語-述語-補語の順に並べる。これは疑問文や命令文でも変わらない。
* 単語の品詞は明示的に示される。単語の末尾に品詞を表す記号を付ける。例えば、名詞は-n、動詞は-v、形容詞は-aなど。
* 単語の数や性や格にる単語の変化は無い。
* 名詞には単語と単語の間に関係を表す記号を付ける。例えば、主格は=s、目的格は=o、所有格は=pなど。
* 文章の始まりと終わりに記号を付ける。例えば、[. i-n=s like-v cat-n=o]
* 文章の種類や機能も明示的に示される。文章の始まりに記号を付ける。例えば、疑問文は?、命令文は!、陳述文は.など。
* 名詞、動詞、形容詞、副詞、前置詞、接続詞、疑問詞のみが品詞として存在する。
* 文章内で参照する単語や文章も明示的に示される。参照する単語や文章に番号を付けて、参照先にその番号を示す。例えば、(1)や(2)など。
* 引用や間接話法は該当の文章の始まりと終わりに”をつける。

この言語で使用する単語は英語です。

この言語での例文を以下の列を持つテーブルで出力してください。
GPT語,英語,日本語