АвторСообщение





Пост N: 40
Зарегистрирован: 22.08.11
Рейтинг: 0
ссылка на сообщение  Отправлено: 15.01.12 13:21. Заголовок: Как найти однокоренные слова


Хочу отредактировать словарь, который достался от другой программы там много однокоренных слов, и вот хотел узнать есть ли какое нибудь рег выражение чтобы программа сама нашла слова где есть общий корень.

Спасибо: 0 
ПрофильЦитата Ответить
Ответов - 2 [только новые]


Разработчик




Пост N: 157
Зарегистрирован: 02.10.06
Откуда: РФ, Санкт-Петербург
Рейтинг: 0
ссылка на сообщение  Отправлено: 18.01.12 00:08. Заголовок: Нет, фильтр по рег.в..


Нет, фильтр по рег.выражениям здесь вряд-ли поможет...

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

Спасибо: 0 
ПрофильЦитата Ответить





Пост N: 32
Зарегистрирован: 29.03.13
Откуда: Санкт-Петербург
Рейтинг: 0
ссылка на сообщение  Отправлено: 18.07.15 23:09. Заголовок: Всем привет. Решил п..


Всем привет.
Решил проблему поиска однокоренных слов. Началось всё с того, что с сайта http_//mytts_forum2x2_ru скачал словари с ё-фикацией, ужасно раздутые от ужасающего количества однокоренных слов в самом невообразимом наклонении.
Для поиска дублирующих слов и выражений написал регулярку.
Редактирование словарей я произвожу вручную, поэтому при работе использую очень мощный редактор Notepad++. В данном редакторе возможно отсортировать слова и выражения в алфавитном порядке (о чем я писал теме "Вопрос: Посоветуйте, как выявить и удалить все дублирующие правила из набора разных словарей") так и так и выявить и удалить все дублирующие правила из словаря.
1. Для начала все выражения в словаре (кроме регулярных выражений) следует отсортировать по алфавиту - см. выше. Регулярки из словаря лучше вырезать и перенести в отдельный словарь. Так я сделал в словаре "слова со звездочкой" - вырезал все регулярки и оставшиеся выражения отсортировал по алфавиту.
2. Далее, вызываем команду поиск и замена (ctrl+H)
3. В строку поиск копируем правило:

(([А-ЯЁа-яё\-\$]{5,30})([аоуыэяёюие]{0,1}|[а-яё][аоуыэяёюие])[\*\=]{1,2}([А-ЯЁа-яё \<\-]{5,30})([аоуыэяёюие]{0,1}|[а-яё][аоуыэяёюие])\r\n)?(?(1)(\2([а-яё]{0,2})[\*\=]{1,2}\4([а-яё]{0,2})\r\n)+|\1)

4. В строку замена копируем правило замены

\2\*=\4\r\n

5. Нажимаем команду заменить.
После обработки списка будут выделены несколько однокоренных выражений. К примеру:
был список выражений типа:

посвечива*=посве<чива
посвечив*=посве<чив


Нажав кнопку "Заменить", получается выражение вида

посвечив*=посве<чив

То есть регулярка нашла общую часть выражения посвечив и обрезало всё выражение по нему.
Данная регулярка за счёт выражения ([аоуыэяёюие]{0,1}|[а-яё][аоуыэяёюие]) не производит замены, если перед знаком *= стоит какая-либо гласная буква. Поясню, к примеру если будет произведена замена

белоглав*=белогла<в
белоглаз*=белогла<з


на выражение

белогла*=белогла<

то такое выражение (белогла*=белогла<) не информативно, и лично мне бы было непонятно о чем бы шла речь в таком выражении.
После первого прохода по словарю, выражение можно запустить еще насколько раз до тех пор, пока все однокоренные слова не закончатся.
В любом случае, данная регулярка всего лишь инструмент, и не следует ей слепо доверять (хотя я проверял её неоднократно на своих словарях, и со своей задачей она справляется на УРА). Буду рад. елси кому то помог в работе с этой Замечательной программой. Огромное Спасибо Cminant за её разработку и дальнейшее сопровождение. Благодаря этой программе у меня появилось прикольное хобби по написанию словарей и все такое.


В поисках рая.. Спасибо: 0 
ПрофильЦитата Ответить
Ответ:
1 2 3 4 5 6 7 8 9
большой шрифт малый шрифт надстрочный подстрочный заголовок большой заголовок видео с youtube.com картинка из интернета картинка с компьютера ссылка файл с компьютера русская клавиатура транслитератор  цитата  кавычки моноширинный шрифт моноширинный шрифт горизонтальная линия отступ точка LI бегущая строка оффтопик свернутый текст

показывать это сообщение только модераторам
не делать ссылки активными
Имя, пароль:      зарегистрироваться    
Тему читают:
- участник сейчас на форуме
- участник вне форума
Все даты в формате GMT  3 час. Хитов сегодня: 1
Права: смайлы да, картинки да, шрифты да, голосования нет
аватары да, автозамена ссылок вкл, премодерация откл, правка нет