在我的語言中,有複合或複合字母,它們由多個字符組成,例如「ty」,「ny」,甚至「tty」和「nny」。我想寫一個Ruby方法(拼寫),該標記化字轉換爲字母,根據該字母:將單詞分解爲帶有紅寶石的字母
abc=[*%w{tty ccs lly ggy ssz nny dzs zzs sz zs cs gy ny dz ty ly q w r t z p l k j h g f d s x c v b n m y}.map{|z| [z,"c"]},*"eéuioöüóőúűáía".split(//).map{|z| [z,"v"]}].to_h
所得混雜鍵顯示現有字母/字母表的複合信,並且還示出了字母是輔音(「c」)和哪一個是元音(「v」),因爲稍後我想用這個散列將單詞分解成音節。複合詞的複合詞在複合詞的形成過程中,在詞語的共同邊界處形成的時候,當然不會被解決。
例子:
spell("csobolyó") => [ "cs", "o", "b", "o", "ly", "ó" ]
spell("nyirettyű") => [ "ny", "i", "r", "e", "tty", "ű" ]
spell("dzsesszmuzsikus") => [ "dzs", "e", "ssz", "m", "u", "zs", "i", "k", "u", "s" ]
你嘗試過這麼遠嗎?這將會非常複雜,所以如果你可以將它限制在一個特定的區域,你需要幫助,我想你會在這裏獲得更好的運氣。就目前而言,有很多邊緣案例說明,那些本不會說你的語言的人(可能是那些會說這種語言的人)無法通過...例如,如果我看到'dzs ''dzs「]'或'[」d「,」zs「]或'[」dz「,」s「]或'[」d「,」z「 ,「s」]'並且沒有詞典詞典(或者對這種語言有很多瞭解),我不認爲我們能夠確定哪一個是正確的 –
這就是爲什麼我排序字母表中的字母:if一個字母出現在前面,那麼它應該被識別而不是簡單的字母。當一個單詞包含「dzs」時,它應該被認爲是「dzs」而不是「d」和「zs」。在罕見的情況下,它會給出一些虛假的結果,但大多數分解將起作用。我不知道如何有效地做到這一點。也許有些內置字符串標記器或其他東西。 – Konstantin