Форум » KooBAudio 2.0 » Поиск омографов. » Ответить

Поиск омографов.

KOMODOR: В какой-то момент надоедают фразы, типа "Вы все - вонючие трусЫ!" И появляется желание вручную разобраться со всеми омографами. Чего для этого надо: Словарь омографов, как в mp3book и регулярное выражение для поиска новых слов, чтобы искало по принципу "слово из списка+следующее слово". Так же нужны дополнитльные аргументы, типа: -Если после слова из списка стоит точка, то брать слово, которое стоит перед словом из списка. -Если после слова из списка стоит предлог/союз/частица, то искать по принципу "слово из списка+предлог+следующее слово". Проблема в том, что одни омографы продуктивнее заносить в словарь по принципу "слово из списка+следующее", а другие - "слово+слово из списка". И как сделать автоматически правильный выбор - большой вопрос... Возможные варианты решения: Если стояшее перед омографом слово имеет окончания "ий, ие и т.д", то брать "слово+слово из списка", а если после омографа стоит предлог, то брать "слово из списка+предлог+следующее слово. Собственно, это иллюстрация примера омографов с сайта mp3book2005 [quote]позволит избежать казусных ситуаций типа "рыцарский замо'к" или "ключ в за'мке". [/quote]

Ответов - 17

Cminant: Как мне кажется, в словарях с омографами проще всего справляются рег. выражения вида: [pre2] #(?i)(?<=(откры|отпер|запер|взлом|висяч|ржав|амбарн|хитроумн|хлипк|щелкнул|ключ|двер).{0,30})замок=замо<к #(?i)замок(?=.{0,30}(откры|отпер|запер|взлом|висяч|ржав|амбарн|хитроумн|хлипк|щелкнул|ключ|двер))=замо<к [/pre2] Т.е. связанные по смыслу с тем или иным вариантом ударения слова или даже части слов ищутся в пределах 30* символов от самого омографа. Первое правило - 30 символов перед омографом, второе - после. Довольно грубое решение, зато не нужно охватывать все варианты словосочетаний с предлогами, знаками препинания и т.д. Я сам пока что не занимался вплотную составлением подобных словарей, но с небольшим количеством подобных правил серьезных ошибок и ложных срабатываний правил пока не замечал... Можно еще доработать шаблоны, чтобы просматривались только слова в том же предложении, в общем с рег. выражениями простор для фантазии немаленький. Насчет "словаря омографов" подумаю, каким образом его можно прикрутить к имеющемуся словарному анализу, или же сделать что-то еще...

MoppoH: подскажите как этими рег. выражениями пользоваться, а то не понятно.

Cminant: MoppoH хм, тут в двух словах не объяснить к сожалению... Регулярные выражения позволяют находить в тексте фрагменты, соответствующие заданным условиям. В KooBAudio они используются для автозамены в так называемых словарях ударений. Общие сведения о рег выражениях можно найти на википедии Ну а если углубиться, так по ним книгу написать можно (собственно уже написали, да не одну. гугл в помощь как говорится) Например разберем шаблон правила из сообщения выше: [pre2](?i)(?<=(откры|отпер|запер|взлом|висяч|ржав|амбарн|хитроумн|хлипк|щелкнул|ключ|двер).{0,30})замок[/pre2] (?i) - включает ражим игнорирования регистра (заглавные бкувы равны строчным) (?<= - задает дополнительный шаблон, которому должен соответствовать текст перед искомым фрагментом (откры|отпер|запер|взлом|висяч|ржав|амбарн|хитроумн|хлипк|щелкнул|ключ|двер) - скобки используются для группирования, символ | действует как ИЛИ, т.е. достаточно, чтобы совпало хотя бы одно слово из перечисленных .{0,30} - точка обозначает любой символ, цифры в фигурных скобках - количество повторений предыдущего символа. Т.е. после найденного слова может быть от 0 до 30 любых символов. замок - основной шаблон поиска Так например во фрагменте: [pre2]Боб провернул ключ два раза. Замок со скрипом открылся. [/pre2] Будет определен именно замок а не замок, т.к. есть одно из перечисленных слов ключ, затем 11 "любых символов" два раза. и основной шаблон поиска Замок


MoppoH: сидел до потери пульса разбирался в этих выражения и все получилось нашел где в программе это надо писать создал новый словарь добавил пару выражений и о чудо Николай наконец то стал произносить слова нормально, спасибо Вам за такую прекрасную идею, буду составлять словарь пы.сы никак не пойму почему он некоторые омографы не хочет произносить как стоит ударение? и еще в конце некоторых рег выражений надо ставить \b а то он похожие слова заменяет.

MoppoH: Подскажите, а можно в рег выражениях сделать чтобы он искал слова только до точки или запятой?

Cminant: Подскажите, а можно в рег выражениях сделать чтобы он искал слова только до точки или запятой? да, вместо, например .{0,30} нужно использовать [^\.,]{0,30} Как-то так... (?i)замок(?=[^\.,]{0,30}(откры|отпер|запер|взлом|висяч|ржав|амбарн|хитроумн|хлипк|щелкнул|ключ|двер)) (?i)(?<=(откры|отпер|запер|взлом|висяч|ржав|амбарн|хитроумн|хлипк|щелкнул|ключ|двер)[^\.,]{0,30})замок

MoppoH: спасибо, попробовал все работает

KOMODOR: MoppoH , м, э... Не сочти за тролление, но ты и правда читаешь такие примитивные книжки, где правило, типа (?i)(?<=(откры|отпер|запер|взлом|висяч|ржав|амбарн|хитроумн|хлипк|щелкнул|ключ|двер)[^\.,]{0,30})замок может сработать?

MoppoH: я только такие и читаю когда воры забрались в замок барона отперли пару замков, ключей правда от этих замков у них не было, но и барон в своем замке не всегда знал какие замки какими ключами открываются.

Alexey: Доброе время суток и с Новым годом! просьба к автору программы; если посчитаете это уместным, реализуйте, пожалуйста, функцию поиска и редактирования омографов, как, например, это сделано в Балаболке. и по ходу, тоже если не сложно, в редакторе словарей - кнопочку скрытия слов не на русском языке. Заранее благодарю!

MoppoH: по своему опыту знаю что в тексте часов на 10 проверить все омографы в ручную очень уж затруднительно, хотя раньше так и делал, например в book2005 можно сделать так что он в тексте их выделит красным цветом, а вот кнопочку для скрытия слов на не русском языке полезная вещь.

Cminant: Мне лично тоже способ с ручной расстановкой ударений в омографах не особо нравится, но и идей получше пока особо нет (ну кроме вышеописанной с рег. выражениями)... Так что подумаю еще пока... По поводу скрытия слов на не русском языке - для этого есть окошко фильтра. Рег. выражение [^A-z] как раз сделает то, что Вам требуется. Делать отдельную кнопку каждой такой мелочи это как-то через чур, лучше уж тогда выпадающий список рядом с полем фильтра с различными полезными шаблонами-заготовками...

MoppoH: подскажите, а как можно найти все новые слова, кроме слов с буквой ё, какое нужно рег выражение

Cminant: MoppoH Либо выбрать правило выборки "Все слова" и в строке доп. фильтра ввести шаблон [^ёЁ], либо добавить новое правило выборки \b[А-я]+?\b (из за особенностей обработчика рег выражений буква ё не входит в диапазон А-я.)

MoppoH: Либо выбрать правило выборки "Все слова" и в строке доп. фильтра ввести шаблон [^ёЁ], что то не работает все равно слова с ё есть в списке, может я что то не то делаю?

Cminant: Да, точно, поправочка: ^[^ёЁ]+$ должно быть в строке фильтра...

MoppoH: Спасибо огромное, а то уже достали слова с ё, ты их добавляешь, а их все меньше не становиться.



полная версия страницы