Обнаружение слогов в слове, содержащем не алфавитные символы - PullRequest
3 голосов
/ 16 октября 2010

Я внедряю тест на читаемость и внедрил простой алгоритм обнаружения слогов.Обнаружение последовательностей гласных Я считаю их словами, например, слово «shoud» содержит одну последовательность гласных «ou».Прежде чем считать их, я удаляю суффиксы, такие как -les, -e, -ed (например, слово «like» содержит один слог, но две последовательности гласных, поэтому этот метод работает).

Но... Рассмотрим следующие слова / последовательности:

  • Рентген (содержит два слога)
  • I'm (Один слог, может быть, я могу использовать удаление всех апострофов в тексте?)
  • goin '
  • Я бы
  • n' (например, Porn n 'Beans)
  • 3-й (как лечить это?)
  • 12345

Что делать со специальными символами?Удалить их всех?Это будет хорошо для большинства слов, но не с «n» и «рентген».И как обращаться с шифрами.

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

1 Ответ

1 голос
/ 17 октября 2010

Я бы посоветовал вам сначала определить, какая часть ваших данных состоит из таких слов и насколько это важно для общей эффективности вашей программы. Также составьте некоторые статистические данные о том, какие виды встречаются чаще всего.

Нет простого правильного решения этой проблемы, но я могу предложить несколько эвристик:

  • A ' между двумя согласными (shouldn't), по-видимому, означает исключение слога
  • A ' с гласной или границей слова на одной стороне (I'd, goin'), по-видимому, этого не делает (но обратите внимание, что goin' - это еще два слога)
  • Любое слово, включая n', имеет длину не менее одного слога
  • Тире (-) можно обрабатывать, обрабатывая текст с обеих сторон как отдельные слова

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

...