タイ語の組版規則を考える

このまとめの範囲では改行位置の話題に終始してしまいましたが、他にもフォントサイズとか、解らない点はいっぱいあります。
16
狩野宏樹 @KAN0U

カラムの狭いテキストの例(求人情報誌)を見ても、語間(本当はフレーズ間だが便宜上こう呼ぶ)スペースが大きい箇所はあっても、語間スペース無し、字間スペースが空き過ぎて困る行は見当らない。せいぜいเの幅くらい。若干の詰めも許容されるらしい。 http://t.co/28BMTf1D

2012-05-09 23:48:30
拡大
Tokushige Kobayashi @TokKoba

TeX のハイフネーションアルゴリズムですね。だとするとFormatter の昔のバージョンでハイフネーションに実装してました(いまは使ってない)。 @p_typo @KAN0U メモ的に… LiangのD論は http://t.co/Buqw919L から取得できる

2012-05-10 03:20:11
Tokushige Kobayashi @TokKoba

まずは、ユーザーが手で対応する必要がないように自動化で解決範囲を広げたいのです。改行位置~ページレイアウトまで @KAN0U

2012-05-10 03:56:09
Tokushige Kobayashi @TokKoba

@tlk714 @akane_neko @ogwata こんなのが・・This document describes the requirements for Indian Languages layout.. http://t.co/HLyMqBHF

2012-05-10 03:59:07
@horuf

今は使ってないんだ! RT @TokKoba: @p_typo @KAN0U TeX のハイフネーションアルゴリズムですね。だとするとFormatter の昔のバージョンでハイフネーションに実装してました(いまは使ってない)。

2012-05-10 07:37:18
Tokushige Kobayashi @TokKoba

@horuf @p_typo @KAN0U V6インストールするとTeXのハイフネーション辞書のホルダがありますから、いまも動くのでしょうね。(いまは、別のアルゴリズムを使っているはずです。)

2012-05-10 09:55:53
Tokushige Kobayashi @TokKoba

@akane_neko @KAN0U @ogwata 第5回多言語組版研究会:タイ語、ラオス語、カンボジア語(クメール語)の文字処理と組版における課題のリンクが切れていましたので修正しました。 http://t.co/zo80kyLG 失礼しました。

2012-05-10 12:16:37
狩野宏樹 @KAN0U

タイ語の改行可能位置についてルールベースでどこまで判るか引き続き考え中。辞書に依存しない固定したルールとして書ける範囲に限るので、単語境界を発見することは最初から諦め、音節境界さえ把握できればいいとする。UAX #29を調べてみたが、タイ語に関しては役に立たないことが分かった。

2012-05-12 09:50:48
狩野宏樹 @KAN0U

表記上の音節構造はそれほど難しくない。単子音または二重子音の回りに母音字と声調記号が取り巻き、後ろに末子音がつくこともある。1音節は最長でもV1C1C2V2TV3V4C3の8文字に限られる。この中で必須なのはC1だけ。V2とTは後ろの子音の上に重ねて表記する以外は横に並べる。

2012-05-12 10:07:19
狩野宏樹 @KAN0U

補足。C=子音(consonant)、V=母音(vowel)、T=声調(tone)。V2のうちu, uuは子音字の下に表記する(これは改行位置を考える上では問題にならないが不正確だったので)。

2012-05-12 10:10:24
狩野宏樹 @KAN0U

V1とV2に相当する母音字は、文字の種類で判別がつく。V3,V4には子音字としても使われる物(อ(`) とย(y)の二つ)があるが、多くは文字種で確定する。อは、V1,V2,TまたはV3専用字が前後についている場合または後ろにอがついているときのみ子音。

2012-05-12 10:43:36
狩野宏樹 @KAN0U

母音字として使用されるยは多くの場合V4に来る。次音節のV1との判別が問題になりそう。単語帳を見た限りでは子音Yとして使う場合には何らかの母音記号がつくようだが確かなことは言えない。後で辞書を確認しよう。実用上は「裸のยがV4の位置に来たら常に繋げる」と処理しても問題ないだろう。

2012-05-12 10:50:12
狩野宏樹 @KAN0U

母音字は常に子音と共起するので、その前後で区切れるか区切れないかの判別をつけられる。問題は子音が連続して出現している場所。まず、二重子音の場合は組み合わせが15通り(後ろに来る子音は3種類)に限られる。こういう場合は常に二重子音として読んで問題ない(山田均「タイ語の目」43頁)。

2012-05-12 11:01:45
狩野宏樹 @KAN0U

最後に残ったのが、末子音(V4)の判別。V4になり得る文字は子音44文字のうち35文字もある(ならない文字は使用頻度の低い文字ばかり)なので、基本的には辞書処理が必要。44×44のテーブルを持って2-gramで判別するような処理では実際の単語区切りを発見できない場合が非常に多い。

2012-05-12 11:22:30
狩野宏樹 @KAN0U

テーブルを任意の長さのn-gramに拡張し、優先順位つきで登録できるのが以前述べたLiangのアルゴリズムだが、完璧を期そうとすると結構な語数を登録する必要があるような気がする。完全な単語リストを持つのと容量的に変わらないかも知れない。

2012-05-12 11:39:18
狩野宏樹 @KAN0U

http://t.co/MOPDUbp9やhttp://t.co/E7CBEcuYに挙げられている誤ったタイ語の区切りの例は、どちらも短い単語の区切り誤りである。欧文でも短い単語はハイフネーションを避けるわけで、特に後者は「ぎなた読み」になってしまって、嫌われるのも無理はない。

2012-05-12 11:42:25
狩野宏樹 @KAN0U

それを避けるためには短い単語全部のリストを持たなければならない。長い単語(列)の部分文字列として出現する例外的な場合があるとしたら、それもまたリストに含めなければならない。音節区切り処理は、サンスクリット由来の長い単語を区切る場合でしか使えないだろう(ならば統合した方がいい)。

2012-05-12 11:52:52