В мире компьютеровПравила переноса слов

Русский язык и современные информационные технологии

Модератор: Роксана

Аватара пользователя
Лев
заслуженный писатель форума
заслуженный писатель форума
Сообщений в теме: 1
Всего сообщений: 481
Зарегистрирован: 06.10.2006
Откуда: Санкт-Петербург
Возраст: 71

Сообщение Лев » 02 окт 2007, 08:10

Насколько мне помнится, существует запрет при переносе отрывать первую букву от корня слова. Но как это реализовать программно - ума не приложу, если составлять словарь, то он будет громадный, а найти правило - сомневаюсь, что это возможно. Может быть, пойти от обратного и анализировать приставки, считая, что корень слова будет сразу после них?
Errare humanum est!

Реклама
Аватара пользователя
Вячеслав Кургин
заслуженный писатель форума
заслуженный писатель форума
Сообщений в теме: 2
Всего сообщений: 454
Зарегистрирован: 21.11.2005

Сообщение Вячеслав Кургин » 04 окт 2007, 10:37

Лев:существует запрет при переносе отрывать первую букву от корня слова. Но как это реализовать программно - ума не приложу
Можно составить словарь приставок. Он будет существенно короче.

Аватара пользователя
Дима
поэт-прозаик
поэт-прозаик
Сообщений в теме: 7
Всего сообщений: 235
Зарегистрирован: 22.08.2007
Откуда: Финляндия, Espoo
Контактная информация:

Сообщение Дима » 04 окт 2007, 17:10

Вячеслав Кургин:Можно составить словарь приставок. Он будет существенно короче.
Но программа всё равно не будет разбираться, например:
по-давать или
под-авать?
Ещё один пример:
под-дать или
по-ддать?
_____
_/ Дима )
`O------O'

Автор темы
Andrey
дьяк
дьяк
Сообщений в теме: 27
Всего сообщений: 34
Зарегистрирован: 09.09.2007

Сообщение Andrey » 04 окт 2007, 19:02

Поясняю:
по-давать - перенесет (гласная - согласная);
под-авать - не перенесет (нет правила согласная - гласная) если не открыть такой вариант в словаре(но зачем это делать :( );
под-дать - перенесет (буква слева = букве справа);
по-ддать - не перенесет (с одной стороны две одинаковые буквы);

Выкладываю последний алгоритм, словарь выложил раньше, пока ничего в словарь не добавлял, при прочтении последней 1/5 части книги встретил только две ошибки: разведс-лужбы, разведс-труктуры и 2 слова не перенесла где хотелось-бы: концен-трации, от-хлебнул (подчиняется запрету на 2 согласных справа от переноса).

Словарь работает следующим образом:
в слово, в месте предполагаемого переноса вставляется символ "-", например: "про-давщица" каждое "слово" из словаря проверяется на вхождение в данное, см. словарь 1, там есть "про-дав", что является вхождением в слово "про-давщица" - т. к. словарь 1 - это словарь дополнительных разрешений - перенос разрешен.
Если - бы в словаре не было слова "про-дав", то перенос был-бы запрещен по п. 6.5 алгоритма.

Алгоритм:
/*
Правила работы поиска места переноса в слове:
Функция получает: слово и позицию, начиная с которой надо найти позицию правильного переноса в слове
1. Алгоритм сдвигается по слову влево, пока не найдёт точку переноса или возвращает значение "нельзя переносить".
2. Крайние символы самостоятельно не переносятся.
3. Оценивается наличие не более трех "знаков препинания" в правой стороне слова левее позиции переноса.
Для выполнения правила 2 справа.
4. Оценивается наличие не более трех "знаков препинания" в начале слова.
Для выполнения правила 2 слева.
Если слева или справа больше "знаков препинания" чем 3, то перенос этого слова не гарантирует
правильность.
----------------------------------------------------------------------------------
Цикл (Сдвинуть место переноса левее (если слово кончилось, вернуть: "нельзя переносить" - конец функции))
5. Ищем место переноса:
5.1 - проверка на разрешение переноса из словаря разрешений
если нашли идем к 6.8 и последовательно ниже
5.2 - если буква слева == букве справа
идем к 6.8 и последовательно ниже
5.3 - если (позиция переноса == 3) и (первые 4 буквы == "пред")
идём к 6.6 и последовательно ниже
5.4 - если (позиция переноса == 2) и (первые 3 буквы == "пре" или "при" или "про")
5.4.1 если (буква 3 != "д") - перейти в начало цикла
5.4.2 если (буква 3 != "й") - перейти в начало цикла
идём к 6.6 и последовательно ниже
5.5 - если (согласная ("ъ" или "ь") - гласная) или (гласная, затем "й" - гласная)
идём к 6.1 и последовательно ниже
5.6 - если (гласная - гласная) ищем в словаре дополнительных разрешений на перенос гласная - гласная
если нашли - идем к 6.8 и последовательно ниже
5.7 - если (гласная - согласная) или (согласная - согласная (если правая согласная не "ъ" или "ь")
идём к 6.1 и последовательно ниже
Если ничего по п.5 не подошло - перейти в начало цикла.
----------------------------------------------------------------------------------
6. Нельзя переносить (проверяется, для найденной точки переноса по правилам п.5.)

6.1 - если правее, правой согласной буквы, стоит "ь";
6.2 - если правее правой согласной не гласная буква, за исключением буквосочетания "ств";
6.3 - если (позиция переноса == 4) и (первые 4 буквы == "пред")
6.4 - если (позиция переноса == 3) и (первые 3 буквы == "пре" или "при" или "про")
6.5 - если (позиция переноса == 2) и (первые 3 буквы == "пре" или "про") и (буква 3 == "д")

6.6 - если слева или справа две одинаковых согласных;
6.7 - если слева или справа две одинаковых гласных;

6.8 - проверка на запрет из словаря запретов;
6.9 - если или слева или справа от предполагаемого места переноса нет гласной буквы.
Если запретов не найдено вернуть позицию места переноса - конец функции.
При выполнении первого найденного запрета - перейти в начало цикла.
----------------------------------------------------------------------------------
*/

Представленный алгоритм немного упрощен, чем реализовано в программе для ускорения её работы.

Добавлено спустя 5 минут 2 секунды:
Вячеслав Кургин:Можно составить словарь приставок. Он будет существенно короче.
Хорошая идея.
Поможете со словарем приставок?

В алгоритме можно увидеть, что я уже анализирую приставки при, пре, про, пред и частично "прод" (кстати не ошибка ли это? см. п. алгоритма 6.5)
Новая папка.part2.rar
Программа ч.2
(434.62 КБ) 413 скачиваний
Новая папка.part1.rar
Программа ч.1
(976.56 КБ) 436 скачиваний
Английский без зубрежки http://easy-study-english.blogspot.com/p/blog-page.html

Аватара пользователя
Дима
поэт-прозаик
поэт-прозаик
Сообщений в теме: 7
Всего сообщений: 235
Зарегистрирован: 22.08.2007
Откуда: Финляндия, Espoo
Контактная информация:

Сообщение Дима » 04 окт 2007, 19:46

Andrey:Поясняю:
по-давать - перенесет (гласная - согласная);
под-авать - не перенесет (нет правила согласная - гласная) если не открыть такой вариант в словаре(но зачем это делать Sad );
под-дать - перенесет (буква слева = букве справа);
по-ддать - не перенесет (с одной стороны две одинаковые буквы);
Я похоже неясно выразился (или я чего-нибудь не понимаю :) ).
Если внести словарь приставок, то у программы будут проблемы. Например:
Слово постой программа переведёт как по-стой. Всё правильно.
Слово постом (от слова пост (чем? постом)) программа переведёт как по-стом. Неправильно.
Если не вносить словаря, то у программы всё рано будут проблемы:
Слово постой программа переведёт как пос-той.
Andrey:5.4 - если (позиция переноса == 2) и (первые 3 буквы == "пре" или "при" или "про")
5.4.1 если (буква 3 != "д") - перейти в начало цикла
5.4.2 если (буква 3 != "й") - перейти в начало цикла
Andrey:6.5 - если (позиция переноса == 2) и (первые 3 буквы == "пре" или "про") и (буква 3 == "д")
Почему третья буква == "д"?
_____
_/ Дима )
`O------O'

Автор темы
Andrey
дьяк
дьяк
Сообщений в теме: 27
Всего сообщений: 34
Зарегистрирован: 09.09.2007

Сообщение Andrey » 04 окт 2007, 20:04

Дима:Я похоже неясно выразился (или я чего-нибудь не понимаю :) ).
Если внести словарь приставок, то у программы будут проблемы. Например:
Слово постой программа переведёт как по-стой. Всё правильно.
Слово постом (от слова пост (чем? постом)) программа переведёт как по-стом. Неправильно.
Если не вносить словаря, то у программы всё рано будут проблемы:
Слово постой программа переведёт как пос-той.
Разрешенные варианты (уже сейчас):
по-стой, пос-той;
по-стом, пос-том (почему "пос-том" не правильно?)
Дима: Почему третья буква == "д"?
Повторяюсь:
Количество считается обычно, как все привыкли: 1-2-3-4- и т. д.
Позиции считаются с нуля: 0-1-2-3- и т. д.
Позиция 3 - это буква следующая за "при" (или любой другой конструкцией из 3-х букв).

Извините, но то, что я выкладываю на форуме как "Алгоритм" - оно - же у меня в комментариях программы и если буду переводить такие места для удобочтения, то обязательно напутаю где нибудь.
Английский без зубрежки http://easy-study-english.blogspot.com/p/blog-page.html

Аватара пользователя
Дима
поэт-прозаик
поэт-прозаик
Сообщений в теме: 7
Всего сообщений: 235
Зарегистрирован: 22.08.2007
Откуда: Финляндия, Espoo
Контактная информация:

Сообщение Дима » 04 окт 2007, 20:14

Andrey:Повторяюсь:
Количество считается обычно, как все привыкли: 1-2-3-4- и т. д.
Позиции считаются с нуля: 0-1-2-3- и т. д.
Позиция 3 - это буква следующая за "при" (или любой другой конструкцией из 3-х букв).
Спасибо!
Andrey:Разрешенные варианты (уже сейчас):
по-стой, пос-той;
по-стом, пос-том (почему "пос-том" не правильно?)
Пос-том правильно, по моему пос-той неправильно:
Лев:Насколько мне помнится, существует запрет при переносе отрывать первую букву от корня слова. Но как это реализовать программно - ума не приложу, если составлять словарь, то он будет громадный, а найти правило - сомневаюсь, что это возможно. Может быть, пойти от обратного и анализировать приставки, считая, что корень слова будет сразу после них?
_____
_/ Дима )
`O------O'

Автор темы
Andrey
дьяк
дьяк
Сообщений в теме: 27
Всего сообщений: 34
Зарегистрирован: 09.09.2007

Сообщение Andrey » 04 окт 2007, 20:22

Может пос-той и не правильно, но подавляющее большинство людей этого никогда не скажут.

Вот например вы, представьте как будете кричать кому нибудь:
пос-тооооой. Правильно?
Английский без зубрежки http://easy-study-english.blogspot.com/p/blog-page.html

Аватара пользователя
Дима
поэт-прозаик
поэт-прозаик
Сообщений в теме: 7
Всего сообщений: 235
Зарегистрирован: 22.08.2007
Откуда: Финляндия, Espoo
Контактная информация:

Сообщение Дима » 05 окт 2007, 09:13

Andrey:Вот например вы, представьте как будете кричать кому нибудь:
пос-тооооой. Правильно?
Ну да, препираться не буду :D Если цель не сделать программу идеальной, а просто сделать программу, которая будет хоть как-то работать, то это вполне нормально. Некоторые программы переводят вообще как попало. 8-)
_____
_/ Дима )
`O------O'

Автор темы
Andrey
дьяк
дьяк
Сообщений в теме: 27
Всего сообщений: 34
Зарегистрирован: 09.09.2007

Сообщение Andrey » 05 окт 2007, 18:09

Не совсем так, к идеалу конечно надо стремиться, просто я не знаю, что это за правило.

Я в самом начале отталкивался от правил, например изложенных тут: http://gllagoll.narod.ru/perenos.html

Но не только, нашел еще 4 - 5 аналогичных ресурсов по переносам, везде все одно и то - же.

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

Добавлено спустя 6 минут 9 секунд:
Дима: Некоторые программы переводят вообще как попало. 8-)
Интересно, что за программы?

"Переводят" это описка? Наверное, переносят?
Английский без зубрежки http://easy-study-english.blogspot.com/p/blog-page.html

Аватара пользователя
Дима
поэт-прозаик
поэт-прозаик
Сообщений в теме: 7
Всего сообщений: 235
Зарегистрирован: 22.08.2007
Откуда: Финляндия, Espoo
Контактная информация:

Сообщение Дима » 05 окт 2007, 18:13

Дима:Я похоже неясно выразился (или я чего-нибудь не понимаю Smile ).
Если внести словарь приставок, то у программы будут проблемы. Например:
Слово постой программа переведёт как по-стой. Всё правильно.
Слово постом (от слова пост (чем? постом)) программа переведёт как по-стом. Неправильно.
Если не вносить словаря, то у программы всё рано будут проблемы:
Слово постой программа переведёт как пос-той.
Дима:Пос-том правильно, по моему пос-той неправильно:
Я только что прочитал всё что я понаписал и понял, как я запутался :cry: :lol: :lol: :lol:
_____
_/ Дима )
`O------O'

Гость

Сообщение Гость » 07 окт 2007, 23:43

Andrey:Поможете со словарем приставок?
Посмотрите вот это:

Prefix0$ = "4анти4безо3без3бес4возь3воз3вос2во3все2вы4долг4долж2до2за" _
+ "2из2ис4кино4наду3наи3над2на4недо2не2ни4обез4обес" _
+ "3обо3объ2об3ото2от4пред4подо4подъ3под4полу4поль3пол2по" _
+ "3пре4пере3при3про3раз3рас2со3экс6мульти"

Сейчас вставил в макрос для Ворда (есть идейка для проверки ритмичности стихов)

Есть так же работающая программа на диалекте СИ для редактора Multi-Edit более чем 10-летней давности. С её помощью готовил книги для печати в равноширинном шрифте на знакосинтезирующих принтерах. ;)

Если интересно- illustr@narod.ru

Tom d`Cat

popkov

Сообщение popkov » 11 дек 2007, 15:29

Andrey:Я в самом начале отталкивался от правил, например изложенных тут: http://gllagoll.narod.ru/perenos.html

Но не только, нашел еще 4 - 5 аналогичных ресурсов по переносам, везде все одно и то - же.
Лучше, думаю, руководствоваться книгой книге "Правила русской орфографии и пунктуации" (М., 1956). Там есть глава по переносам, где всё хорошо расписано. Стоит обратить внимание и на рекомендации по благозвучию.

popkov

Сообщение popkov » 11 дек 2007, 17:06

Andrey:Может пос-той и не правильно, но подавляющее большинство людей этого никогда не скажут.
А я скажу! Это грубое нарушение правил переноса слов в русском языке! Первую букву корня нельзя отрывать от него самого!
Andrey:Вот например вы, представьте как будете кричать кому нибудь:
пос-тооооой. Правильно?
Не могу представить. Если сделать паузу после "пос", то услышано будет только "тооой", и человек не поймёт слово!
Andrey:Не совсем так, к идеалу конечно надо стремиться, просто я не знаю, что это за правило.
Это правило много где описано. Я привёл выше ссылку на исчерпывающее руководство, но такие простые правила легко находятся Google по запросу "Правила расстановки переносов в русском языке" или аналогичному.

Pavel__Master
начинающий литератор
начинающий литератор
Сообщений в теме: 8
Всего сообщений: 60
Зарегистрирован: 03.12.2007
Образование: студент
Профессия: редактор
Откуда: Москва
Возраст: 28
Контактная информация:

Сообщение Pavel__Master » 12 дек 2007, 20:49

Да что городить огород? Перенос слов осуществляется по слогам! Поэтому давайте найдем правила деления слов на слоги, уверен, что это найти гораздо легче, чем правила переноса.

Добавлено спустя 1 минуту:

Вот правила слогораздела ( нашел в своих конспектах ):

Слог строится по законам восходящей звучности ( от наименее звучного звука к наиболее звучному - слоговому ). Данный закон предопрееляет правила слогоделения.

1. неконечные слоги стремятся к открытости; открытых слогов большинство.
2. сочетание шумных между гласными относится к следующему слогу.
3. сочетание шумных с сонорными так же отходит к следующему слогу.
4. сочетание сонорных между гласными также относится к следующему слогу.
5.при сочетании сонорных с шумными слогораздел проходит между ними.
6. при сочетании "и неслогового" с последующим шумным или сонорным звуком, слогораздел проходит между ними.

Добавлено спустя 8 минут 45 секунд:

Надеюсь, это кому-нибудь пригодится...
Впрочем, программа работает не плохо...
http://litistina.ru/
Общество "Фортуна" - просвещение, творчество, захват мира :)
А если серьезно - библиотека молодых авторов, рецензирование, публичные выступления, форум.

Здравствуйте!
Re: Правила переноса слов

Сообщение Здравствуйте! » 21 дек 2007, 00:50

Я скачал программу, но инструкция оказалась недостаточной.
Выскакивает ошибка: Приложению не удалось запуститься, поскольку MSVCP71.dll был не найден. Повторная установка приложения может исправить эту проблему.

Подскажите что делать? С наступающим!

Автор темы
Andrey
дьяк
дьяк
Сообщений в теме: 27
Всего сообщений: 34
Зарегистрирован: 09.09.2007
Re: Правила переноса слов

Сообщение Andrey » 28 янв 2008, 21:16

Давно не заглядывал.
Программа пока используется "как есть", цель её не литературная, а перенос названий документов и папок (на иконках), хотя старался делать по возможности лучше.

На досуге подробнее переварю новую информацию от вас.
Корни слов это хорошо, только вот тут, наверное, без словаря корней не обойтись.

По поводу не найденной библиотеки - не подскажу, поспрашиваю у наших спецов. Мой проект такой напрямую не использует, кажется это виндовая библиотека, наверное у вас стоит какая то программа, которая удалила или перезаписала данную библиотеку. Помнится были подобные проблемы с ПО после установки автокада.
Английский без зубрежки http://easy-study-english.blogspot.com/p/blog-page.html

Автор темы
Andrey
дьяк
дьяк
Сообщений в теме: 27
Всего сообщений: 34
Зарегистрирован: 09.09.2007
Re:

Сообщение Andrey » 28 янв 2008, 21:33

popkov:
Лучше, думаю, руководствоваться книгой книге "Правила русской орфографии и пунктуации" (М., 1956). Там есть глава по переносам, где всё хорошо расписано. Стоит обратить внимание и на рекомендации по благозвучию.
Где же вы раньше, как говориться, были.

Теперь буду править свои переносы (программу) если на работе напрягут, пока дел хватает.
Английский без зубрежки http://easy-study-english.blogspot.com/p/blog-page.html

Автор темы
Andrey
дьяк
дьяк
Сообщений в теме: 27
Всего сообщений: 34
Зарегистрирован: 09.09.2007
Re: Правила переноса слов

Сообщение Andrey » 29 янв 2008, 21:44

Ещё по поводу не находящейся библиотеки

http://www.mmoclub.ru/forums/index.php?showtopic=3764

(Достаточно прочитать первый и последний пост)
Английский без зубрежки http://easy-study-english.blogspot.com/p/blog-page.html

Автор темы
Andrey
дьяк
дьяк
Сообщений в теме: 27
Всего сообщений: 34
Зарегистрирован: 09.09.2007
Re: Правила переноса слов

Сообщение Andrey » 29 янв 2008, 21:54

Pavel__Master спасибо!
Ваши материалы выглядят (я ноль в лингвистике) довольно серьезно.

Но без выяснения нижеописанного их применить в программе невозможно. :arrow:

Разные типы звуков (?), которые вы называли научными терминами можно однозначно определить к. л. правилами отталкивающимися от букв или буквосочетаний?

Или вынести в какой - то (конечный по объему) словарь?

Если у вас есть, просьба оставить ссылку на материалы описывающие данные понятия.
Английский без зубрежки http://easy-study-english.blogspot.com/p/blog-page.html

Ответить Пред. темаСлед. тема
  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Правила переноса слов
    5 Ответы
    9256 Просмотры
    Последнее сообщение Марго
    18 сен 2013, 18:07
  • Правила переноса слов
    vadim707 » 21 сен 2008, 09:09 » в форуме Орфография
    5 Ответы
    2737 Просмотры
    Последнее сообщение Герман
    04 окт 2008, 08:48
  • Новые правила переноса
    15 Ответы
    14401 Просмотры
    Последнее сообщение slava1947
    30 ноя 2012, 18:52
  • Что за правила чередования согласных, кажется, в корне слов?
    Владимирр » 16 апр 2013, 19:04 » в форуме Морфология
    7 Ответы
    2383 Просмотры
    Последнее сообщение Владимирр
    17 апр 2013, 09:04
  • Разделить для переноса слово "конечно"
    mtk81 » 24 сен 2012, 10:10 » в форуме 4 класс
    5 Ответы
    3266 Просмотры
    Последнее сообщение Марго
    24 сен 2012, 11:48