この記事は悠里・大宇宙界隈 Advent Calendar 2019の14日目の記事です。
これを探す。
alsat + -j 絡みを捕らえるのが面倒だな。まあ便宜上 -'t
も候補に入れて探し、あとで処理すればいいか。
まず「配布 - 【人工言語】リパライン語」の「オフライン辞書」から「理日辞書」をダウンロード。
次にZpDICでOTM-JSON形式に変換したものがこちら。これを処理してデータを得ていく。
やっつけ仕事なのでブラウザのいわゆる開発者ツールで十分。開発者ツールを開き、let a = (ここにJSONが入る)
をし、Enterを押し、待つ。
とりあえず面倒なのでまず見出し語だけを抽出。 JSON.stringify(a.words.map(b => b.entry.form))
と入れてEnterを押せば見出し語全てが入ったテキストが手に入り便利。今回は配列で得られれば十分なので let c = a.words.map(b => b.entry.form)
とでもしておく。
あとはまあ let prefixes = ["c", "d", "f", "g", "l", "m", "p", "t", "v", "z"]
と let suffixes = ["c", "s", "ct", "st", "d", "dy", "i", "it", "l", "lt", "nd", "sci", "t", "tj", "z"]
を定義しておく。さらに接辞自体を排除するために let words = c.filter(w => w[0] !== "-" && w[w.length-1] !== "-")
としておく。
んで let set_word = new Set(words)
やら let set_suff = new Set(words.map(w => suffixes.map(s => w + s)).flat())
やら let prefix_set = new Set(words.map(w => prefixes.map(p => p + w)).flat())
やら let prefix_set_suff = new Set(words.map(w => prefixes.map(p => suffixes.map(s => p + w + s))).flat(2))
やらを定義。リストモナドがほしいぞ。
さらにECMAScript 6 sets: union, intersection, differenceにあるように let intersection = (a,b) => new Set([...a].filter(x => b.has(x)))
を定義して、
とりあえず JSON.stringify([...intersection(set_word, set_suff)])
を入れてみると226個。
"ad","aders","adit","al","ales","alfi","als","alsatz","alt","alti","alxt","ankalefi","ankc","arfes","arl","arls","ars","art","arti","at","atit","vaifist","cec","cel","celat","celi","ces","cest","chad","chai","chas","cianti","cil","cis","dal","das","dat","del","dels","des","dyst","dzal","dzart","dzvis","eccal","edioll","el","eli","elmen'iars","elsec","elt","ens","eri","erl","erli","ers","es","est","et","ez","fai","fal","farl","farst","fart","fas","fast","faus","feas","fent","ferl","feus","feut","fiies","firjal","fiurs","flent","foi","font","forct","fvis","garxnescirfuat","gvis","il","ils","ilsas","irs","is","it","itiol","jad","jat","jei","jel","joli","jonust","jost","jujol","jurd","jurl","jurli","jurlt","justat","kalt","kantet","kas","khvis","klant","krant","kvas","kvis","kyrnal","berrac","bert","lad","lai","lais","laiz","lal","lales","larfest","larfi","larl","larli","larpyc","lart","larti","las","lat","laz","leccas","lerl","lers","les","lext","liaxi","lirjs","liz","lus","lut","lutit","lys","maki","mal","malfi","malst","malt","marvel","mel","melet","mels","menas","merc","mes","mil","mili","mis","nacel","nal","nastec","nat","nert","ni","nil","nili","nit","noi","nol","nult","nyi","ol","olt","os","ost","pani","past","paz","pent","phvis","plasi","ples","qerl","restut","sady","shvis","sisnest","stys","tal","tals","tarfs","tarkt","tas","tast","tat","teit","tel","tental","teri","terst","tidest","tol","tostamines","vel","velent","vels","vers","vis","wers","xal","xant","xast","xei","xel","xert","xes","xet","xol","xpers","xul","xut","xyrl","ys","yst","zis","zul","zvis"
JSON.stringify([...intersection(set_word, prefix_set)])
を入れてみると236個。
["vaj","carx","cale","cardze","ce","cel","celdin","celi","celx","celxif","celxify","cer","ces","cest","cher","ci","cil","cis","clek","co","ctas","da","dal","dalarta","dalle","dat","de","del","delx","delxif","delxify","den","der","des","dex","dhar","di","dicco","dirs","diurle","do","dpan","dqa","duliest","dur","dys","dyst","dza","dzer","dzva","dzve","dzvi","dzvis","dzvo","dzvoj","dzvoy","dzvu","fa","faf","fal","falx","falxify","far","pest","pesten","fark","farl","fart","farte","faus","fe","fecca","fein","felx","fen","fenxis","fer","ferjen","ferl","fery","festen","fetist","fgir","fhark","fher","fi","ficcer","fir","fixt","fka","fla","flan","flen","flern","fo","for","fqa","fta","fur","fve","fvi","fvis","fxe","fy","fyn","gelx","gelxif","gelxify","ger","gir","giurle","gve","gvi","gvis","la","filx","lad","lal","lale","lales","lalfi","lapia","lar","larfa","larfe","larl","lart","larti","lat","le","lecca","len","ler","lerl","lers","les","lex","li","lina","lirs","lisis","ljat","loj","lsans","lut","ly","lys","ma","mal","male","malf","malfi","malt","marfe","marl","marve","me","mej","mel","melx","melxif","melxify","men","mer","mes","mi","mil","mio","mirs","mis","mlay","mol","my","pa","parfe","parl","pelx","pelxif","pelxify","pen","per","pit","plas","plax","ple","ples","py","ta","tal","tals","talte","tarfe","tark","tarl","tat","te","tel","ter","teri","ti","ties","tipes","tliest","to","tof","tol","tsans","tverfe","ty","ve","vel","velen","ver","vers","vher","vi","virs","vis","viu","vixen","vulo","vxorln","vyrle","za","zel","zelx","zelxif","zelxify","zer","zest","zi","zis","zmal","zve","zvi","zvis"]
JSON.stringify([...intersection(set_word, prefix_set_suff)])
を入れてみると141個。
["carli","cas","cec","cel","celi","cent","ces","cest","cil","cis","cius","ctas","curl","dal","das","dat","del","dels","des","dirs","dirxel","dys","dyst","dzal","dzvis","fai","fal","fankas","pest","farfel","farl","farst","fart","fas","fast","fent","ferl","flent","flertast","foi","forct","fvis","glift","gvis","lad","lai","lal","lales","lalfi","lanki","larfest","larkas","larl","larli","lart","lartest","larti","las","lat","laz","lbers","leccas","lefans","leost","lerl","lers","les","lext","liest","lirs","lirz","lius","liz","ljat","lodest","lorz","lot","lurt","lutit","lys","lzid","mal","malfi","malst","malt","marl","marvel","mel","mels","merc","mes","mil","mili","mirs","mis","mol","morl","mors","pankal","parl","past","paust","paz","pent","pit","plas","plasi","ples","tal","tals","tarkt","tarl","tarvelt","tas","tast","tat","teit","tel","teri","terst","teskit","text","tlest","tol","vel","velent","vels","vent","vers","virs","vis","vodest","volit","zel","zest","zgias","zirl","zis","zmal","zvis","zyl"]
さあ、この中で意味が通りそうなのはどれだ。
あっよく見たら -‘z と -‘nd ってデュインだった。排除。
ということで、手作業で頑張って226個から取捨選択。88個残った。
ad ~と~ a'd (ドレミの)ドの
al アル、アルシェユ a'l (ドレミの)ドに向かって
atj 同じく~も(修飾反転) a'tj (ドレミの)ドと共に
als 全て、すべての al's アルが、アルシェユが
alti おやおや al'tj アルと共に、アルシェユと共に
arl ああ ar'l リパーシェ"a"に向かって
ars 無理やりな ar's リパーシェ"a"が
arfes 流れる、注ぐ、髪をとかす arfe's ボトルが
arti あらあら art'i アカウントを ar'tj リパーシェ"a"と共に
chai 線、電線 cha'i ラネーメ茶を
chas セルロース cha's ラネーメ茶が
cil 手を合わせる、両手で挟む ci'l 彼女に向かって
cis 迷惑相位詞 ci's 彼女が
cianti 挽く、砕く ciant'i 呪文を
dels 虚しいと思う del's 必要が
dystj 家の、家で(修飾反転) dys'tj 10.12リットルとともに
el ~まで e'l 仮主語向格
es する e's 仮主語主格
est 聖なる e'st 仮主語主格従属節
eccal シチュエーション ecca'l 冷静へ向かって
eli エリ、エーリ elj ~まで(修飾反転)
elmen'iars 労働者 elmen'iar's 労働者が(口語)
elsec 昇進する else'c 成り駒(エルゼ)に
eri エーイ er'i リパーシェ"e"を
erl eのリパーシェ碑文字体名 er'l リパーシェ"e"に向かって
ers 仮主語は~である er's リパーシェ"e"が
erli エーリ erl'i リパーシェ碑文字体"e"を
fai ~に影響されて fa'i 5(短縮形)を
fal ~にて fa'l 5(短縮形)に向かって
fas 始める fa's 5(短縮形)が
fast これから(詩語) fa'st 5(短縮形)が(従属節)
farl 企てる far'l 環境に向かって
farst 鉱物 far'st 環境が(従属節)
fartj (詩語)予め(修飾反転) far'tj 環境とともに
ferl 衰える;対処 fer'l リパーシェ"f"に向かって
firjal メモ firja'l 色彩に向かって
il i + le i'l リパーシェ碑文体"i"に向かって
is なる・至る i's リパーシェ碑文体"i"が
itj ~の影響で(修飾反転) i'tj リパーシェ碑文体"i"とともに
irs (理語音韻学)叩音 ir's リパーシェ"i"が
itiol 年老いた itio'l 消化に向かって
lales 最上級 lale's 比較級が
larfi (文語)背中 larf'i (詩語)物語を、血を
larfest 場面 larfe'st 血が(従属節)
larli 膵臓 larl'i 点を
larpyc チェックメイト larpy'c 首に
larti 筋肉 lart'i (詩語)人を
les 最上級 le's (ドレミの)ミが
leccas 怒りの相位詞 lecca's 最高が
lerl プログラミングする ler'l リパーシェ"l"に向かって
lers 悲しみの相位詞 ler's リパーシェ"l"が
lirjs リーエス連邦 lirj's 酋長が
lus 使う lu's (laを伴って)敬語が
lutj (詩語)~な lu'tj (laを伴って)敬語とともに
lutit 白 lu'tjt (laを伴って)敬語とともに(従属節)
mal そして ma'l 屈折に向かって
malt そしてそれと ma'lt 屈折に向かって(従属節)
malfi そして~して malf'i (詩語)危険を
marvel くれてやる marve'l タブーに向かって
meletj ~の近く(修飾反転) mele'tj 近所とともに
menas 公共の mena's 友達が
merc ねぇ mer'c リパーシェ"m"に
mil 待つ mi'l 私に向かって
mis (ドレミの)ラ mi's 私は
nal 一瞬 na'l 情勢に向かって
natj まだ(修飾反転) na'tj 情勢とともに
nil 嫌悪相位詞 ni'l 三人称性不定向格
noi (口語)射る no'i 今を
nol 付く no'l 今に向かって
pani 威張る pan'i 1(短縮形)を
plasi 説明する plas'i 説明を
ples プレス現象 ple's (詩語)道が
qerl クウェール qer'l リパーシェ"q"に向かって
stys 高い sty's 11.97kgが
tarfs ターフ諸族 tarf's ターフが
teri バス ter'i リパーシェ"t"を
terst 雄々しい相位詞 ter'st リパーシェ"t"が(従属節)
tol 笑いの相位詞 to'l (ドレミの)ファに向かって
tostamines お粥にする tostamine's お粥が
vers 少ない ver's リパーシェ"v"が
wers 刺す、突き刺す wer's リパーシェ"w"が
xei ログイン、チェックイン xe'i 中を
xel 見る xe'l 中に向かって
xes 線引をする xe's 中が
xpers スープを飲む xper's スープが
ys 拭く y's (詩語)不定人称主格
yst ある意味での~ y'st (詩語)不定人称主格従属節
zis 時計 zi's 間接二人称主格
残りについて同じことをやるの、ちょっとつらいのでやりたくない。誰かやって。