この質問は前の質問に続きますが、異なります。Synopseのdelphiハイフネーションは非常に高速で、TeXハイフネーションを使用するOpenOfficelibhnjライブラリに基づいて構築されています。
簡単なテストは次のとおりです。
'pronunciation'と入力すると、概要のハイフネーションは' pro = nun = ci = ation'(4つの可能なハイフンまたは音節)を出力します。//('pro = nun = ci = a = tion'ではなく、5つのハイフンまたは音節)。
音節化でのTexハイフネーションアルゴリズムの使用に関する2つの論文(こことここ)を読みました。著者は、音節化の精度が約95%であると述べています。Synopseハイフネーションは、CMU Pronouncing Dictionaryで音節を数えるためだけにテストしましたが、精度は約53%にすぎません。
結果が大幅に異なるのはなぜですか?
私は自分の方法を少し詳細に再現します。
CMUの発音辞書を解析して、すべての単語数を計算します。CMUdicは次のようなものです。
PRONOUNS P R OW1 N AW0 N Z
PRONOVOST P R OW0 N OW1 V OW0 S T
PRONTO P R AA1 N T OW0
PRONUNCIATION P R OW0 N AH2 N S IY0 EY1 SH AH0 N
PRONUNCIATION(1) P R AH0 N AH2 N S IY0 EY1 SH AH0 N
この結果が得られます:
PRONOUNS=2
PRONOVOST=3
PRONTO=2
PRONUNCIATION(1)=5 // will be ignored
PRONUNCIATION=5 // use this one
Synopseハイフネーションlibと比較すると、括弧付きの単語は無視されます。それらは代替または二次発音(バリアント)です。
同様に、ハイフネーションlibを使用して、CMU辞書の各単語の音節数を計算します。次に、2つを比較して、一致する数を確認します。音節の数が異なる単語は、次のように記録されます。
...
94814 cmu PROMULGATED=4 | PROMULGATED=3 Synopse Hyphenation
94821 cmu PRONGER=2 | PRONGER=1 Synopse Hyphenation
94829 cmu PRONOUNCES=3 | PRONOUNCES=2 Synopse Hyphenation
94833 cmu PRONTO=2 | PRONTO=1 Synopse Hyphenation
94835 cmu PRONUNCIATION=5 | PRONUNCIATION=4 Synopse Hyphenation
...
CMUの合計行数は123611です(括弧のある行と引用符の行'('などの意味のある単語のない行を除く)。2つの同じ単語の音節の合計数:57870。
CMUは音節数の標準ではない場合があります。このテストでは、(123611-57870)/123611=53.183%です。これは、上記の論文で著者が述べた正解率とは大きく異なります。もちろん、彼らはテストに別のデータベース(CELEX)を使用しました。なぜ結果がそんなに違うのですか?
概要ハイフネーションライブラリは非常に高速です。これがパターンファイル(OpenOfficeで使用されているlibhnjからのハイフネーションに使用されるdicファイル)によるものかどうかをさらに知りたいです。または、論文の著者は別の辞書ファイルを使用しましたか?