170 похожих чатов

Всем привет! Подскажите, пожалуйста, как лучше действовать. У меня

есть модели NER, которые вытягивают три типа гипотетических сущностей (в реальности у меня другие сущности): авто, самокаты и велосипеды. Я прошелся этими моделями по текстам и назначил каждому тексту класс в зависимости от того, какой тип сущности наиболее упоминаем, e.g. есть тексты, где больше всего говорят о специфичных моделях велосипедов, значит этот текст имеет класс велосипед и т.п.

Теперь же я хочу научиться выделять значимые кластеры внутри классов, e.g. в классе авто найти, например, кластер текстов, где упоминаются спорткары или в классе велосипедов найти кластер про шоссейники. Для этого я хочу сделать как это делалось тут или тут, используя Сиамские сети. Основной вопрос это как сформировать датасет, чтобы вектора текстов из encoder Сиамской сети после тренировки формировали кластеры лучше всего?

Сейчас пока что я думаю частично формировать датасет типа anchor-positive-negative как-то так: внутри каждого класса мэтчить пары текстов anchor-positive по наибольшему совпадению именнованных сущностей, которые я выделил на стадии NER разметки, то есть два текста с такими сущностями {порш, бугатти, мазерати, лада, седан} и {порш, ламборджини, мазерати} станут парой anchor-positive. А что стоит брать в negative? Текст из другого класса или текст из того-же класса но где нет оверлэпов? Также если я использовал тексты в anchor-positive их можно задействовать для создания других пар с другими текстами?

1 ответов

3 просмотра

про NER+metric learning это довольно интересная идея, которая мне тоже как-то приходила в голову и которую я потом видел уже реализованной в этой статье у Микрософта https://openreview.net/forum?id=9EAQVEINuum , но все нет времени проверить. в целом чем более разнообразные negative будут тем лучше, поэтому ответы на вопросы - и из другого класса, и с оверлэпами. и можно использовать пары anchor-positive для создания других пар, там имхо в целом логика следующая , задача чтобы семантически сущности positive попали в кластер к anchors, таким образом в жадном случае надо показать combinations(anchor+positives, 2) пар, что конечно нереально, поэтому нужно выбирать такие edge кейсы,после изучения которых сетке, много других пар показывать не надо. поэтому в целом задача по каким-то признакам сгруппировать(как в блокинге в entity resolutions, это если вы знакомы с ER) , и в этих группках найти такие кейсы, которые заведомо не матчи. поскольку тут NER, то я бы сначала запустил обычную модель, сделал бы error analysis , классифицировал типы ошибок и исходя из них, делал бы такие кейсы. например подозреваю что overlap будет в меньшей степени иметь значение, скорее всего стоит подумать про контекст (т.е. есть подозрение что сиамская сетка обученная на понимание схожести description и entity аля entity-linking , будет лучше работать - но надо проверять, эксперементировать)

Похожие вопросы

Обсуждают сегодня

А чем вам питонисты не угодили?😂
.
79
Всем привет, написал код ниже, но он выдает сегфолт, в чем причина? #include <stdio.h> #include <stdlib.h> #include <string.h> struct product { char *name; float price; };...
buzz базз
75
Ещё такой вопрос. Мне необходимо хранить пароль пользователя локально. Для этого планирую использовать ini файл. Это для автозаполнения полей логин и пароль при авторизации. Е...
Евгений
19
Ты просто гитлеровскую эстетику плохо понимаешь. Он же всё под Цезаря делал. А это как бы запрещённый приём в политике. Пиджаки они зачем все носят? Чтобы показать что они тип...
Ivan Kropotkin
4
а чем лучше всего сделать глобальный лок, если много нодов, до сотни? ну то есть мне надо, чтобы некоторые операции с объектом не происходили одновременно. перемещение между н...
Д. П.
15
Hi guys, I'm looking for a good LLM course. Is there any course to learn LLMs in advanced? I'm aiming to use them in my apps, so a perfect course in my openion, is not only a ...
Taha
14
А как лучше конвертировать физический адрес в виртуальный при маппинге? В случае ядра у меня, например, direct mapping, первые 768МБ я как есть мапплю в higher half, а остальн...
Evg Resh
26
База данных не поможет. Шифрование не поможет. Какие там ещё варианты? Накидывайте.
КТ315
20
А табстоп это сообщение от окна или от элемента управления?
The Bird of Hermes
18
Легче писать на C++ чем на C, если полностью не изучать C++, а знать только основное?
Алмаз
8
Карта сайта