by Xirdim (@Xirdim ) for Gdef-Code etc. powered with CL-KIITA ( @CL_KIITA )
0

Gdef-Code

Created By Xirdim

Xirdim /ひるでぃむ/ @低浮上? @xirdim

人工言語・架空世界 桔界とその諸言語▼メイシカク語▼オ゛ェジュルニョェーッ語(オエル語)制作メンバ▼一応トキポナ使い これは創作する垢です。研究する垢は他所です▼創作内容は言語学その他の科学的な主張ではありません▼曖昧でーす みすきーio(同一 ID)があります

CL KIITA Project

活用曲用汎用記述形式 (General Description Format for Conjugations and Declensions)

CL-KIITA: 人工言語知識情報・情報技術事業体 @CL_KIITA

―言語(人工言語)を知識情報や情報技術が支える― 人工言語知識情報・情報技術事業体(CL-KIITA, Conlang Knowledge Informatics and Information Technology Association)は、人工言語界隈の情報関連事業のための共同団体です

cl-kiita.github.io

仰々しい方のTogetter版のまとめもあります

Tweet Threads

2022/5/25~現在

Xirdim /çirdim/ @低浮上? @xirdim

写像の考え方を応用して、活用形から辞書形を逆算する体系的な方法をつくろうと試みている

2022-05-25 23:42:57
Xirdim /çirdim/ @低浮上? @xirdim

活用というか、曲用や単なる接辞付加なども含めた語形変化全般ですかね

2022-05-29 19:58:13
Xirdim /çirdim/ @低浮上? @xirdim

任意の1字以上の文字列 s に対して、語尾 -o をつけた変化形 f(s) があるとする。 このとき、  写像 f: /.+/ → 𝕊  f(s) = s + "o" (s ∈ /.+/) のように表せる(𝕊 は文字列の全体集合、正規表現はそれにちょうど一致する文字列全体の集合を表すものとする) さて、f(s) から s を得るには↓

2022-05-29 20:10:55
Xirdim /çirdim/ @低浮上? @xirdim

↓f の逆写像 f⁻¹ を考えればいいが、この場合、値域と終域が異なるので逆写像にできない。なので、  f: /.+/ → /.+o/ として定義しなおす。これで逆写像がつくれる。  f⁻¹(s) = s[:len(s)-1] みたいな感じ。(もっと記法は簡素化したい

2022-05-29 20:10:56
Xirdim /çirdim/ @低浮上? @xirdim

んで問題になるのは、 ・f(s) = s + "o" (s ∈ 𝕊) の値域 ・f(s) = s + "o" の逆関数が f⁻¹(s) = s[:len(s)-1] であること をどうやって機械的に割り出すのかってことかな

2022-05-29 20:15:27
Xirdim /çirdim/ @低浮上? @xirdim

当たり前だけど f(s) の値域を使って f を定義し直さないと、f⁻¹(s) = s[:len(s)-1] が f の逆写像になってないので、値域を導き出すところが先決。

2022-05-29 20:20:13
Xirdim /çirdim/ @低浮上? @xirdim

f が単射じゃない場合を含めて考えると複雑になるので、ひとまず f が単射の場合に限って考えます

2022-05-29 20:21:35
Xirdim /çirdim/ @低浮上? @xirdim

(ちなみに語形変化で単射じゃない例って言ったら、日本語の動詞 -nu, -mu, -bu に対して、「た」が接続した形 -nda とかですね:「富む」も「飛ぶ」も「とんだ」になる)

2022-05-29 20:24:10
Xirdim /çirdim/ @低浮上? @xirdim

まあ /.+/ の要素(元)に -o をつけた文字列全体の集合が /.+o/ になるのは、自明っちゃ自明なんだけども…

2022-05-29 20:26:46
Xirdim /çirdim/ @低浮上? @xirdim

でも -us を -e にする関数を考えたときに、  g(s) = s[:len(s)-2] + "e" (s ∈ /.+us/) とかになってくると、その値域が /.+e/ であるのを自明で片付けるのは宜しくないよな。というかそこから発展がない

2022-05-29 20:29:47
Xirdim /çirdim/ @低浮上? @xirdim

1字1字操作するというのはどうだろう。  g(s) = s[:len(s)-2] + "e" (s ∈ /.+us/) を、  g₁(s) = s[:len(s)-1]  g₂(s) = s[:len(s)-1]  g₃(s) = s = "e"  g = g₃ ∘ g₂ ∘ g₁ という具合に。 これなら語形変化の操作を、「1字削除」と「1字添加」という最小単位に分解できているのでは

2022-05-29 20:37:25
Xirdim /çirdim/ @低浮上? @xirdim

この方法、レーベンシュタインみを感じるな(言いたいだけ

2022-05-29 20:38:16
Xirdim /çirdim/ @低浮上? @xirdim

さてこれで、  g₁: /.+us/ → /.+u/  g₂: /.+u/ → /.+/  g₃: /.+/ → /.+e/ と考えることにより、  g: /.+us/ → /.+e/ と決定づけることができる

2022-05-29 20:41:09
Xirdim /çirdim/ @低浮上? @xirdim

とはいえ肝心の、正規表現を操作する部分をまだちゃんと考えてないんだよな。

2022-05-29 20:41:40
Xirdim /çirdim/ @低浮上? @xirdim

まあとりあえず、レーベンシュタインみの処までを今日の進捗ということにしておくか。(正規表現の全体像を把握してないからそれを調べないと先に進めない

2022-05-29 20:44:58
Xirdim /çirdim/ @低浮上? @xirdim

久々に(一ヶ月ぶりくらい)再開。

2022-06-23 23:26:26
Xirdim /çirdim/ @低浮上? @xirdim

正規表現内で数学の文字みたいなのを使えなくて論じづらいので(a²-b²=(a+b)(a-b) みたいな「公式」が書けない)、とりあえず \𝑥, \𝑦, \𝑧 みたいなので書くことにする。

2022-06-23 23:27:34
Xirdim /çirdim/ @低浮上? @xirdim

それと、記号追加。 ℂ を、使用する文字(1文字)全体の集合とする(英語を想定するなら基本ラテン26字、みたいに)。 𝕊 は、ℂ の元を任意個つらねてできる文字列の全体集合とする。

2022-06-23 23:30:50
Xirdim /çirdim/ @低浮上? @xirdim

(それぞれ character と string の頭文字)

2022-06-23 23:31:12
Xirdim /çirdim/ @低浮上? @xirdim

さて、/./ は ℂ を表すこととしよう。 すると /.*/ は 𝕊 と等しくなる(文脈によっては /.+/ ?)。

2022-06-23 23:33:03
Xirdim /çirdim/ @低浮上? @xirdim

ℂ が有限集合だったら /./ は有限集合(定義より)。 また /.{\𝑚,\𝑛}/ (\𝑚, \𝑛 ∈ ℕ, \𝑚 ≤ \𝑛) は有限集合(ℕ はふつうに自然数全体集合)。

2022-06-23 23:36:19
Xirdim /çirdim/ @低浮上? @xirdim

/[\𝑥₁\𝑥₂\𝑥₃...]/ (\𝑥₁, \𝑥₂, \𝑥₃, ... ∈ ℂ) は ℂ の部分集合であって、有限集合。 /[^\𝑥₁\𝑥₂\𝑥₃...]/ (\𝑥₁, \𝑥₂, \𝑥₃, ... ∈ ℂ) も ℂ の部分集合であって、有限集合。 A = /[\𝑥₁\𝑥₂\𝑥₃...]/, B = /[^\𝑥₁\𝑥₂\𝑥₃...]/ とすると、 A ∩ B = ∅, A ∪ B = ℂ

2022-06-23 23:41:52
Xirdim /çirdim/ @低浮上? @xirdim

しかしこれ、/[a]{0,3}/ と /[^a]{0,3}/ を同じ「有限集合」とひとくくりにしてしまって良いものやら。 ℂ を基本ラテン 26 字の集合としたら、 前者は濃度4だけど、後者は濃度 1 + 25 + 25² + 25³ にもなるわけで。処理量の違いは比べ物にならないはずだ

2022-06-23 23:47:20
Xirdim /çirdim/ @低浮上? @xirdim

「ℂ の濃度」を特別に何か文字でおこうか。 と思ったけど別に |ℂ| でいい?

2022-06-23 23:48:49
Xirdim /çirdim/ @低浮上? @xirdim

とりあえず次に進もう。 /\𝑥?/ (/\𝑥/ ⊂ 𝕊) は、/\𝑥/ が有限集合なら有限集合。濃度は |/\𝑥/| + 1。 特に /\𝑥/ が ℂ の元1つからなるとき、|/\𝑥/| = 1 だから |/\𝑥?/| = 2。

2022-06-23 23:53:30
Xirdim /çirdim/ @低浮上? @xirdim

一応補足しておくと、/\𝑥?/ における "?" は "\𝑥" 全体にかかってます

2022-06-23 23:54:33
Xirdim /çirdim/ @低浮上? @xirdim

/\𝑥*/ (\𝑥 ∈ ℂ) はもちろん無限集合。𝕊 と等しい。 /\𝑥+/ (\𝑥 ∈ ℂ) も無限集合。{𝑥 + 𝑦 | 𝑥 ∈ ℂ, 𝑦 ∈ 𝕊} と等しく("+" は文字列連結)、また // の補集合である。

2022-06-24 00:17:12
Xirdim /çirdim/ @低浮上? @xirdim

/.*/ と /.+/ は濃度が等しいか。 適当に 𝑐 ∈ ℂ を決めておいて、 f: /.*/ → /.+/ を  𝑠 ↦ 𝑠 + 𝑐 (𝑠 ∈ /\𝑐*/) ← 𝑠 = "" もこれになる。+ は文字列連結 {  𝑠 ↦ 𝑠 (𝑠 ∉ /\𝑐*/) ※ \𝑐 は 𝑐 を正規表現内で利用した書き方 とすると、f は全単射。 ∴ /.*/ と /.+/ は同濃度。

2022-06-24 00:26:32
Xirdim /çirdim/ @低浮上? @xirdim

なんか、ある変数・定数が文字なのか文字列なのかがわかりづらいので、ラテン文字 𝑎, 𝑏, 𝑐,... を文字、ギリシャ文字 𝛼, 𝛽, 𝛾,... を文字列とすることにしようか

2022-06-24 23:47:27
Xirdim /çirdim/ @低浮上? @xirdim

さて次は。 /.*/ と /.+/ すなわち /.{0,}/ と /.{1,}/ が同濃度だということがわかったので、 /.{\𝓃,}/ (𝓃 ∊ ℤ, 𝓃 ≥ 0) が一般に同濃度かどうか検証しよう

2022-06-24 23:51:11
Xirdim /çirdim/ @低浮上? @xirdim

(𝒶, 𝒷, 𝒸,... を数にした)

2022-06-24 23:51:49
Xirdim /çirdim/ @低浮上? @xirdim

命題P: |/.{\𝓃,}/| = |/.{\(𝓃+1),}/| (𝓃∊ℤ, 𝓃≥0) とし、数学的帰納法を使う. [1] 𝓃=0 のとき twitter.com/xirdim/status/… よりP成立. [2] 𝓃=𝓀 でP成立と仮定. A= /.{\𝓃,}/ × ℂ, B= /.{\(𝓃+1),}/ × ℂ とすると、 |/.{\𝓃,}/| = |/.{\(𝓃+1),}/| より、|A| = |B| ↓

2022-06-25 00:11:33
Xirdim /çirdim/ @低浮上? @xirdim

↓ ここで、A と /.{\(𝓃+1),}/、B と /.{\(𝓃+2),}/ には自明な全単射が存在. ∴ |/.{\(𝓃+1),}/| = |/.{\(𝓃+2),}/| だから 𝓃=𝓀+1 でもP成立. [1][2]より、𝓃∊ℤ, 𝓃≥0 をみたす任意の 𝓃 に対してP成立.

2022-06-25 00:11:52
Xirdim /çirdim/ @低浮上? @xirdim

日付変わってるやん… 今日は寝よう()

2022-06-25 00:17:54
Xirdim /çirdim/ @低浮上? @xirdim

集合 A, B について、 |A| = |B| ⇔ |A| ≥ |B| かつ |A| ≤ |B| ⇔ 単射 A→B が少なくとも1つ存在する かつ 全射 A→B が少なくとも1つ存在する らしい (なんかこの証明って、説明になってんだかなってないんだかって感じだなぁ)

2022-06-29 23:29:38
Xirdim /çirdim/ @低浮上? @xirdim

これを使うとしたらかなり色々と簡略化できるよね twitter.com/xirdim/status/…

2022-06-29 23:30:19
Xirdim /çirdim/ @低浮上? @xirdim

便利だから先に1つ証明しときたい: 有限個の文字をもつ文字セット ℂ₁,ℂ₂ があり, それぞれによって作られる文字列全体集合を 𝕊₁,𝕊₂ とする. |ℂ₁|=|ℂ₂| のとき |𝕊₁|=|𝕊₂| (つまり「同数の文字からなる文字セットは、その内容に関係なく、それによって得られる文字列全体集合が同濃度」)

2022-06-29 23:37:02
Xirdim /çirdim/ @低浮上? @xirdim

まあこれ当たり前なんだけども一応ね。 |ℂ₁|=|ℂ₂| より、全単射 𝑓: ℂ₁→ℂ₂ が作れる。 ここで、𝑔: 𝕊₁→𝕊₂ を考え、𝑔(𝑠) を「𝑠 に含まれる文字 𝑐 を 𝑓(𝑐) に置き換えた文字列」とすると、𝑔 は全単射 ∴ |𝕊₁|=|𝕊₂| twitter.com/xirdim/status/…

2022-06-29 23:41:35
Xirdim /çirdim/ @低浮上? @xirdim

「/.{\𝓃,}/ (𝓃∊ℤ, 𝓃≥0) が互いに同濃度」を一発で証明 ∀𝓂,𝓃∊ℤ, 𝓂≥𝓃≥0, M=/.{\𝓂,}/, N=/.{\𝓃,}/ として |M|=|N| を示す. M⊂N より恒等写像 M→N は単射. 𝑐∊ℂを定め,  𝑓: N→M, 𝑓(𝑠)=𝑐×(𝓂-𝓃)+𝑠 とすると 𝑓 は単射. |M|≤|N|, |M|≥|N|より |M|=|N| よって題意は示された.

2022-06-30 00:03:48
Xirdim /çirdim/ @低浮上? @xirdim

なんか簡単すぎて怖いんですけど

2022-06-30 00:05:01
Xirdim /çirdim/ @低浮上? @xirdim

次は、 ∀ℂ:有限文字セット, |ℂ|>0 について、それによって得られる文字列全体集合 𝕊 は可算無限集合 ※さっきから断らずに使っちゃってたけど、「文字セット」とは「文字を元とする集合」のこととする を示す。 (しかし今日はもう寝る)

2022-06-30 00:12:08