どうせ和布蕪るなら、続き (「読み」から「発音」を生成、出来たような出来てないような)

知恵熱って…

結局一つ前でやったことで役に立ったのは「システム辞書から全ペア列挙」部分だけであった。せっかくの 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辞書の「名詞」についての、私のこの処理とオリジナルの「発音」の違いはたとえばこんな:

各レコードの、2行目が「読み」、3行目が私の変換、4行目がオリジナルの「発音」。
 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 辞書の方が絶対に正しいというわけでもない。かなり大量の間違いを見つけてしまった。まぁそれはそれで、別途書きたくなったら書くし、体力がなければ書かない。かわいらしいミスが結構多いよ。



Related Posts