Alikberov,
:) :thanks: |
Alikberov,
А как понять интерактивной, то есть это можно выбирать или что значит? |
Цитата:
В этом режиме хорошо просматриваются все грехи отработки моего алгоритма. (Иначе всё это бессмысленно.) Для качественного улучшения переносов тaм есть четыре поля - «Правило №1»…«Правило №4 . Они интерактивные: Корректируете их, нажимаете «Enter», они вступают в силу и изучаете весь текст на предмет переносов. Если регулярное выражение не прошло валидацию, поле покраснеет - просто вводите корректное регулярное выражение… |
Alikberov,
Я в это не досточно образован мне просто понять нужно вот ваш последний скрипт он содержит разные правила а что из нельзя просто включить по умолчанию все и пользоваться ну хоть чем то. |
Цитата:
Эти четыре правила - регулярные выражения, на которых и держится вся суть функции. Правила взяты буквально с потолка, чтобы скрипт хоть как-то работал. А правил «по умолчанию» в сети не найдёшь. Человеческий язык, сам по себе, субстанция сложная и стандартными машинными механизмамии парсится со скрипом… P.S.: Однако, всё не так плохо, если использовать мой скрипт для колонок нормальной ширины.:yes: Изъяны видны, в основном, если форсировать перенос на каждом слоге… |
Alikberov,
Я запутался я просто хочу спросить. Если я скопирую ваш скрипт но вот без этого Правило №1<input type=text style=width:99% maxlength=128 onchange='Separatory(); Separatism()' value='^[бвгджзклмнпрстфхцчшщ]+[ъь]?[аеёиоуыьэюя](й|[бвгджзклмнпрстфхцчшщ]+[ъь]?$)'><br> Правило №2<input type=text style=width:99% maxlength=128 onchange='Separatory(); Separatism()' value='^[бвгджзклмнпрстфхцчшщ]+[аеёиоуыьэюя]?'><br> Правило №3<input type=text style=width:99% maxlength=128 onchange='Separatory(); Separatism()' value='^([бвгджзклмнпрстфхцчшщь]+)[бвгджзклмнпрстфхцчшщ][ъь]?[аеёиоуыэюя]?'><br> Правило №4<input type=text style=width:99% maxlength=128 onchange='Separatory(); Separatism()' value='^[аеёиоуыэюя][бвгджзклмнпрстфхцчшщь]*'><br> <input type=checkbox onchange='this.nextSibling.textContent = this.checked ? "Активный" : "Мягкий"; Separatism()'><span></span> он будет работать в полную меру? То есть в моей голове есть какой скрипт который работает в 4 разных вариантов и что бы работал один нужно нажат на 1 правило 2 на втрое правило и т.д. А мне вот просто хочется взять скрипт и пользоваться в полную меру. |
Правилa не работают сами по отдельности:
while(part.length) { if(slab = part.match(Regulars[0])) { // Правило №1 seps.push(slab[0]); part = part.substr(slab[0].length); } else if(slab = part.match(Regulars[1])) { // Правила №2 и №3 if(next = part.substr(slab[0].length).match(Regulars[2])) slab[0] += next[1]; seps.push(slab[0]); part = part.substr(slab[0].length); } else if(slab = part.match(Regulars[3])) { // Правило №4 if(slab[0].length > 1 && part.charAt(slab[0].length).match(/[аеёиоуыэюя]/i)) slab[0] = slab[0].substr(0, slab[0].length - 1); seps.push(slab[0]); part = part.substr(slab[0].length); } else { seps.push(part); part = ""; } }Види е здесь каскад условий, где все правила используются в комплексе? Их я вынес из тела программы в INPUT-поля, чтобы можно было отладить и, добившись реально гораздо лучшего результата, вставить назад в тело алгоритма. (Однако, эксперименты показали, что первоначальный исходный свод правил, хоть не идеальный, но редактированием мало что улучшает.) Сам алгоритм, как можно видеть, практически никакой: Там просто идёт срабатывание одного из трёх правил (№1, №2 и №4) и одного подправила (№3 - №2.1).;) Есть ещё подправило №4.1, но там одни гласные и его редактировать бессмысленно. Сравните тела условий правил №2 и №4: Они практически одинаковы. То есть, Вы сами можете удлинить цепь условий и добавить ещё больше правил. (Я обошёлся именно тремя звеньями, так как это, ИМХО, оптимально в данной логике) P.S.: Как выше я говорил, не плохо было бы добавить разбор суффиксов и окончаний (как и приставок, их ограниченное множество и в несколько регулярок вместить можно) перед данным циклом. (Но в результате, лично я, сомневаюсь и не стал усложнять свою функцию.) |
Сергей Ракипов,
не заморачивайтесь))) есть вариант рабочий, им и пользуйтесь, Alikberov, думаю если захочет и будут значительные изменения, выкатит новый готовый вариант, а пока #40 это для тех, кто съел собаку на морфологии, для поиска и проверки RegExp. |
рони,
Так более понятно, успокоили |
Часовой пояс GMT +3, время: 09:50. |