-
Notifications
You must be signed in to change notification settings - Fork 2
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Словарь концептуальных терминов тестирование #14
Comments
У меня уже работает, поиск ищет оба варианта, например запрос Пока на первый взгляд буквально то, что у меня подразумевалось в первых обсуждениях вопроса — первое слово работает как ключ, а «синонимы» подтягиваются в выдачу. По деталям будем смотреть. Например вопрос — если у нас такая запись в словаре (первой версии): То в нём только ДТСП является «ответом». Можно ли прямо в этой записи обозначить, что «ответом» должен также быть, например, демон, и «ДТСП» должен отдавать в том числе результаты с «демон»? Или для каждого ключа потребуется своя строка синонимов, то есть если у нас в этой строке четыре слова, то нужно будет четыре разных строки для взаимного перекрещивания? Или всё ещё хуже, и нам строка нужна не только для каждого ключа, но и для каждого синонима, так как символ перевода |
может быть только так как в файле , я тестировал пробовал разные варианты, но через запятую не проходит.
то давало 2 варианта, или не будет искаться по этим словам вообще (будет 0 результатов), или просто правило не применится, ничего не произойдет, обычно ломалось и переставало искаться, это лечится только удалением таблицы и созданием заново. С демоном там
кажется у нас этот вариант. вот тот фай, что приложил это рабочий файл, который читает мантикора. И еще например вводим: марго, все вроде бы ок, но там нет ничего про марго, которая с мастером.. т.е часть выдачи теряется UPD: индекс со словарём заполнился, теперь полный на момент 23.04.2023 22:00 по МСК, там не будет обновлений онлайн, только в ручную могу обновлять. |
Тогда всё просто — для первичного словаря в каждой записи ищем число вхождений, и выбираем в качестве ключа тот вариант, который… чаще встречается? Или реже встречается?
Это не решается добавлением синонима к ключу «марго» — «мастер» и «МиМ», «Булгаков», «Мастер и Маргарита» и так далее? |
Да, наверное вариант чаще встречается выбрать логичнее, но возможно и нет. Вот еще хутор набрать, и все будет про симоньян, и не попадет ничего, что было про какой-нибудь хутор как география. |
возможно, хорошая идея, я просто так зол на эту мантикору)) так что кидайте идеи проверим, только это не быстро, надо поменять словарь, перезагрузить сервис, если не подхватит, удалить таблицу, загрузить заново, так что надо побольше идей набрать и сделать файл поинтереснее с разными вариантами. Чтобы с периодичностью обновлять, а не по одной строке. Можно прямо разбить, что на этой группе одну идею тестируем, на другой другую идей. |
А почему просто хутор исчезает? Подключение словаря сейчас опционально, то само изменение поведения не глупость (возможно где-то есть ошибка, однако), производится некое управленческое решение, которое обосновано. Об обосновании и сути решения можно обсуждать, но вот в чём суть сценария. Пользователь должен подключить опцию «словаря» и тем самым он переходит в другой режим поиска, связанного уже с «концептуальными синонимами». То, что такое концептуальные синонимы это решает сообщество «пополнятелей концептуального словаря». То есть это специальный функционал. Осознанный. Но его надо осознать, конечно, и расписать. Обсуждаем. |
@grigorovsckaya-sandra Александра значительно увеличила количество строк. Просто продолжим работу по наполению вариантов и по переформированию словаря в технический файл для сервиса. Нужно понять, нам важнее пополнение вариантов, или продуманное форматирование? |
а вот я не понял еще этого, ищу связь. Хутор со словарем 7 страниц, без словаря 8, надо просмотерть их поискать связь Возможно это и не критично, тем более если это опция, чек боксом) |
341 против 356 результатов поиска. Куда-то пропадает 15 комментариев. |
Я думаю можно и просто продолжить наполнять словарь, ведь он может пригодится и для других целей не только в этой задаче. upd: читал, где-то в доках, что повторяющиеся значение не страшны, будет применено последнее. |
А какие есть альтернативы такого рода поиску текста? Elastic? В нём судя по всему всё то же самое, только подозреваю хуже примерно в 2 раза. Медленнее в 2 раза, описано в 2 раза меньше, герметичной лабуды в 2 раза больше, и тд. Sphinx? Полное соответствие мантикоре за исключением того, что практически не документировано, в десять раз медленнее и наполнено багами до краюшка. Redis? Там какая-то собственная возня с базой-не-базой. С мантикорой вам хотя бы можно работать через привычные SQL и PHP. |
Ну и кончено такой поиск логичен только по комментариям, если подключать другие источники (Сайт Кремля и т.д.) хуторов может быть больше
Видимо у меня подобная мысль возникла, но я не смог сфорулировать ее так, а оформил сразу с чекбоксом вторым индексом). |
Если к примеру взять логику нейросетей, то акутальность вхождения ключа в текст является функцией от контекста, то есть в контексте должны быть вхождения смежных терминов. В зависимости от того, как они определены, то есть от того как в итоге будет обучена модель, примеры либо подходят выдаче, либо нет. Дальнейшее зависит только от того, как и чем определяется контекст и ранжирование результатов выдачи. Например, сейчас легко получить интересные результаты выдачи, задав ходовое слово и взяв поиск по умолчанию — побеждать наверху будут наиболее длинные комментарии, где это слово употреблено большее количество раз. За такое яндекс банил ))) Очень легко написать специальный побеждающий комментарий, нужно всего лишь 280 раз употребить в нём фамилию Владимира Владимировича. В словаре мантикоры есть эксепшены или какие-то стоп-слова? |
Вы все правильно написали, судя по всему нету альтернативы, я пока не знаю Всё, что вы перечислили, я рассматривал до запуска и выбрал мантикору. На самом деле «злость» это нормально, просто я не умею ещё готовить эту мантикору, вот и злость). Ну и доставляет дискомфорт, что порой ничего не понятно(почти всегда) и методом «тыка» двигаешься. |
По докам да, но что это, я не знаю еще.
С яндексом понятно почему, как пошла коммерция, то они и начали вводить всякие надстройки над той мантикорой, что у них была. И там сейчас не полнотекстовый поиск, а нечто другое. Согласен, придется нам вводить свои условия и строить свой поисковик с ИИ. Попроще не получилось) |
Пошли идеи... можно поисковый запрос отправлять в оба индекса и собирать из 2х обобщенный, смерджить так сказать... и тогда хутора не потеряются, эх я сейчас навыдумываю, потом замучаюсь код писать) |
Рекомендую выдумывать исключительно лёжа, с руками подальше от клавиатур. Лень — двигатель прогресса. Выдумываешь лёжа — не делаешь лишнего, делаешь только необходимое и наиболее продуманное. Весь геоматрикс на этом. Ничего не было придумано сидя (с) |
Поэтому как поисковиком информации я намного больше пользуюсь гуглом. Кажется одно и то же, но конечно же нет.
Сейчас легко можно получить результаты, в которых будут индексированы предлоги и союзы во фразах, или например технический текст типа https или .com, если ищешь ссылку. Значительная часть такой выдачи это мусор. Стоп-слова могут отчасти закрыть этот вопрос. Возможно они также могут тем или иным образом быть полезны со словарём, но я пока не разобрался как. |
Умножьте это на двадцать, и примерно представите мои ощущения от общения с этой системой. |
Согласен, посмотрю что это такое, будем двигаться потихоньку. И еще замечал такое, и это надо будет проверить в след. тесте. Сейчас со словом демон, будут подсвечены демон и то что ДТСП, но не будут формы: демону, демоны, демонам и прочие формы. Т.е. если их описать в файле словаре (я так делал), то они становятся подсвеченными, но выдача как будто бы та же, т.е. как будто бы все эти формы уже были в выдаче до добавления форм, и по докам вроде пишут, что они должны учитываться, но похоже просто не подсвечиваются. Надо будет проверить этот вариант, влияет ли описание форм на кол-во/качество выдачи. |
Насколько я понял, внутри мантикоры по умолчанию есть морфологический словарь (русских и английских слов точно), а вот подсветка может иметь какие-то зависимости. Сейчас при обычном поиске «демон» будут показаны «демоны», «демона», «демонов», но не будут показаны «демонический» и «демонические», а вот при поиске концептуальном покажут и подсветят «демонических», но «демоны» или «демонов» подсвечены не будут. |
Да словарь есть.
Продолжение мысли про словоформы, если ввести «демону», то будет другая выдача. Добавил файл в словарь wordforms.txt, обновил readme.md https://github.com/audetv/conceptual-dictionary В файл dictionary.txt продолжаем вносить изменения по той же схеме. |
После внесения изменений требуется ручное обновление баз, или файл подхватывается прямо отсюда? Просто чтобы понимать ожидания и рапортовать баги если не соответствуют.
Внёс с небольшими поправками всё, что вчера добавила Александра. |
Ручное обновление, не подхватит. Заморочная система, надо внести изменения в файл, потом перезапустить сервис мантикоры, т.е. буквально остановить - поиск не работает, запустить заново. И если изменения не проходят, то очистка таблицы и заполнение данным по новой. Да , случается, что изменения не работают по некоторым словам, полностью закономерность еще не установил, но например: добавили слово, потом убрали это слово из файла, но предыдущий результат, похоже остаётся где-то в кэше, и как его вычистить в документации я не нашел, то, что нашел не работает, но точно работает способ пересобрать таблицу. upd: хаха, образы сложились, я сейчас как ИИ, обучаю свою нейросеть, ввожу данные получаю результат, откатываюсь, получаю ошибку, обрабатываю, получаю результат проверяю и так уже 2 неделю с перерывами, много результатов, много фэйлов) Обучение нейросети по мантикоре проходит, но не быстро. |
Понял.
Стандартная процедура обучения. Всё нормально. Для ИИ эту схему не изобретали специально, лишь описали то что всегда существовало с появления нейронов. |
Получил интересный результат, если перед ключом поставить тильду, то описанию это должно применить фильтр после морфологии, цитата из документации:
~демон > дтсп upd: надо попробвать это применить к хутору и марго |
Супер.
Внимание, идёт герметизация, порошок уходи. |
Кажется с тильдой - это то, что надо. Выдача не уменьшается по сравнению с обычным поиском, а стабильно больше по кол-ву, и комментарии не теряются вроде бы, выборочно проверял сравнивал, . т.е. одна из проверок: взял «посиделки», результат 629 на localhost против того, что сейчас на боевом «посиделки» выдают 341. Глобальный предиктор не сильно изменилось состояние, какие-то космические цифры в обоих случаях более 24 000 комментариев. Позже планирую обновить, в этот же файл припишу туда тильду к словам и переиндексирую таблицу, напишу по факту обновления. |
Можно рассмотреть вариант, когда поиск по умолчанию будет выдавать «концептуальный словарь», а поиск по точной фразе будет отключать «концептуальный словарь». |
Да, хорошо, согласен, об этом было в дискуссии. Название галочки скорректируем. Теперь очевидно и понятно, что галочка нужна. Сделал обновление: По моему результат уже удовлетворительный. upd: по некоторым словам появились соображения, позже напишу |
У кого виндовс достаточно свежая, можно использовать комбинацию SHIFT+WIN+S чтобы делать небольшие скриншотики, выбранные курсором после нажатия комбинации. Вот таким образом: Что-то ДТСП мало? |
Да. Чтобы было понимание, какой сейчас словарь на сервере и не задавать вопросы в issue выясняя это. |
Вот и отлично. |
Подумал, надо похоже подытожить то, что мы тут в 37 комментариях обсуждали, сделать выжимку и положить в первый пост темы terratensor/svodd#129 или здесь terratensor/svodd#112 |
Иногда подсветка работает спорно. Например сейчас у нас есть блок слов, которые синонимируются на «иерархически наивысшее всеобъемлющее управление»:
Проблема заключается в том, что любой ключевой запрос типа «господь» или «творец» даст в результатах выдачи подсветку отдельных слов из синонима «иерархически наивысшее всеобъемлющее управление», например засветит одно слово «управление»: Или «всеобъемлющая»: И хотя весь набор слов:
— в целом соответствует понятию Бог и не является оффтопом, тем не менее возникает некоторое удивление. Пусть будет? Не мешает, вроде? |
«иерархически наивысшее всеобъемлющее управление» Я намеренно поставил справа, что бы посмотреть как это будет. В самом начал я сделал так Сейчас считаю, что так делать не надо, что вообще никакие фразы не надо ставить справа. Справа лучше всего на мой взгляд - сокращение, аббревиатура или одно слово. Я это понял позже, когда добавил еще с десяток слов, когда гонял разные сочетания, обучая свой естественный интеллект. Пока я еще новые данные по словарю не выгружал. |
Отлично, значит так и будем делать — в «синонимах» отдаётся предпочтение варианту из одного слова или аббревиатуры, то есть в wordforms это слово ставим справа:
|
У меня по словарю есть ОС — спрашивают, почему поиск по «пфу» с концептуальным словарём содержит 391 запись, а поиск «полной функции управления» без концептуального словаря 486 записей. Логично было бы предполагать, что подключение концептуального словаря должно давать 486+ записей, поскольку будут показаны все они плюс «синонимы». Возможно, что-то отключилось при переезде словаря на поддомен? |
Это потому что вордвормы для словосочетаний так работают. Во прямо в лоб, как форма звучит, так и ищет соответствия(для отдельных слов это работает лучше, есть тильда перед словом) , поищите поиском на странице с результатами другие формы слова полная - полной функции, полную функцию и. Тд. Все эти формы прошли мимо. Плюс последовательность слов, вроде бы тоже, имеет значение. Я ранее на это обращал внимание при составлении словаря, что что-то не то) и вот сейчас хороший пример у нас. Но теперь мы имеем способ быстрого обновления словаря (словарь коб на сервере обновляется за 20-30 сек, а поиск по фкт 15 минут) теперь можно поэкспериментировать с формами слов в словосочетания, ранее это было очень долго, а на малых выборках сложно увидеть отследить варианты. Можем начть с пфу. У нас много в словаре подобных сочетаний. Супер полезная обратная связь! https://manual.manticoresearch.com/Creating_a_table/NLP_and_tokenization/Wordforms#wordforms Upd: с вектором состояния такая же история, ищется только форма - вектор состояния |
Надо проверить, что значит этот параграф по ссылке выше:
Как то ранее мы решили, в значениях не использовать словосочетания, ну, т. е. Пфу > полная функция управления, мы пишем : полная функция управления > Пфу, возможно есть смысл откатиться назад и ещё раз проверить, что даёт перестановка, во всяком случае, у меня появилась потребность освежить это в памяти. |
Правильно я понимаю, что решением может быть добавление всех склонений и спряжений для словосочетаний? Тогда для ПФУ весь список будет таким: полная функция управления > пфу
Можно прикрепить несколько источников к целевому слову, но процесс относится к токенизации, не к тексту-источнику, таким образом различия в «пробелах» и «разметке» игнорируются. Здесь под пробелами идут полагаю все символы, которые по умолчанию приравнены к пробелу, это плюсы, минусы, тире, дефисы, знаки равенства и тому подобное; а разметка это кажется буквально разметка, например html теги в треугольных скобках. |
Я тоже так предполагаю, надо проверить, это немного странно, но почему бы и нет. Ещё заметил форму: управление по полной функции, интересно, как это сработает, будет игнор? Проверим.
Хорошо.
Я вот это и не понимаю, что значит. Пока не дошло) |
Она перечислена в форме «полной функции» без предлога. Думаю будет искаться.
Как я понял — они говорят что нужно обращать внимание на то, что словосочетания это не просто «текст», а токенизированный: во-первых в нём несколько слов, поэтому во-первых имеются пробелы (или другие знаки в том числе разметка), а во-вторых каждое слово токенизируется по своему алгоритму, то есть в работе не одна токенизация, а несколько (предлоги, спряжения, склонения, и тд). |
Сайт переодически не работает, это вы тестируете новые формы, или у меня проблемы? |
Нет я не тестирую. Пока не знаю что это. У меня сейчас работает и ранее час - полтора назад работал. Позже посмотрю логи, были ли падения. А что пишет, когда не работает? |
Ничего не пишет, хром показывает обычную заглушку как в ситуации с несуществующим доменом:
Раза три такое было за сегодня. Но быстро прекращалось, в течение минуты. |
Это похоже когда днс сервера недоступны по какой-то причине, где то в сети проблема может быть. Т.е. Не обязательно у ас, а вообще, вплоть до днс на котором указаны данные сайта selectel. Не знаю, посмотрю позже, по логам были и где сообщения. Но тут явно то, что не сервер падает, не сайт (например от ошибок, загрузки ещё чего) понятно, что не легче, но в данном случае уровень проблемы другой. |
Да, я думаю это где-то с провайдерами. Другие сайты ошибок не давали, видимо где-то ближе к селектелу дело. |
Обновил словарь, добавил:
Результатаов стало больше:
|
Так точно. Значит всё правильно распознали. Нужно теперь просклонять весь словарь, верно? |
Похоже на то, но я еще почитаю, поищу информацию, может есть какой-то еще способ. Те примеры что в документации они чисто коммерческие, вот нужен запрос коре 2дуо, и понято, что если у нас магазин, то все формы которые мы употребляем в именительном падеже, ну или во всяком случае мы знаем, как у нас написан текст, его можем написать под словарь, а туту ситуация обратная) Мне даже интересно , рассчитывали мантикору на такие сценарии, как наш... но выход мы нашли, а если найдем выход лучше, то изменим. Видимо да, надо просмотреть словарь и просклонять фразы, те которые имеет смысл склонять |
Можно программой просколнять типа https://morpher.ru
|
Да, хорошо, воспользовался:
просклонял вектор целей и вектор состояния со множественным числом, не уверен, что надо множественное число, но результат сейчас такой, еще больше совпадений: https://svodd.ru/dkgrvNgS Потихоньку просклоняю словарь) |
Быстро вы. |
Юрий напомнил синоним соловью — дуче |
ага, хорошо, надо будет добавить. Просклонять словарь надо будет, вообще забыл) так и не сделано. |
Добавил в настройки поиска чекбокс для переключения поиска со словарём и без для того, чтобы каждый смог посмотреть и подумать, а что мы будет с этим дальше делать. Я разместил небольшой словарь синонимов файл находится здесь и продублирую содержимое ниже
Не спрашивайте почему такой выбор, так выбрал.
Файл wordforms (синонимов и исключений) это строго левая часть — это то, что запускает алгоритм исключений в тексте, правая часть — результирующая лексема. map-from-tokens => map-to-token
Демон стал > дтсп
Как работает под капотом для справки:
https://procodings.ru/dev-ru/formy-slova-protiv-isklyucheniy-v-manticore-search/
https://dev.to/sanikolaev/wordforms-vs-exceptions-in-manticore-search-256n
Через 20 минут, можно вводить эти слова и посмотреть, что происходит, какие будут мысли? Пока происходит индексация второй таблицы со словарем.
The text was updated successfully, but these errors were encountered: