| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Алгоритмы > Разбивка слов. |
| Автор: SCAR 5.3.2007, 14:18 |
| Я написал функцию, которая берет текст из Мемо и разбивает его на слова, но есть еще одна задача. Надо разбить эти слова на слоги и сделать их проверку. Подскажите как сделать эту разбивку слова на слоги... В функцию должно поступать слово в формате AnsiString, а возвращать она дожна отдельные слоги в том же формате. |
| Автор: _hunter 5.3.2007, 14:46 |
| ну возьми какой-нить учебник по русскому языку (класс за второй/третий) и почитай что такое слог и как его выделить... |
| Автор: SCAR 5.3.2007, 18:28 |
| Вот в этом и проблема, четких правил нет! Точнее их вообще почти никаких нет, я уже весь школьный курс просмотрел от 1 и до 7 класса. |
| Автор: SCAR 7.3.2007, 04:58 |
| Никто не знает? |
| Автор: nworm 10.3.2007, 17:03 |
| По-моему эту тему надо перенести в раздел "алгоритмы." В принципе, можно либо свой алгоритм разбиения делать (используя правила из букварей, правда эти правила слегка кривые), либо словарь с уже разбитыми на слоги словами. Один знакомый диплом про это сделал, только потом на всё это задвинул... |
| Автор: Bitter 12.3.2007, 01:27 |
| нужно реализовать правила русского языка, только их нужно знать ))) а еще можно базу данных слогов составить и сравнивать начиная с 2-х букв. Если такой в базе не нашелся, берем третью, если нашелся, удаляем из входящей строки и записываем в массив-результат. Для ускорения поиска реализуешь хеш таблицу |
| Автор: Kuvaldis 12.3.2007, 02:19 |
| На 1-м курсе писал через такое правило: Как показывает многочисленные эксперименты, разбиение русских слов для переноса с большей вероятностью выполняется правильно, если пользоваться следующими простыми приёмами: 1) две идущие подряд гласные можно разделить, если первой предше-ствует согласная, а за второй идёт хотя бы одна буква (буква “й” рассматривается вместе с предшествующей гласной как единое це-лое); 2) две идущие подряд согласные можно разделить, если первой из них предшествует гласная, а в той части слова, которая идёт за второй согласной, идёт хотя бы одна гласная (“ь” и “ъ” вместе с предшест-вующей согласной рассматриваются как единое целое): 3) если не удаётся применить первые два правила, то следует попы-таться разбить слово так, чтобы первая часть содержала хотя бы две буквы и оканчивалась на согласную, а вторая содержала одну глас-ную. Вероятность разбиения увеличивается, если предварительно восполь-зоваться хотя бы неполным списком приставок и попытаться выделить из слова эту приставку. Если очень надо, то могу выложить код |
| Автор: sergejzr 12.3.2007, 03:15 |
| На яваскрипт + описание алгоритма http://forum.vingrad.ru/index.php?showtopic=104640&view=findpost&p=799426 http://files.vingrad.ru/sergej.z/js/algorithms/slogi/ ПС: Соеденил темы. |
| Автор: nworm 12.3.2007, 15:21 |
| Очень хороший алгоритм. А вот слово сердце он разбивает так: сер-дце. А Word и TeX так: серд-це. Иногда могут попадаться перлы, в которых между двумя гласными согласных штук 6. Аналогично дело обстоит со словом бессердечный: бе-ссер-деч-ный |