![]() |
|
|
![]()
|
|
| SCAR |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 178 Регистрация: 17.8.2006 Репутация: нет Всего: нет |
Я написал функцию, которая берет текст из Мемо и разбивает его на слова, но есть еще одна задача. Надо разбить эти слова на слоги и сделать их проверку. Подскажите как сделать эту разбивку слова на слоги... В функцию должно поступать слово в формате AnsiString, а возвращать она дожна отдельные слоги в том же формате.
|
|||
|
||||
| _hunter |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 8564 Регистрация: 24.6.2003 Где: Europe::Ukraine:: Kiev Репутация: нет Всего: 98 |
ну возьми какой-нить учебник по русскому языку (класс за второй/третий) и почитай что такое слог и как его выделить...
-------------------- Tempora mutantur, et nos mutamur in illis... |
|||
|
||||
| SCAR |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 178 Регистрация: 17.8.2006 Репутация: нет Всего: нет |
Вот в этом и проблема, четких правил нет! Точнее их вообще почти никаких нет, я уже весь школьный курс просмотрел от 1 и до 7 класса.
|
|||
|
||||
| SCAR |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 178 Регистрация: 17.8.2006 Репутация: нет Всего: нет |
Никто не знает?
|
|||
|
||||
| nworm |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 502 Регистрация: 22.10.2005 Репутация: 4 Всего: 8 |
По-моему эту тему надо перенести в раздел "алгоритмы."
В принципе, можно либо свой алгоритм разбиения делать (используя правила из букварей, правда эти правила слегка кривые), либо словарь с уже разбитыми на слоги словами. Один знакомый диплом про это сделал, только потом на всё это задвинул... |
|||
|
||||
| Bitter |
|
|||
![]() Опытный лентяй ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1209 Регистрация: 15.8.2004 Где: Харьков, Ukraine Репутация: 4 Всего: 27 |
нужно реализовать правила русского языка, только их нужно знать )))
а еще можно базу данных слогов составить и сравнивать начиная с 2-х букв. Если такой в базе не нашелся, берем третью, если нашелся, удаляем из входящей строки и записываем в массив-результат. Для ускорения поиска реализуешь хеш таблицу |
|||
|
||||
| Kuvaldis |
|
|||
![]() механик-вредитель ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1189 Регистрация: 16.6.2006 Где: Минск Репутация: 1 Всего: 61 |
На 1-м курсе писал через такое правило:
Как показывает многочисленные эксперименты, разбиение русских слов для переноса с большей вероятностью выполняется правильно, если пользоваться следующими простыми приёмами: 1) две идущие подряд гласные можно разделить, если первой предше-ствует согласная, а за второй идёт хотя бы одна буква (буква “й” рассматривается вместе с предшествующей гласной как единое це-лое); 2) две идущие подряд согласные можно разделить, если первой из них предшествует гласная, а в той части слова, которая идёт за второй согласной, идёт хотя бы одна гласная (“ь” и “ъ” вместе с предшест-вующей согласной рассматриваются как единое целое): 3) если не удаётся применить первые два правила, то следует попы-таться разбить слово так, чтобы первая часть содержала хотя бы две буквы и оканчивалась на согласную, а вторая содержала одну глас-ную. Вероятность разбиения увеличивается, если предварительно восполь-зоваться хотя бы неполным списком приставок и попытаться выделить из слова эту приставку. Если очень надо, то могу выложить код -------------------- Помни - когда ты спишь, враг не дремлет Спи чаще и дольше, изматывай врага бессоницей |
|||
|
||||
| sergejzr |
|
|||
![]() Un salsero Профиль Группа: Админ Сообщений: 13285 Регистрация: 10.2.2004 Где: Германия г .Ганновер Репутация: 4 Всего: 360 |
||||
|
||||
| nworm |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 502 Регистрация: 22.10.2005 Репутация: 4 Всего: 8 |
Очень хороший алгоритм.
А вот слово сердце он разбивает так: сер-дце. А Word и TeX так: серд-це. Иногда могут попадаться перлы, в которых между двумя гласными согласных штук 6. Аналогично дело обстоит со словом бессердечный: бе-ссер-деч-ный Это сообщение отредактировал(а) nworm - 12.3.2007, 15:30 |
|||
|
||||
![]()
|
| Правила форума "Алгоритмы" | |
|
|
Форум "Алгоритмы" предназначен для обсуждения вопросов, связанных только с алгоритмами и структурами данных, без привязки к конкретному языку программирования и/или программному продукту.
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, maxim1000. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Алгоритмы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |