知恵熱って…
結局一つ前でやったことで役に立ったのは「システム辞書から全ペア列挙」部分だけであった。せっかくの difflib 使いもほとんど役に立たず。結局「じっくり凝視して」目と頭だけで抽出することになった。
作業そのものは一つ前のスクリプトでやってはいたんだけど、汚れちまったので、結果としての「読み to 発音」の核心部分だけ:
1 def _read2pron(r):
2 # 「読み」から「発音」を生成する。
3 #
4 # IPA辞書での「読み」と「発音」の対応関係に出来るだけ似せた
5 # かったが、無理があった。結構違う生成になるが、実用的には
6 # あまり問題ないのではないかと思う。たとえば「東奔西走」に対
7 # する発音はこの処理では「トーホンセーソー」とするが、IPA
8 # 辞書ではこれに対して「トーホンセイソー」を与えている。
9 #
10 # 「オオヤスウリ」を「オーヤスーリ」に、「ヒガシウスヅカ」
11 # を「ヒガシュースズカ」してしまうなどについてはかわいいやつ
12 # だとでも思ってくれ。耳で聞くぶんにはそうおかしくもない。
13 # 読み上げ用途ならそれほど問題にはならないと思うし。
14 #
15 # あと基本的に固有名詞以外にはよろしくない。つまり「ハ」
16 # を「ワ」に変換することをしていないので、「コンニチハ」
17 # のままになってしまう。
18 #
19 # つまりはこの処理がターゲットにするのは「面倒だから自分で
20 # 入力したくない」のための所詮はデフォルトと考えて欲しい。
21 # 重要なものについてはやはり自分でちゃんと記述したほうがいい。
22 #
23
24 #
25 # 古語に色目を使うと現代語でうまくいかないので、現代語のみを
26 # ターゲットにする。
27 for fr, to in (
28 # 以下、順番にも意味があるので、わかりやすさのために
29 # 並べ替えたりしないでね。
30
31 ("ヴァ", "バ",),
32 # ヴィをブイとするのビとするのも一つの流儀なので、どちらかを選ぶしかない。
33 ("ヴィ", "ビ",),
34 ("ヴェ", "ベ",),
35 ("ヴォ", "ボ",),
36 ("ヴ", "ブ",),
37
38 ("ヰ", "イ",),
39 ("ヱ", "エ",),
40 ("ヲ", "オ",),
41
42 ("ヅ", "ズ",),
43 ("ヂ", "ジ",),
44
45 (r"イ[ウフ]$", "ユウ"),
46 (r"^イウ", "ユウ"),
47
48 # 「○ア」⇒「○ー」で、○は基本的にア段。
49 (r"([アァカガサザタダナハバパヤャラワ])[アァ]", r"\1ー",),
50
51 # 「○イ」⇒「○ー」で、○は基本的にイ段かエ段。
52 (r"([イィキギセゼシジチヂニヒビピミメリレ])[イィ]", r"\1ー",),
53
54 # 「○ウ」⇒「○ュー」。「ニウ」⇒「ニュー」など。イ段。
55 (r"([キシジチニヒビピミリ])[ウゥ]", r"\1ュー",),
56
57 # 「○オ」⇒「○ー」で、○は基本的にオ段。
58 (r"([オコゴソゾトドノホボポモヨョロ])[オォ]", r"\1ー",),
59
60 # 「○エ」⇒「○ー」で、○は基本的にエ段。
61 (r"([エェケセゼテデネヘベペメレ])[エェ]", r"\1ー",),
62
63 # 「○ウ」⇒「○ー」で、○は基本的にウ・オ段。
64 (r"([オクグコゴスズソゾツヅトドヌノフブプホボポムモユュヨョルロ])[ウゥ]", r"\1ー",),
65 ):
66 r = re.sub(fr, to, r)
67 return r
これには反映してある。Rev37 ね。
IPA辞書の「名詞」についての、私のこの処理とオリジナルの「発音」の違いはたとえばこんな:
1 INFO:root:'名詞-形容動詞語幹-リュウレイ-リューレイ'
2 'リュウレイ'
3 => 'リューレー'
4 'リューレイ'
5
6 INFO:root:'名詞-形容動詞語幹-ソウメイ-ソーメイ'
7 'ソウメイ'
8 => 'ソーメー'
9 'ソーメイ'
10
11 INFO:root:'名詞-形容動詞語幹-セイギョウ-セイギョー'
12 'セイギョウ'
13 => 'セーギョー'
14 'セイギョー'
15
16 INFO:root:'名詞-形容動詞語幹-リュウセイ-リューセイ'
17 'リュウセイ'
18 => 'リューセー'
19 'リューセイ'
20
21 ...
22
23 INFO:root:'名詞-サ変接続-トウホンセイソウ-トーホンセイソー'
24 'トウホンセイソウ'
25 => 'トーホンセーソー'
26 'トーホンセイソー'
27
28 ...
29
30 INFO:root:'名詞-固有名詞-一般-イヴニングウィズ-イブニングウィズ'
31 'イヴニングウィズ'
32 => 'イブニングーィズ'
33 'イブニングウィズ'
34
35 INFO:root:'名詞-固有名詞-一般-ヒガシウスヅカ-ヒガシウスズカ'
36 'ヒガシウスヅカ'
37 => 'ヒガシュースズカ'
38 'ヒガシウスズカ'
39
40 ...
41
42 INFO:root:'名詞-サ変接続-オオヤスウリ-オーヤスウリ'
43 'オオヤスウリ'
44 => 'オーヤスーリ'
45 'オーヤスウリ'
46
47 ...
音だけで聞くとそうヘンでもないんだけれど、文字にするとヘン、てやつね。
あとちなみに。もとの IPA 辞書の方が絶対に正しいというわけでもない。かなり大量の間違いを見つけてしまった。まぁそれはそれで、別途書きたくなったら書くし、体力がなければ書かない。かわいらしいミスが結構多いよ。