В мире компьютеров ⇒ Правила переноса слов
Модератор: Роксана
-
- заслуженный писатель форума
- Сообщений в теме: 1
- Всего сообщений: 481
- Зарегистрирован: 06.10.2006
- Откуда: Санкт-Петербург
- Возраст: 72
Насколько мне помнится, существует запрет при переносе отрывать первую букву от корня слова. Но как это реализовать программно - ума не приложу, если составлять словарь, то он будет громадный, а найти правило - сомневаюсь, что это возможно. Может быть, пойти от обратного и анализировать приставки, считая, что корень слова будет сразу после них?
Errare humanum est!
-
- заслуженный писатель форума
- Сообщений в теме: 2
- Всего сообщений: 454
- Зарегистрирован: 21.11.2005
Поясняю:
по-давать - перенесет (гласная - согласная);
под-авать - не перенесет (нет правила согласная - гласная) если не открыть такой вариант в словаре(но зачем это делать
);
под-дать - перенесет (буква слева = букве справа);
по-ддать - не перенесет (с одной стороны две одинаковые буквы);
Выкладываю последний алгоритм, словарь выложил раньше, пока ничего в словарь не добавлял, при прочтении последней 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)
по-давать - перенесет (гласная - согласная);
под-авать - не перенесет (нет правила согласная - гласная) если не открыть такой вариант в словаре(но зачем это делать

под-дать - перенесет (буква слева = букве справа);
по-ддать - не перенесет (с одной стороны две одинаковые буквы);
Выкладываю последний алгоритм, словарь выложил раньше, пока ничего в словарь не добавлял, при прочтении последней 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 КБ) 509 скачиваний
-
Новая папка.part1.rar
- Программа ч.1
- (976.56 КБ) 484 скачивания
Английский без зубрежки http://easy-study-english.blogspot.com/p/blog-page.html
-
- поэт-прозаик
- Сообщений в теме: 7
- Всего сообщений: 235
- Зарегистрирован: 22.08.2007
- Откуда: Финляндия, Espoo
- Контактная информация:
Я похоже неясно выразился (или я чего-нибудь не понимаюAndrey:Поясняю:
по-давать - перенесет (гласная - согласная);
под-авать - не перенесет (нет правила согласная - гласная) если не открыть такой вариант в словаре(но зачем это делать Sad );
под-дать - перенесет (буква слева = букве справа);
по-ддать - не перенесет (с одной стороны две одинаковые буквы);

Если внести словарь приставок, то у программы будут проблемы. Например:
Слово постой программа переведёт как по-стой. Всё правильно.
Слово постом (от слова пост (чем? постом)) программа переведёт как по-стом. Неправильно.
Если не вносить словаря, то у программы всё рано будут проблемы:
Слово постой программа переведёт как пос-той.
Andrey:5.4 - если (позиция переноса == 2) и (первые 3 буквы == "пре" или "при" или "про")
5.4.1 если (буква 3 != "д") - перейти в начало цикла
5.4.2 если (буква 3 != "й") - перейти в начало цикла
Почему третья буква == "д"?Andrey:6.5 - если (позиция переноса == 2) и (первые 3 буквы == "пре" или "про") и (буква 3 == "д")
_____
_/ Дима )
`O------O'
_/ Дима )
`O------O'
Разрешенные варианты (уже сейчас):Дима:Я похоже неясно выразился (или я чего-нибудь не понимаю).
Если внести словарь приставок, то у программы будут проблемы. Например:
Слово постой программа переведёт как по-стой. Всё правильно.
Слово постом (от слова пост (чем? постом)) программа переведёт как по-стом. Неправильно.
Если не вносить словаря, то у программы всё рано будут проблемы:
Слово постой программа переведёт как пос-той.
по-стой, пос-той;
по-стом, пос-том (почему "пос-том" не правильно?)
Повторяюсь:Дима: Почему третья буква == "д"?
Количество считается обычно, как все привыкли: 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
- Контактная информация:
Спасибо!Andrey:Повторяюсь:
Количество считается обычно, как все привыкли: 1-2-3-4- и т. д.
Позиции считаются с нуля: 0-1-2-3- и т. д.
Позиция 3 - это буква следующая за "при" (или любой другой конструкцией из 3-х букв).
Пос-том правильно, по моему пос-той неправильно:Andrey:Разрешенные варианты (уже сейчас):
по-стой, пос-той;
по-стом, пос-том (почему "пос-том" не правильно?)
Лев:Насколько мне помнится, существует запрет при переносе отрывать первую букву от корня слова. Но как это реализовать программно - ума не приложу, если составлять словарь, то он будет громадный, а найти правило - сомневаюсь, что это возможно. Может быть, пойти от обратного и анализировать приставки, считая, что корень слова будет сразу после них?
_____
_/ Дима )
`O------O'
_/ Дима )
`O------O'
-
- поэт-прозаик
- Сообщений в теме: 7
- Всего сообщений: 235
- Зарегистрирован: 22.08.2007
- Откуда: Финляндия, Espoo
- Контактная информация:
Ну да, препираться не будуAndrey:Вот например вы, представьте как будете кричать кому нибудь:
пос-тооооой. Правильно?


_____
_/ Дима )
`O------O'
_/ Дима )
`O------O'
Не совсем так, к идеалу конечно надо стремиться, просто я не знаю, что это за правило.
Я в самом начале отталкивался от правил, например изложенных тут: http://gllagoll.narod.ru/perenos.html
Но не только, нашел еще 4 - 5 аналогичных ресурсов по переносам, везде все одно и то - же.
Обратите внимание, там есть правило сформулированное, что надо переносить по морфемам (не помню, что это, только смутно догадываюсь), в других местах примерно такое-же и везде это правило носит рекомендательный характер.
Добавлено спустя 6 минут 9 секунд:
"Переводят" это описка? Наверное, переносят?
Я в самом начале отталкивался от правил, например изложенных тут: http://gllagoll.narod.ru/perenos.html
Но не только, нашел еще 4 - 5 аналогичных ресурсов по переносам, везде все одно и то - же.
Обратите внимание, там есть правило сформулированное, что надо переносить по морфемам (не помню, что это, только смутно догадываюсь), в других местах примерно такое-же и везде это правило носит рекомендательный характер.
Добавлено спустя 6 минут 9 секунд:
Интересно, что за программы?Дима: Некоторые программы переводят вообще как попало.
"Переводят" это описка? Наверное, переносят?
Английский без зубрежки http://easy-study-english.blogspot.com/p/blog-page.html
-
- поэт-прозаик
- Сообщений в теме: 7
- Всего сообщений: 235
- Зарегистрирован: 22.08.2007
- Откуда: Финляндия, Espoo
- Контактная информация:
Дима:Я похоже неясно выразился (или я чего-нибудь не понимаю Smile ).
Если внести словарь приставок, то у программы будут проблемы. Например:
Слово постой программа переведёт как по-стой. Всё правильно.
Слово постом (от слова пост (чем? постом)) программа переведёт как по-стом. Неправильно.
Если не вносить словаря, то у программы всё рано будут проблемы:
Слово постой программа переведёт как пос-той.
Я только что прочитал всё что я понаписал и понял, как я запуталсяДима:Пос-том правильно, по моему пос-той неправильно:




_____
_/ Дима )
`O------O'
_/ Дима )
`O------O'
Посмотрите вот это: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
Лучше, думаю, руководствоваться книгой книге "Правила русской орфографии и пунктуации" (М., 1956). Там есть глава по переносам, где всё хорошо расписано. Стоит обратить внимание и на рекомендации по благозвучию.Andrey:Я в самом начале отталкивался от правил, например изложенных тут: http://gllagoll.narod.ru/perenos.html
Но не только, нашел еще 4 - 5 аналогичных ресурсов по переносам, везде все одно и то - же.
А я скажу! Это грубое нарушение правил переноса слов в русском языке! Первую букву корня нельзя отрывать от него самого!Andrey:Может пос-той и не правильно, но подавляющее большинство людей этого никогда не скажут.
Не могу представить. Если сделать паузу после "пос", то услышано будет только "тооой", и человек не поймёт слово!Andrey:Вот например вы, представьте как будете кричать кому нибудь:
пос-тооооой. Правильно?
Это правило много где описано. Я привёл выше ссылку на исчерпывающее руководство, но такие простые правила легко находятся Google по запросу "Правила расстановки переносов в русском языке" или аналогичному.Andrey:Не совсем так, к идеалу конечно надо стремиться, просто я не знаю, что это за правило.
-
- начинающий литератор
- Сообщений в теме: 8
- Всего сообщений: 60
- Зарегистрирован: 03.12.2007
- Образование: студент
- Профессия: редактор
- Откуда: Москва
- Возраст: 30
- Контактная информация:
Да что городить огород? Перенос слов осуществляется по слогам! Поэтому давайте найдем правила деления слов на слоги, уверен, что это найти гораздо легче, чем правила переноса.
Добавлено спустя 1 минуту:
Вот правила слогораздела ( нашел в своих конспектах ):
Слог строится по законам восходящей звучности ( от наименее звучного звука к наиболее звучному - слоговому ). Данный закон предопрееляет правила слогоделения.
1. неконечные слоги стремятся к открытости; открытых слогов большинство.
2. сочетание шумных между гласными относится к следующему слогу.
3. сочетание шумных с сонорными так же отходит к следующему слогу.
4. сочетание сонорных между гласными также относится к следующему слогу.
5.при сочетании сонорных с шумными слогораздел проходит между ними.
6. при сочетании "и неслогового" с последующим шумным или сонорным звуком, слогораздел проходит между ними.
Добавлено спустя 8 минут 45 секунд:
Надеюсь, это кому-нибудь пригодится...
Впрочем, программа работает не плохо...
Добавлено спустя 1 минуту:
Вот правила слогораздела ( нашел в своих конспектах ):
Слог строится по законам восходящей звучности ( от наименее звучного звука к наиболее звучному - слоговому ). Данный закон предопрееляет правила слогоделения.
1. неконечные слоги стремятся к открытости; открытых слогов большинство.
2. сочетание шумных между гласными относится к следующему слогу.
3. сочетание шумных с сонорными так же отходит к следующему слогу.
4. сочетание сонорных между гласными также относится к следующему слогу.
5.при сочетании сонорных с шумными слогораздел проходит между ними.
6. при сочетании "и неслогового" с последующим шумным или сонорным звуком, слогораздел проходит между ними.
Добавлено спустя 8 минут 45 секунд:
Надеюсь, это кому-нибудь пригодится...
Впрочем, программа работает не плохо...
http://litistina.ru/
Общество "Фортуна" - просвещение, творчество, захват мира :)
А если серьезно - библиотека молодых авторов, рецензирование, публичные выступления, форум.
Общество "Фортуна" - просвещение, творчество, захват мира :)
А если серьезно - библиотека молодых авторов, рецензирование, публичные выступления, форум.
Re: Правила переноса слов
Я скачал программу, но инструкция оказалась недостаточной.
Выскакивает ошибка: Приложению не удалось запуститься, поскольку MSVCP71.dll был не найден. Повторная установка приложения может исправить эту проблему.
Подскажите что делать? С наступающим!
Выскакивает ошибка: Приложению не удалось запуститься, поскольку MSVCP71.dll был не найден. Повторная установка приложения может исправить эту проблему.
Подскажите что делать? С наступающим!
Re: Правила переноса слов
Давно не заглядывал.
Программа пока используется "как есть", цель её не литературная, а перенос названий документов и папок (на иконках), хотя старался делать по возможности лучше.
На досуге подробнее переварю новую информацию от вас.
Корни слов это хорошо, только вот тут, наверное, без словаря корней не обойтись.
По поводу не найденной библиотеки - не подскажу, поспрашиваю у наших спецов. Мой проект такой напрямую не использует, кажется это виндовая библиотека, наверное у вас стоит какая то программа, которая удалила или перезаписала данную библиотеку. Помнится были подобные проблемы с ПО после установки автокада.
Программа пока используется "как есть", цель её не литературная, а перенос названий документов и папок (на иконках), хотя старался делать по возможности лучше.
На досуге подробнее переварю новую информацию от вас.
Корни слов это хорошо, только вот тут, наверное, без словаря корней не обойтись.
По поводу не найденной библиотеки - не подскажу, поспрашиваю у наших спецов. Мой проект такой напрямую не использует, кажется это виндовая библиотека, наверное у вас стоит какая то программа, которая удалила или перезаписала данную библиотеку. Помнится были подобные проблемы с ПО после установки автокада.
Английский без зубрежки http://easy-study-english.blogspot.com/p/blog-page.html
Re:
Теперь буду править свои переносы (программу) если на работе напрягут, пока дел хватает.
Где же вы раньше, как говориться, были.popkov:
Лучше, думаю, руководствоваться книгой книге "Правила русской орфографии и пунктуации" (М., 1956). Там есть глава по переносам, где всё хорошо расписано. Стоит обратить внимание и на рекомендации по благозвучию.
Теперь буду править свои переносы (программу) если на работе напрягут, пока дел хватает.
Английский без зубрежки http://easy-study-english.blogspot.com/p/blog-page.html
Re: Правила переноса слов
Ещё по поводу не находящейся библиотеки
http://www.mmoclub.ru/forums/index.php?showtopic=3764
(Достаточно прочитать первый и последний пост)
http://www.mmoclub.ru/forums/index.php?showtopic=3764
(Достаточно прочитать первый и последний пост)
Английский без зубрежки http://easy-study-english.blogspot.com/p/blog-page.html
Re: Правила переноса слов
Pavel__Master спасибо!
Ваши материалы выглядят (я ноль в лингвистике) довольно серьезно.
Но без выяснения нижеописанного их применить в программе невозможно.
Разные типы звуков (?), которые вы называли научными терминами можно однозначно определить к. л. правилами отталкивающимися от букв или буквосочетаний?
Или вынести в какой - то (конечный по объему) словарь?
Если у вас есть, просьба оставить ссылку на материалы описывающие данные понятия.
Ваши материалы выглядят (я ноль в лингвистике) довольно серьезно.
Но без выяснения нижеописанного их применить в программе невозможно.

Разные типы звуков (?), которые вы называли научными терминами можно однозначно определить к. л. правилами отталкивающимися от букв или буквосочетаний?
Или вынести в какой - то (конечный по объему) словарь?
Если у вас есть, просьба оставить ссылку на материалы описывающие данные понятия.
Английский без зубрежки http://easy-study-english.blogspot.com/p/blog-page.html
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение
-
- 5 Ответы
- 2877 Просмотры
-
Последнее сообщение Герман
04 окт 2008, 08:48
-
-
Правила переноса слов
DmitriyT » 18 сен 2013, 09:53 » в форуме Вопросы преподавания русского языка и литературы - 5 Ответы
- 10114 Просмотры
-
Последнее сообщение Марго
18 сен 2013, 18:07
-
-
-
Новые правила переноса
Садекова Елена » 30 ноя 2012, 00:10 » в форуме Другие темы о русской словесности и культуре - 15 Ответы
- 16208 Просмотры
-
Последнее сообщение slava1947
30 ноя 2012, 18:52
-
-
-
Что за правила чередования согласных, кажется, в корне слов?
Владимирр » 16 апр 2013, 19:04 » в форуме Морфология - 7 Ответы
- 2667 Просмотры
-
Последнее сообщение Владимирр
17 апр 2013, 09:04
-
-
- 5 Ответы
- 3505 Просмотры
-
Последнее сообщение Марго
24 сен 2012, 11:48