web-dev-qa-db-ja.com

一言で音節を数える

音節を単語で数えるアルゴリズムの完全に正確なステートメントを探しています。調査したときに見つけたものに一貫性がないか、間違った結果を生成することがわかっています。誰かがこれを達成する方法の提案がありますか?ありがとう。

私が現在使用しているアルゴリズム:

  1. 単語の母音の数を数えます。
  2. 二重母音は数えないでください(「雨」には2つの母音がありますが、1音節しかありません)
  3. Wordの最後の文字が母音の場合はカウントしないでください(「サイド」は1音節です)

私が見逃しているルールは他にありますか?使用しているアルゴリズムが間違っているのか、それともその実装が間違っているのかをテストで判断しようとしています。

24
Glenn1234

あいまいさ は自然言語処理の大きな問題ですが、一部のタスクは実際にはあいまいさをうまく処理できます。分綴がその1つであることが判明したので、他の答えに耳を傾けないでください。 :)

分綴

ヒューリスティックベース

あなたはアルゴリズムを思い付くことができます 英語の語彙全体で事実上正しい音節化を達成する 、しかし正しくプログラムすることは複雑に思えます。

コーパスベース

いつものように、手作りのアルゴリズムがあまり役に立たない場合、自然言語処理の研究者は、与えられた単語の正解を含む手でタグ付けされたコーパスを使用します。次に、学習アルゴリズムが使用され、多くの場合、優れた精度が提供されます。 LingPipeの音節(「英語の音節」を参照) を使用できます。これはこのアプローチに従います。

網羅的なリスト

英語には単語がたくさんあるので、辞書を思いついたのです。このような辞書には、正しい音節が含まれていることがよくあります。あなたはreference.comをこすり取ることができます。たとえば、 ndulate entry には"un・du・late"が含まれています。これは、3つの音節があることを知るのに十分です。

他のそのような辞書には、 Answers.comThe Free DictionaryMerriam-Webster などがあります。利用規約をお読みください。自動検索が許可されていない場合があります。そして、異なる辞書は互いに 常に同意する ではありません。

新しい単語や固有名詞には役立ちませんが、最も正確な方法になると思います。

ハイフネーションについて

別の関連する問題は、より多くの露出を得ました:ハイフネーション。しかし、それを使用しないでください!組版プログラムで使用されます LaTeXなど ですが、正しいハイフンの一部を提供することのみを目的としており、正しくないもの(高精度、低再現率)。興味深いことに、例外は14個しかありません。品詞(動詞または名詞)によってハイフネーションが異なるプロジェクト。

ハイフネーションプログラム

必要に応じて十分であると判断した場合は、 Python、Perl、Rubyなどの他の言語にはTeXハイフネーションアルゴリズムの実装がほとんど存在しない であることに注意してください。

24
Quentin Pradet

単語の音節を数えるアルゴリズムの完全に正確なステートメントを探しています

ありません。限目。あなたが発明するアルゴリズムが何であれ、私は反例を見つけることを約束します。特定の言語(アルメニア語とロシア語が思い浮かびます)では、アルゴリズムは非常に単純です-母音の数を数えます。ドイツ語などの他の言語では、それはそれほど単純ではありませんが、それでも実行可能です。英語では、文字と音の間の変換は絶対に不規則です。

例えば、

一致oiは2音節として数えられます。しかしboilでは1音節だけです。また、最後の母音を数えないことは必ずしも正確ではありません。名前を考えてみてくださいペネロペまたはハーマイオニー。またはバナナ

もう1つの奇妙なケースは、母音が印刷されていない音節が存在する場合です。たとえば、tableは二音節の単語ですが、2番目の音節はbおよびl。また、連続した母音がたくさんあるギリシャ語に由来する単語も忘れないでください。例えば。 オノマトペ

したがって、正確なアルゴリズムはありません。あなたが行くことができる唯一の方法は、多くの場合(私はほとんどWordを避けています)で機能するアルゴリズムを見つけようとすることです。ただし、この場合、要件を再定義する必要があります。

15
Armen Tsirunyan

古い質問ですが、それでも、人々はたまにそれを読むでしょう、そしてそれは未解決の質問です。

単語は、個別の、明確に定義された、合意された音節から構成されていません-言語を音節に分割するために最善を尽くします、そしてそれを行う方法は目的によって異なります-いくつかはより音声的であり、他はよりスペルに依存しています。

音声法は、話者のアクセントや方言、および/または各個人が特定の時間にどれだけはっきりと話しているかに応じて、異なる結果を生成します。一部の音声方法では、音節は音を共有します。つまり、ある音節の最後の音が次の音節の最初の音になる可能性があり、これが単語の境界を越える可能性があります。

学校で教えられていることは(学校が気になっている場合)、多くの場合、子供たちが綴るのを助けるように設計された綴りと音声規則の混合です。彼らは、多くの場合に機能するいくつかの記憶に残るルールを作ろうとしますが、100%正確または網羅的であることを意図していません。

特定の方法では、自分に合っていないものが見つかる可能性があります。

答えは次のとおりです。読みやすさの指標については、どの方法を使用するかはそれほど重要ではありません。単語(または母音)の文字を数えるだけでも機能します。あなたが他の誰かの結果と一致させようとしているなら、あなたは彼らの方法を知る必要があります。

1
Unanimous

必要なのは、英語の単語の通常のスペルをそれらの 国際音声記号 同等のものにマップするための辞書です。これにより、単語内の音節がより正確に表現されます。それから、より正確な音節数を作成できます。しかし、それは発音の変化を考慮していません。

0
user151841