mirror of
https://github.com/GrammaticalFramework/gf-core.git
synced 2026-04-09 04:59:31 -06:00
regression test for Thai pronunciation
This commit is contained in:
@@ -4,12 +4,20 @@ import Data.Char
|
||||
import Data.List
|
||||
import qualified Data.Map as Map
|
||||
|
||||
testFile = "src/test.txt"
|
||||
resultFile = "src/results.txt"
|
||||
|
||||
test = do
|
||||
s <- readFile "src/swadesh.txt"
|
||||
s <- readFile testFile
|
||||
writeFile resultFile []
|
||||
mapM_ (testOne . tabs) $ lines s
|
||||
|
||||
testOne ws = case ws of
|
||||
_:_:t:p:_ -> putStrLn $ concat [t,"\t",p,"\t", unwords (map thai2pron (words t))]
|
||||
m:t:p:r:_ -> appendFile resultFile $ concat [mn,"\t",t,"\t",p,"\t",r,"\t",result,"\n"] where
|
||||
result = unwords (map thai2pron (words t))
|
||||
mn = if result == r
|
||||
then m
|
||||
else if result == p then (m ++ "+") else (m ++ "-")
|
||||
_ -> return ()
|
||||
|
||||
tabs s = case break (=='\t') s of
|
||||
@@ -54,42 +62,6 @@ thai2uni = map fromEnum
|
||||
uni2thai :: [Int] -> String
|
||||
uni2thai = map toEnum
|
||||
|
||||
{-
|
||||
uni2pron :: [Int] -> String
|
||||
uni2pron is = case is of
|
||||
0xe40:c:0xe34 :cs -> pron c ++ tone c cs "\601\601" ++ uni2pron cs
|
||||
0xe40:c:0xe35:0xe22:cs -> pron c ++ tone c cs "iia" ++ uni2pron cs
|
||||
0xe40:c:0xe37:0xe2d:cs -> pron c ++ tone c cs "\649\649" ++ uni2pron cs
|
||||
0xe40:c:0xe47 :cs -> pron c ++ tone c cs "e" ++ uni2pron cs
|
||||
0xe41:c:0xe47 :cs -> pron c ++ tone c cs "\x25b" ++ uni2pron cs
|
||||
|
||||
v:0xe2b:c:cs | bvow v && isConsonant c
|
||||
-> pron c ++ tone 0xe2b cs (pron v) ++ uni2pron cs -- h-
|
||||
v:b:c:cs | clust b c && bvow v -- kr- etc
|
||||
-> pron b ++ pron c ++ tone b (c:cs) (pron v) ++ uni2pron cs
|
||||
v:c:cs | bvow v -> pron c ++ tone c cs (pron v) ++ uni2pron cs -- e .. ay
|
||||
|
||||
c:0xe31:0xe27:cs -> pron c ++ tone c cs "ua" ++ uni2pron cs
|
||||
|
||||
0xe2b:c:v:cs | isConsonant c && cvow v
|
||||
-> pron c ++ tone 0xe2b cs (pron v) ++ uni2pron cs -- h-
|
||||
b:c:v:cs | clust b c && cvow v -- kr- etc
|
||||
-> pron b ++ pron c ++ tone b (c:cs) (pron v) ++ uni2pron cs
|
||||
0xe2d:v:cs | cvow v -> tone 0xe2d cs (pron v) ++ uni2pron cs -- O-
|
||||
c:v:cs | cvow v -> pron c ++ tone c cs (pron v) ++ uni2pron cs -- a .. u:
|
||||
|
||||
[c] -> enc c
|
||||
c:cs -> pron c ++ uni2pron cs --- shouldn't happen if syllabified ??
|
||||
[] -> []
|
||||
where
|
||||
enc c = lookThai [] pronunc_end c
|
||||
pron c = lookThai [] pronunc c
|
||||
cvow v = (0xe30 <= v && v <= 0xe39) || v == 0xe2d -- central vowels
|
||||
bvow v = 0xe40 <= v && v <= 0xe44 -- begin vowels
|
||||
clust b c = isConsonant b && (elem c [0xe23, 0xe25, 0xe27])
|
||||
-}
|
||||
|
||||
|
||||
uni2pron :: [Int] -> String
|
||||
uni2pron is = case getSyllable is of
|
||||
|
||||
@@ -331,3 +303,39 @@ allThaiChars = [
|
||||
TC {unicode = 3673, translit = "N9", cclass = Low, liveness = False, pronunc = "9", pronunc_end = "9"}
|
||||
]
|
||||
|
||||
|
||||
|
||||
{-
|
||||
uni2pron :: [Int] -> String
|
||||
uni2pron is = case is of
|
||||
0xe40:c:0xe34 :cs -> pron c ++ tone c cs "\601\601" ++ uni2pron cs
|
||||
0xe40:c:0xe35:0xe22:cs -> pron c ++ tone c cs "iia" ++ uni2pron cs
|
||||
0xe40:c:0xe37:0xe2d:cs -> pron c ++ tone c cs "\649\649" ++ uni2pron cs
|
||||
0xe40:c:0xe47 :cs -> pron c ++ tone c cs "e" ++ uni2pron cs
|
||||
0xe41:c:0xe47 :cs -> pron c ++ tone c cs "\x25b" ++ uni2pron cs
|
||||
|
||||
v:0xe2b:c:cs | bvow v && isConsonant c
|
||||
-> pron c ++ tone 0xe2b cs (pron v) ++ uni2pron cs -- h-
|
||||
v:b:c:cs | clust b c && bvow v -- kr- etc
|
||||
-> pron b ++ pron c ++ tone b (c:cs) (pron v) ++ uni2pron cs
|
||||
v:c:cs | bvow v -> pron c ++ tone c cs (pron v) ++ uni2pron cs -- e .. ay
|
||||
|
||||
c:0xe31:0xe27:cs -> pron c ++ tone c cs "ua" ++ uni2pron cs
|
||||
|
||||
0xe2b:c:v:cs | isConsonant c && cvow v
|
||||
-> pron c ++ tone 0xe2b cs (pron v) ++ uni2pron cs -- h-
|
||||
b:c:v:cs | clust b c && cvow v -- kr- etc
|
||||
-> pron b ++ pron c ++ tone b (c:cs) (pron v) ++ uni2pron cs
|
||||
0xe2d:v:cs | cvow v -> tone 0xe2d cs (pron v) ++ uni2pron cs -- O-
|
||||
c:v:cs | cvow v -> pron c ++ tone c cs (pron v) ++ uni2pron cs -- a .. u:
|
||||
|
||||
[c] -> enc c
|
||||
c:cs -> pron c ++ uni2pron cs --- shouldn't happen if syllabified ??
|
||||
[] -> []
|
||||
where
|
||||
enc c = lookThai [] pronunc_end c
|
||||
pron c = lookThai [] pronunc c
|
||||
cvow v = (0xe30 <= v && v <= 0xe39) || v == 0xe2d -- central vowels
|
||||
bvow v = 0xe40 <= v && v <= 0xe44 -- begin vowels
|
||||
clust b c = isConsonant b && (elem c [0xe23, 0xe25, 0xe27])
|
||||
-}
|
||||
|
||||
207
lib/src/thai/src/test.txt
Normal file
207
lib/src/thai/src/test.txt
Normal file
@@ -0,0 +1,207 @@
|
||||
- ฉัน , กู chǎn , kuu chăn , kuu
|
||||
- เธอ , มึง thəə , mʉŋ thəə , mʉŋ
|
||||
- เขา kháw khăw
|
||||
+ เรา raw raw
|
||||
- พวกคุณ phûakkhun phwkkhun
|
||||
- พวกเขา phûakkháo phwkkhăw
|
||||
+ นิ้ ní ní
|
||||
- นั่น nán nân
|
||||
- ที่นี่ thîinîi thîinii
|
||||
- ที่นั่น thîinân thîinan
|
||||
- ผู้ใด phûuday phûuaydo
|
||||
- อะไร aray aayro
|
||||
- ที่ใด thîiday thîiaydo
|
||||
- เมื่อไร mʉ̂aray eemʉʉɔɔayr
|
||||
- อย่างไร yàaŋray yaaŋayr
|
||||
- ไม่ mây mây
|
||||
- ทั้งหมด tháŋmòt tháŋmt
|
||||
- หลาย lǎay lăay
|
||||
- บ้าง bâaŋ bâaŋ
|
||||
- สองสาม sɔ̌ɔŋsǎam sɔ̆ɔŋsăam
|
||||
+ อื่น ʉ̀ʉn ʉ̀ʉn
|
||||
+ หนึ่ง nʉ̀ŋ nʉ̀ŋ
|
||||
- สอง sɔ̌ɔŋ sɔ̆ɔŋ
|
||||
- สาม sǎam săam
|
||||
- สี่ sìi sìi
|
||||
- ห้า hâa hâa
|
||||
- ใหญ่ , โต yày , too yày , too
|
||||
+ ยาว yaaw yaaw
|
||||
- กว้าง kwâaŋ kwâaŋ
|
||||
- หนา nǎa năa
|
||||
- หนัก nàk nàk
|
||||
- เล็ก , น้อย lék , nɔ́ɔy lék , nɔ́ɔy
|
||||
- สั้น , เตี้ย sân , tîa sân , tîa
|
||||
- แคบ khâeaep khɛɛ
|
||||
+ บาง baaŋ baaŋ
|
||||
+ หญิง yĭŋ yĭŋ
|
||||
+ ชาย chaay chaay
|
||||
- ผู้ , คน phûu , khon phûu khon
|
||||
- เด็ก , ศิศุ dèk , sìsù dèk , sìtu
|
||||
- เมีย , ภรรยา mia , phanrayaa mia , phrnyaa
|
||||
- ผัว , สามี phǔa , sǎamii phăw , săamii
|
||||
+ แม่ mɛ̂ɛ mɛ̂ɛ
|
||||
- พ่อ , บิดา phɔ̂ɔ , bìdaa phɔ̂ɔ , bìtaa
|
||||
- สัตว์ sàt sàtwo
|
||||
+ ปลา plaa plaa
|
||||
- นก; วิหค (Sanskrit) nók , wíhòk nk , wikho
|
||||
- หมา; สุนัข (Sanskrit) mǎa , sùnák màa , sŭnakh
|
||||
- เล็น , เหา len , hǎw len , hăw
|
||||
+ งู ŋuu ŋuu
|
||||
- หนอน nɔ̌ɔn nɔ̆ɔn
|
||||
- ไม้ máay máy
|
||||
- ดง , ป่า doŋ , pàa doŋ , pàa
|
||||
- กิ่ง kìŋ kìŋ
|
||||
- หมาก màak màak
|
||||
- เม็ด mét mét
|
||||
+ ใบ bay bay
|
||||
- ราก râak râak
|
||||
- เปลือก , ผิว plʉ̀ak , phĭw eeplʉʉɔɔk , phĭw
|
||||
- ดอก , ปลี dɔ̀ɔk , plii dɔ̀ɔk , plii
|
||||
- หญ้า yâa yâa
|
||||
- เชือก chʉ̂ak eechʉʉɔɔk
|
||||
- หนัง nǎŋ năŋ
|
||||
- เนื้อ nʉ́a eenʉʉɔɔ
|
||||
- เลือด , โลหิต lʉ̂at , loohìt eelʉʉɔɔd , looit
|
||||
- กระดูก , ก้าง kradùuk , kâaŋ kràtuuk , kâaŋ
|
||||
+ มัน man man
|
||||
- ไข่ khày khày
|
||||
- เขา khǎw khăw
|
||||
- หาง hǎaŋ hăaŋ
|
||||
- ขน khǒn khon
|
||||
- ผม phǒm phom
|
||||
- หัว hǔa hăw
|
||||
- หู hǔu hŭu
|
||||
+ ตา taa taa
|
||||
- จมูก camùuk cmuuk
|
||||
- ปาก pàak pàak
|
||||
+ ฟัน fan fan
|
||||
+ ลิ้น lín lín
|
||||
- เล็บ lép lép
|
||||
- เท้า , ตีน tháaw , tiin tháw , tiin
|
||||
- ขา khǎa khăa
|
||||
- เข่า khàw khàw
|
||||
- มือ mʉʉ mʉʉɔɔ
|
||||
+ ปิก pìk pìk
|
||||
+ พุง phuŋ phuŋ
|
||||
- ไส้ sây sây
|
||||
- คอ , ศอ khɔɔ , sɔ̌ɔ khɔɔ , sɔ̆ɔ
|
||||
- หลัง lǎŋ lăŋ
|
||||
+ นม nom nom
|
||||
+ ใจ cay cay
|
||||
- ตับ tàp tàp
|
||||
+ ดื่ม dʉ̀ʉm dʉ̀ʉm
|
||||
+ กิน kin kin
|
||||
- กัด kàt kàt
|
||||
- ดูด dùut dùut
|
||||
- ถ่ม , คาย thòm , khaay thm , khaay
|
||||
- อ้วก , อาเจียน ûak , aacian wko , aaeeciiyno
|
||||
- พัด phát phát
|
||||
- หายใจ hǎaycay hăaycay
|
||||
- หัวเราะ hǔarɔ́ hăwrɔ
|
||||
- เห็น hěn hĕn
|
||||
- ยิน , ฟัง yin , faŋ yin , faŋ
|
||||
- รู้ rúu rúu
|
||||
- คิด khít khít
|
||||
- มีกลิ่น miiklìn mîiklîn
|
||||
- กลัว , ยั่น klua , yân klaw , yân
|
||||
+ นอน nɔɔn nɔɔn
|
||||
- อยู่ , อาศัย yùu , aasǎi yuu , àatay
|
||||
- ตาย , วาย taay , waay taay , waay
|
||||
- ฆ่า , มล้าง khâa , maláaŋ khâa , mláaŋ
|
||||
- สู้ , รบ sûu , róp sûu , rop
|
||||
- ล่า lâa lâa
|
||||
+ ตี tii tii
|
||||
- ตัด , บาด tàt , bàat tàt , bàat
|
||||
- ผ่า phàa phàa
|
||||
- แทง , เสียบ thɛɛŋ , sìap thɛɛ , sìap
|
||||
+ เกา kaw kaw
|
||||
- ขุด khùt khùt
|
||||
- ว่าย wâay wâay
|
||||
+ บิน bin bin
|
||||
+ เดิน dəən dəən
|
||||
+ มา maa maa
|
||||
+ นอน nɔɔn nɔɔn
|
||||
- นั่ง nâŋ nâŋ
|
||||
+ ยืน yʉʉn yʉʉn
|
||||
- หัน hǎn hăn
|
||||
- ตก , หล่น tòk , lòn tok , ln
|
||||
- ให้ hây hây
|
||||
- อุ้ม ûm ûm
|
||||
- คั้น khán khán
|
||||
- ถู , นวด thǔu , nûat thŭu , nwt
|
||||
- ล้าง láaŋ láaŋ
|
||||
- เช็ด chét chét
|
||||
- ดึง , ลาก dʉŋ , lâak dʉŋ , lâak
|
||||
- ผลัก phlàk phlàk
|
||||
- ขว้าง , ปา khwâaŋ , paa khwâaŋ , paa
|
||||
- ผูก , ล่าม phùuk , lâam phùuk , lâam
|
||||
- เย็บ yép yép
|
||||
- นับ náp náp
|
||||
- พูด , บอก phûut , bɔ̀ɔk phûut , bɔ̀ɔk
|
||||
+ ร้อง rɔ́ɔŋ rɔ́ɔŋ
|
||||
- เล่น lên lêen
|
||||
+ ลอย lɔɔy lɔɔy
|
||||
- ไหล lǎy lăy
|
||||
- แข็ง khǎeŋ khɛ̆ŋ
|
||||
- ตุ่ม tùm tùm
|
||||
- ตะวัน , พระอาทิตย์ tawan , phrá?aathít tawan , phrâɔɔaatity
|
||||
- เดือน , พระจันทร์ dʉan , phrácan eedʉʉɔɔn , phrátanthr
|
||||
- ดาว , ดารา daaw , daaraa daaw , daanaa
|
||||
- น้ำ , ชล náam , chon nám , chlo
|
||||
- ฝน fǒn fon
|
||||
- แม่น้ำ , นที mɛ̂ɛnám , náthii mɛ̂ɛnam , ntii
|
||||
- ทะเลสาบ thaleesàap thaeeltaab
|
||||
- ทะเล , มหาสมุทร thalee , mahǎasamùt thaeel , maasmuthr
|
||||
- เกลือ klʉa eeklʉʉɔɔ
|
||||
+ หิน hĭn hĭn
|
||||
- ทราย saay thraay
|
||||
- ฝุ่น; ธุลี (Sanskrit) fùn , thúlii fùn , thunii
|
||||
+ ดิน din din
|
||||
- เมฆ mêek mee
|
||||
+ หมอก mɔ̀ɔk mɔ̀ɔk
|
||||
- ฟ้า , นภา fáa , napaa fáa , npaa
|
||||
+ ลม lom lom
|
||||
- หิมะ himá hĭma
|
||||
- น้ำแข็ง náamkhǎeŋ nám0x25bɛkhŋ
|
||||
+ ควัน khwan khwan
|
||||
- ไฟ , อัคนี fay , akkhanii fay , àknii
|
||||
- เถ้า thâw thâw
|
||||
- เผา phǎw phăw
|
||||
- ทาง , หน thaaŋ , hǒn thaaŋ , no
|
||||
- เขา , ภู , ดอย , คิริ phuu , khǎo , dɔɔy , khìrì khăw , phuu , dɔɔy , khini
|
||||
- แดง dɛɛŋ dɛɛ
|
||||
+ เขียว khĭaw khĭaw
|
||||
- เหลือง lʉ̌aŋ eehlʉʉɔɔŋ
|
||||
- ขาว khǎaw khăaw
|
||||
+ ดำ dam dam
|
||||
+ กลางคืน klaaŋkhʉʉn klaaŋkhʉʉn
|
||||
+ กลางวัน klaaŋwan klaaŋwan
|
||||
- ปี ,ขวบ pii , khùap pii , khwb
|
||||
- ร้อน , อุ่น rɔ́ɔn , ùn rɔ́ɔn , ùn
|
||||
- หนาว , เซ็ง nǎaw , sen năaw , seŋ
|
||||
+ เต็ม tem tem
|
||||
- ใหม่ mày mày
|
||||
- แก่ , เฒ่า kɛ̀ɛ , thâo kɛ̀ɛ , thâw
|
||||
+ ดี dii dii
|
||||
- เลว , ร้้าย leew , ráay lwee ráay
|
||||
- เน่า nâo nâw
|
||||
- สกปรก sòkkapròk skprk
|
||||
- ดิ่ง , ตรง dìŋ , troŋ dìŋ , trŋ
|
||||
- กลม , มน klom , mon klm , mon
|
||||
+ คม khom khom
|
||||
- ทื่อ thʉ̂ʉ thʉ̂ʉɔɔ
|
||||
+ ละมุน lamun lamun
|
||||
- เปียก pìak pìak
|
||||
+ แห้ง hɛ̂ɛŋ hɛ̂ɛŋ
|
||||
- แท้ , แม่น thɛ́ɛ , mɛ̂ɛn thɛ́ɛ , mɛ̂ɛn
|
||||
- ใกล้ klây klây
|
||||
+ ไกล klay klay
|
||||
- ขวา khwǎa khwăa
|
||||
- ซ้าย sáay sáay
|
||||
+ ที่ thîi thîi
|
||||
+ ใน nay nay
|
||||
- กับ , ด้วย kàp , dûay kàp , dwyo
|
||||
- และ láe lɛ
|
||||
- ถ้า , เผื่อ thâa , phʉ̀a thâa , eephʉʉɔɔ
|
||||
- เพราะ , ด้วย phrɔ́ , dûay phrɔ , dwyo
|
||||
- ชื่อ , เรียก chʉ̂ʉ , rîak chʉ̂ʉɔɔ , rîak
|
||||
Reference in New Issue
Block a user