Подсчет слогов в слове - PullRequest
       41

Подсчет слогов в слове

22 голосов
/ 01 февраля 2012

Я ищу полностью точное изложение алгоритма для подсчета слогов в словах. То, что я нахожу, когда я исследую, противоречиво или что я знаю, чтобы произвести неправильные результаты. У кого-нибудь есть предложения, как этого добиться? Спасибо.

Алгоритм, который я сейчас использую:

  1. Подсчитайте количество гласных в слове.
  2. Не считайте двойные гласные («дождь» имеет 2 гласных, но только 1 слог)
  3. Если последняя буква в слове гласная, не считаются («сторона» - 1 слог)

Есть ли еще какие-то правила, которые я пропускаю? Я пытаюсь определить при тестировании мои неверные результаты, если алгоритм, который я использую, является неправильным или моя реализация этого.

Ответы [ 4 ]

23 голосов
/ 01 февраля 2012

Неоднозначность - огромная проблема в обработке естественного языка, но некоторые задачи могут справиться с неоднозначностью с хорошей точностью.Оказывается, слоговая часть - одна из них, поэтому не слушайте другие ответы.:)

Силлабификация

Эвристический

Вы могли бы придумать алгоритмы для достижения правильной слоговости практически во всем словаре английского языка , но это кажется сложным длязапрограммируйте правильно.

Корпус

Как всегда, когда ручные алгоритмы не слишком помогают, исследователи Natural Language Processing используют помеченные вручную корпуса, содержащие правильные ответы для заданных слов.Затем используются алгоритмы обучения, которые часто обеспечивают большую точность.Вы можете использовать слоговая система LingPipe (см. «Английская слоговая система») , которая следует этому подходу.

Исчерпывающий список

В английском только столько слов, как мы и придумалисо словарями.Такие словари часто содержат правильные слоги.Вы можете поцарапать reference.com.Например, волнообразная запись содержит «un · du · late», что достаточно, чтобы знать, что есть три слога.

Другие такие словари включают Answers.com Свободный словарь , Мерриам-Вебстер и т. Д.Ознакомьтесь с Условиями, автоматический поиск может быть запрещен.И разные словари не всегда соглашаются друг с другом.

Это не поможет с новыми словами или именами собственными, но я бы сказал, чтобудь самым точным методом.

О переносах

Еще одна связанная с этим проблема получила гораздо большее распространение: переносы.Но не используйте это!Он используется в программах набора текста , таких как LaTeX , но нацелен только на предоставление некоторых правильных дефисов, без предоставления неверного (высокая точность, низкий отзыв).Интересно отметить, что есть только 14 исключений, например.Проект, который имеет разные переносы в зависимости от части речи (глагол или существительное).

Программы переноса слов

Если вы решите, что этого достаточно для ваших нужд, обратите внимание, что Несколько реализаций алгоритма переноса TeX существуют в других языках, таких как Python, Perl или Ruby .

13 голосов
/ 01 февраля 2012

Я ищу полностью точную формулировку алгоритма для подсчета слоги в словах

Нет ни одного. Период. Какой бы алгоритм вы ни изобрели, я обещаю найти контрпример. В некоторых языках (армянский и русский приходят на ум) алгоритм довольно прост - посчитайте количество гласных. На других языках, таких как немецкий, это не так просто, но все же выполнимо. Боюсь, что в английском языке преобразование букв и звуков абсолютно нерегулярно.

Например,

совпадение . oi считается двумя слогами. Но в boil это только один слог. Кроме того, не считая окончательный гласный не всегда точно. Рассмотрим имя Пенелопа или Гермиона . Или банан

Еще один любопытный случай, когда слог существует без напечатанной гласной. Например, таблица является бисиллабическим словом, но второй слог генерируется невидимым звуком между b и л . Кроме того, не забывайте о словах, происходящих из латинского, которые могут иметь много последовательных гласных. Например. звукоподражания .

Итак, точного алгоритма нет. Единственный способ, которым вы можете пойти, - это попытаться найти алгоритм, который работает во многих (я избегаю слова) случаях. Но в этом случае вам следует пересмотреть свои требования.

1 голос
/ 21 декабря 2015

Старый вопрос, но, тем не менее, люди, вероятно, читают его время от времени, и это открытый вопрос.

Слова не состоят из отдельных, хорошо определенных, согласованных слогов - вы стараетесь разделить язык на слоги, и то, как вы это делаете, зависит от цели - некоторые из них более фонетические, другие полагаютсябольше на орфографии.

Фонетические методы дают разные результаты в зависимости от акцента или диалекта говорящего и / или от того, насколько четко каждый человек говорит в определенное время.В некоторых фонетических методах слоги делят звуки - т.е. последний звук в одном слоге может быть первым в следующем, и это может пересекать границы слов.

То, чему учат в школах (если школа вообще мешает), часто представляет собой смесь орфографических и фонетических правил, разработанных, чтобы помочь детям писать.Они стараются иметь несколько запоминающихся правил, которые работают большую часть времени, они не должны быть на 100% правильными или исчерпывающими.

С помощью любого конкретного метода вы, скорее всего, найдете вещи, которые вам не подходят.

Теперь ответ: для метрики читабельности не будет иметь большого значения, какой метод используется.Даже просто подсчет букв в словах (или гласных) может также работать.Если вы пытаетесь сопоставить чужие результаты, то вам нужно знать их метод.

0 голосов
/ 01 февраля 2013

Вам нужен словарь для сопоставления регулярного написания английских слов с их Международным фонетическим алфавитом эквивалентов.Это имеет более точное представление слогов в словах.Исходя из этого, вы можете сделать более точный подсчет слогов, но тогда это не учитывает различия в произношении.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...