|
Омографы
|
|
| Admin | Дата: Пятница, 30.07.2021, 02:01 | Сообщение #1 |
Группа: Администраторы
Сообщений: 140
Статус: Offline
| Начало темы здесь (ссылка на архивную копию форума mytts.info)
|
| |
| |
| tonio_k | Дата: Среда, 05.10.2022, 15:25 | Сообщение #2 |
Группа: Пользователи
Сообщений: 185
Статус: Offline
| Корпус слов "Омографы" создан на основе более 48000 книг. Представляет собой более тысячи (по количеству омографов) текстовых файлов в ANSI кодировке в разрезе каждого отдельного слова-омографа. Название файла соответствует слову-омографу. Весь текстовый файл - это строки с найденными в книгах предложениями, которые содержат соответствующее слово-омограф. Корпус слов "Омографы" может пригодиться составителям словарей для сбора статистики, выявления закономерностей и анализ целесообразности добавления правила в словари.
|
| |
| |
| wasyaka | Дата: Четверг, 06.10.2022, 07:54 | Сообщение #3 |
|
Группа: Модераторы
Сообщений: 35
Статус: Offline
| Цитата tonio_k (  ) Корпус слов "Омографы" ТРЕБУЕТ ПАРОЛЬ...
|
| |
| |
| tonio_k | Дата: Четверг, 06.10.2022, 09:52 | Сообщение #4 |
Группа: Пользователи
Сообщений: 185
Статус: Offline
| Цитата wasyaka (  ) ТРЕБУЕТ ПАРОЛЬ В описании в самом низу
UPD добавил в двух местах в описании и выделил цветом
Сообщение отредактировал tonio_k - Четверг, 06.10.2022, 10:19 |
| |
| |
| wasyaka | Дата: Воскресенье, 09.10.2022, 08:48 | Сообщение #5 |
|
Группа: Модераторы
Сообщений: 35
Статус: Offline
| Цитата tonio_k (  ) Корпус слов "Омографы" создан на основе более 48000 книг Слишком много книг и соответственно - много одноразовых пар - слово + омограф... А извлечь омографы из пару тысяч книг? (был у тебя такой скрипт, но гавкнулся винт и...)
|
| |
| |
| tonio_k | Дата: Воскресенье, 09.10.2022, 13:58 | Сообщение #6 |
Группа: Пользователи
Сообщений: 185
Статус: Offline
| Цитата wasyaka (  ) А извлечь омографы из пару тысяч книг? Так корпус слов это и есть основные омографы из 48 тысячи книг. Все основные омографы уже найдены и собраны каждый - в отдельный одноимённый файл. Самое трудное было поиск дубликатов, но не дубликатов строк в книге (это искажает статистику повторяемости популярных выражений), а дубликатов книг, когда имеем несколько книг и одна из них является сборником-сериалом остальных маленьких книг или когда одна из книг является сборкой лучших книг, когда в одной книге несколько книг из разных источников. А особенный геморрой, это дубликаты разных переводов, когда совпадениий 20, 30 50 + строк. Вроде бы дубликат книги, а вроде и нет. Приходилось выставлять порг чувствительности.
Повторение пар в разрезе омграфа - идея в том, что бы была видна статистика частоты встречаемости этих повторений в тысячах книг. Например, создаём не стандартное правило dic. И сомневаемся, а имеет ли смысл его заносить в словари? Такое словосочетание больше нигде не встретиться или, все же, вероятность есть? А может этот поисковый запрос слишком поверхностный. И поменяй в одном, заденет там, где менять не надо? Для этого запускаем скрипт (ссылка на скрипт в комплекте ) указываем левую часть правила в поисковом запросе и получаем сотни/тысячи совпадений или вообще ни одного на 48 тысяч книг.
Цитата wasyaka (  ) Слишком много книг и соответственно - много одноразовых пар - слово + омограф Корпус слов омографов. Это все, что вытащено из десятков тысяч книг. Вам осталось воспользоваться скриптом Демагога: ===================ПОИСК ПО ШАБЛОНУ.lua С его помощью можно извлекать любые строки по любому из имеющихся способов (rex , lua, dic) и помещать их в окно статистики. Затем содержимое окна статистики перенести в другое окно, и по этому окну при помощи того же скрипта делать дополнительные уточняющие поиски по содержимому окна. Если нужен корпус по какому-либо ещё слову, скажите, я сделаю. Только желательно накопить сразу список слов, а не по одному слову. Особенность работы скрипта по сбору корпуса слов, что увеличение количества искомых ключевых слов не влияет на скорость его работы. А крутится он всю ночь. Потом ещё склеивать отрезки.
Цитата wasyaka (  ) (был у тебя такой скрипт, но гавкнулся винт и...) Наверно, это тот самый скрипт, которым я этот корпус делал? Скину позже в личку
UPD скрипт поиск по шаблону ещё доработать надо. Но пока в целом работает
Сообщение отредактировал tonio_k - Воскресенье, 09.10.2022, 14:33 |
| |
| |
| tonio_k | Дата: Среда, 12.10.2022, 18:11 | Сообщение #7 |
Группа: Пользователи
Сообщений: 185
Статус: Offline
| Видео Пример использования корпуса слов "Омографы"
|
| |
| |
| reborn00 | Дата: Среда, 08.02.2023, 13:43 | Сообщение #8 |
|
Группа: Пользователи
Сообщений: 3
Статус: Offline
| Цитата adelantado (  ) набор скриптов под bash морфологический анализ текста по словарю - это интересная мысль. Сейчас решения rex и dic словарей в прогах демагог и балаболка похожи на бесконечный процесс добавления правил для каждого рядом стоящего слова или их окончаний. В вашем случае можно привязываться к падежам слов и их числу, что будет по идее иметь больший охват и более быструю работу. Но интересно как оно оказывается на практике.
|
| |
| |
| tonio_k | Дата: Четверг, 09.03.2023, 18:42 | Сообщение #9 |
Группа: Пользователи
Сообщений: 185
Статус: Offline
| Цитата reborn00 (  ) можно привязываться к падежам слов и их числу, что будет по идее иметь больший охват и более быструю работу. делали подобное на питоне. Т.к русский язык не такой простой и многое зависит от контекста, в итоге получаем по сути такой же набор правил, что и правила замен в словарях, только написанный программным языком. Общая статистически распространённая база, может и программируется, а потом начинается добавление и рост простых словарей (исключений) с заменами по контексту. Все эти программные правила (подавляющее большинство ) можно прописать регулярными выражениями в привязке к окончаниям либо правилами замен dic со звездочками. И в итоге получаем тот самый:
Цитата reborn00 (  ) бесконечный процесс добавления правил для каждого рядом стоящего слова или их окончаний.
И ещё один важный момент, "Программный" словарь доступен к пониманию далеко не каждому пользователю и не всякий научится/захочет его пополнять. А простые словари - они и есть простые, переносимые, подлежащие анализу и пакетной оптимизации (кроме регулярок) и доступны к пониманию и освоению большинству пользователей.
|
| |
| |
| adelantado | Дата: Четверг, 16.03.2023, 08:24 | Сообщение #10 |
|
Группа: Пользователи
Сообщений: 7
Статус: Offline
| Цитата tonio_k (  ) делали подобное на питоне. *делает. правда на питоне только часть, вытягивающая анализ из spacy, большая модель 3.5.0, (она же наташа). т.е. повторение попытки Lecron, собственно его работой и навеяно. буквально вчера подключил spacy и для пары все/всё процент ошибок не менее 30%. Т.е. уйти от ручного написания правил не получится и потребуется тонкая настройка в том числе спуск не уровень отдельных случаев.
Пока все выглядит так: - обработка на основе лексической информации из словаря Хагена. она неполная, например управления глаголов там нет, и по имеющимся признакам его слишком часто не определить. Для понимания, его можно проставить и я это делаю, но речь идет и миллионах словоформ, где невозможно по формальным признакам определить управление и нужно спускаться на смысловой уровень.. т.е. коррекции возможны только в рабочем порядке и только после нахождения ошибки - я не нейросеть и не НИИ. - затем те самые пресловутые правила с бесконечными дополнениям - и только потом лексическая информация из spacy
Однако, точно эта конструкция работает довольно быстро. Мой тестовый файл из 52К строк обрабатывается за 40 секунд и еще база spacy делается за 3 минуты, но это разовый запуск.
На самом деле, имеет смысл развивать разные инструменты с разной методикой и сравнивать их результаты. И желательно организовать обмен готовыми вылизанными человеком текстов со снятой омографией для отлова ошибок. А так, не думаю, что на данный момент "универсальная таблетка" возможна.
|
| |
| |
| Lecron | Дата: Воскресенье, 11.06.2023, 13:15 | Сообщение #11 |
|
Группа: Пользователи
Сообщений: 33
Статус: Offline
| Цитата adelantado (  ) пары все/всё процент ошибок не менее 30% Правило все=все`|мест мн|опр мн| : всё|мест ед|опр ед|сущ мн|союз|нар|част|межд| для Natasha дает исчезающе малое количество ошибок.
Для омографов скорее надо разделить на формы в пределах одной нормальной формы (словообразование), например бе`льма/бельма` и вроде бы разрешаемые морфологические, но произошедшие от разных слов, например СУЩ жр мн бе`лок / СУЩ мр ед бело`к. С первыми Наташа справляется удовлетворительно, а со вторыми отвратно. Впрочем и среди первых есть сложности с глаголами — переходной/непереходной, совершенный/несовершенный. А для вторых проще оперировать не склонениями в правилах, а нормальными формами контекста. Что опять приводит к программной обработке. Более того, контекст можно собрать тоже программно. Пара омографов существует не для всех словоформ. Например для бе`рет из пары бе`рет/берёт их можно собрать для берета, берету, беретом. А для пресловутого за`мок/замо`к можно собирать по синонимам — дворец, особняк, поместье, задвижка, замочек, запор, засов.
P.S. Кстати, почему совершенный, а не совершЁнный? Во втором случае, понять суть признака намного проще. Она прям заложена в название.
|
| |
| |
| adelantado | Дата: Понедельник, 03.07.2023, 23:26 | Сообщение #12 |
|
Группа: Пользователи
Сообщений: 7
Статус: Offline
| Цитата Lecron (  ) Правило все=все`|мест мн|опр мн| : всё|мест ед|опр ед|сущ мн|союз|нар|част|межд|для Natasha дает исчезающе малое количество ошибок. всё равно альтернативный инструмент нужен. иначе эти ошибки обнаружить можно будет только случайно.
это как с pymorphy2. Расставил базовые формы в словаре. Ошибок именно исчезающе малое количество, но есть нюанс. "Пресловутая" пара "зАмок/замОк" потребовала правил с использованием базовой формы слова и обнаружилось масса ошибок. Процент мизерный, но попадается на каждом шагу.
"Замок" уже пару недель мусолю эту базу в 297К строк. Пока довёл до 75%. Думаю, до 90% довести или до момента, где уже перестану находить однозначность. Лучше всего работать не через синонимы, а через глаголы и только потом через синонимы и устойчивые сочетания. Мне так показалось, по крайней мере.
|
| |
| |
| tonio_k | Дата: Вторник, 04.07.2023, 00:16 | Сообщение #13 |
Группа: Пользователи
Сообщений: 185
Статус: Offline
| Цитата adelantado (  ) Замок" уже пару недель мусолю эту базу Было бы интересно получить корпус слов с расставленными ударениями для изучения...  Собственно, имея такой корпус, я так предполагаю, можно и собственные словари замен "обучить" без всяких нейросетей пакетно выявляя закономерности и пакетно исправляя, добавляя правила в словари.
Сообщение отредактировал tonio_k - Вторник, 04.07.2023, 00:17 |
| |
| |
| adelantado | Дата: Вторник, 04.07.2023, 07:06 | Сообщение #14 |
|
Группа: Пользователи
Сообщений: 7
Статус: Offline
| Цитата tonio_k (  ) Было бы интересно получить корпус слов с расставленными ударениями для изучения собственно, для чего и весь сыр-бор. конечно. поставлю на обработку сегодня и выложу
но оно "в процессе" и текущее состояние можно всегда посмотреть самостоятельно командой
Код ./momo.sh -sg замок.txt x4707
файл не обязательно, но желательно привести к виду fb2, т.е. поставить тэги <p>строка</p> . некоторые правила к этому чувствительны. И ещё желательно ёфицировать.
Код ./yofik.sh -gg замок.txt ./momo.sh -se замок.txt ./stripper.sh замок.txt -sa
это только ёфикация однозначных и все/всё, последняя команда удаляет все ударения и специфические служебные символы.
Сообщение отредактировал adelantado - Вторник, 04.07.2023, 08:19 |
| |
| |
| Lecron | Дата: Воскресенье, 12.05.2024, 21:37 | Сообщение #15 |
|
Группа: Пользователи
Сообщений: 33
Статус: Offline
| Основная проблема разрешения омографов, отсутствие корпусов. Но ведь их можно взять из смысла омографов. 1. Указываем для каждой формы синонимы (в нормальной форме) характеризующую каждый из смыслов/форм. берёт: брать, класть, забирать бере`т: беретом, пилотка, кепка, шапка если нормальная форма является смысловым омографом "берет", можно указать любую другую "беретом". 2. Утилитой PyMorphy получаем словоформы для каждого из синонимов. 3. Извлекаем предложения из корпуса текстов. Да, их будет много, релевантность низкая, поэтому... 4. Сейчас существует множество языковых моделей. Берем способную векторизовать текст (назначить ему последовательность чисел, с высокой точностью характеризующую смысл). Чтобы не сбивать его с толку, берем сравнительно небольшой контекст, окружающий целевое слово (у меня 4/3 для лево/право). 5. Также векторизуем контекст собственно омографа и для каждого предложения с ним, ищем похожие предложения из синонимичных. 6. Сортируем, отбираем самые лучшие и вуаля... можно анализировать.
В машинном обучении я чайник. Если кто-то заинтересуется и превратит корпус в рабочую модель, можно поработать над составлением корпусов других омографов.
|
| |
| |