Как поделить слова на слоги:карандаш,галоши?!
Деление на слоги
18.02.2012 17:25:56
|
|
|
|
18.02.2012 18:06:17
Для этого Вы должны обучить Excel правилам языка.
|
|
|
|
18.02.2012 19:42:38
По крайней мере количество слогов посчитать несложно: оно будет равно количеству гласных.
|
|
|
|
18.02.2012 19:46:42
Ничего себе задачи народ задает : ) Оля., почитайте здесь для начала
Юрий М, мне вот даже интересно стало, справяться ли с этой задачей регулярные выражения : ) А для того, чтобы иметь возможность это проверить, необхлдимо четко сформулировать правила разбиения. Че т русский вспоминать так не хочется)))
Чебурашка стал символом олимпийских игр. А чего достиг ты?
Тишина - самый громкий звук |
|
|
|
18.02.2012 19:49:08
Макросом, в принципе, не так уж и сложно. Вот правила:
не такие они и сложные, кому не лень - можно было б и написать. Зы. прочитал правила, и узнал что в это вопросе я безграмотен :( |
|
|
|
18.02.2012 19:56:59
Думаю, при большом желании, можно самостоятельно разработать алгоритм, взяв число гласных за основу анализа. Хотя, думаю, при достаточном упорстве и удаче можно найти уже готовый алгоритм. Мне с ходу удалось найти только реализацию для javascript:
|
|
|
|
18.02.2012 20:20:38
>на мой взгляд они там и не нужны. Ну-ну) Чтобы велик не изобретать, подобный этому
достаточно одного регулярного выражения [это на вскидку]. >Мне с ходу удалось найти только реализацию для javascript. Я js знаю, но переводить не стану. Мотивации нет : )
Чебурашка стал символом олимпийских игр. А чего достиг ты?
Тишина - самый громкий звук |
|
|
|
20.02.2012 09:32:35
anvg, это Вы количество гласных подсчитали, а задача была:
>поделить слова на слоги [Михаил С.] Я б попробовал, но после болезни голова пока не варит. Желаю скорейшего выздоровления!
Чебурашка стал символом олимпийских игр. А чего достиг ты?
Тишина - самый громкий звук |
|
|
|
20.02.2012 09:54:01
Вообще-то автоматическая расстановка переносов - это достаточно сложный процесс, которому посвящено много разных статей. Но практически все алгоритмы, дающие приличный результат основаны на использовании таблиц правил переноса. По разным данным эти таблицы содержат от 3000 до 5000 правил. Оно вам надо, так заморачиваться?
Можно, наверное, как-то умудриться использовать встроенный в Ворд переносчик... Но как к нему обратиться (в смысле как передать ему слово и получить обратно с расставленными переносами) ... ??? Да и тормозить, наверное, такая связка Excel-Word-Excel будет очень сильно. Вот, например, теме переносов посвящен сайт |
|
|
|
20.02.2012 10:28:02
Гы:-) А вам не кажется, что Оля давно забыла о своем посте в форум? А вы тут бисер мечете...
Я сам - дурнее всякого примера! ...
|
|
|
|
20.02.2012 11:45:59
>Вообще-то автоматическая расстановка переносов - это достаточно сложный процесс
Не собираюсь спорить, но тем не менее, алгоритм, ссылку на кот. приводил anvg и я по мнению участников форума, рабочий. >Гы:-) А вам не кажется, что Оля давно забыла о своем посте в форум? Думаю, так и есть. Признаться, мне абсолютно все равно. Интересно было порассуждать на тему самой задачи.
Чебурашка стал символом олимпийских игр. А чего достиг ты?
Тишина - самый громкий звук |
|
|
|
21.02.2012 09:17:42
Привила слогоделения могут быть разные в зависимости от того, для чего оно применяется. Большинство "гифенаторов" (в том числе, все версии гифенатора Батова) - это средства автоматического переноса слов. Совсем другой алгоритм требуется для подтекстовки нот в вокальной музыке (каждый слог должен располагаться под своей нотой или группой нот). Тут скорее подошел бы алгоритм с форума vingrad.ru, но и он несовершенен, так как не учитывает морфологию. А вот пример реализованной и широко известной в узком кругу музыкантов утилиты С.Лебедева:
Что касается подсчета слогов, то с этим только в русском языке всё так просто. Правда, глядя на код уважаемого anvg этого не скажешь :-) Я, конечно, дилетант и ничего в нем не понял, а сам в свое время сделал что-то вроде Public Function SyllableCount(ByVal Text As String) As Long voc = Array("А", "Е", "Ё", "И", "О", "У", "Ы", "Э", "Ю", "Я", "а", "е", "ё", _ "и", "о", "у", "ы", "э", "ю", "я") cons = Text For i = 0 To 19 cons = Replace(Сons, voc(i), "") Next i SyllableCount = Len(Text) - Len(cons) End Function Можно, конечно и без замен обойтись, просто посчитать вхождения гласных. А теперь представьте себе подсчет слогов в английском тексте (итальянском, французском, если кто в курсе). Подобных замен потребуются сотни. О практическом смысле расскажу, если найдутся любопытные. (Пишу это только из желания поддержать интересующую меня тему; ни в какой помощи я тут не нуждаюсь; алгоритмы мои далеки от совершенства, но вполне удовлетворяют условиям задачи). |
|
|
|
21.02.2012 09:29:59
еще вариант:
Function SyllableCount&(Text$) Dim i& For i = 1 To Len(Text) If InStr("аеёиоуыэюя", LCase(Mid(Text, i, 1))) Then SyllableCount = SyllableCount + 1 Next i End Function |
|
|
|
21.02.2012 09:40:04
{quote}{login=MCH}{/quote}
Спасибо, отличный вариант! Некоторых приемов я не знал, теперь буду активно применять :-) |
|
|
|
21.02.2012 17:36:30
Формула замысловатая, но считает она слоги только в первых 20 знаках строки :-)
|
|
|
|
21.02.2012 18:00:52
=СУММПРОИЗВ(ДЛСТР(A1)-ДЛСТР(ПОДСТАВИТЬ(СТРОЧН(A1);{"а":"е":"ё":"и":"о":"у":"ы":"э":"ю":"я"};)))
формула массива: =СЧЁТ(1/(ПОИСК(ПСТР(A1;СТРОКА($1:$99);1);" аеёиоуыэюя")-1)) |
|
|
|
21.02.2012 21:52:39
Да все уж давно забыли, о чем там речь шла. В моей же задаче порой и 32767 знаков было не достаточно :-)
|
|
|
|
22.02.2012 00:23:24
Забыл зарегитьcя. Выше - я
|
|
|
|
22.02.2012 10:15:55
Если кто-нибудь четко сформулирует правила разбиения по слогам, я попробую UDF написать. Кстати, как поделить на слоги слово "вьетнам"?)
В файле цветом отмечено сомнительное разбиение.
Чебурашка стал символом олимпийских игр. А чего достиг ты?
Тишина - самый громкий звук |
|
|
|
22.02.2012 14:40:26
{quote}{login=nerv}{date=22.02.2012 10:15}{thema=}{post}Если кто-нибудь четко сформулирует правила разбиения по слогам,.. {/post}{/quote}
По ссылке в файле правила изложены очень четко и полно. Вот цитата с одного из форумов, где обсуждались слоги: "Это ссылка на сайт, где выложена электронная версия книги "Современный русский язык", в то место, где рассматриваются слоги и слогоразделы: Можете сходить, посмотреть. Там не так подробно, но по сути тоже самое. Перенос слов хоть и производится в основном по слогам, но правила переноса несколько отличны. |
|
|
|
Читают тему