advent2019

リパライン語におけるアポストロフィの有無による異綴同音異義語を探す

この記事は悠里・大宇宙界隈 Advent Calendar 2019の14日目の記事です。

やりたいこと

Image

これを探す。

対象接辞

alsat + -j 絡みを捕らえるのが面倒だな。まあ便宜上 -'t も候補に入れて探し、あとで処理すればいいか。

やり方

まず「配布 - 【人工言語】リパライン語」の「オフライン辞書」から「理日辞書」をダウンロード。

次にZpDICOTM-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	間接二人称主格			

残りについて同じことをやるの、ちょっとつらいのでやりたくない。誰かやって。

今後の課題