Спасибо за видео и ссылки на библиотеки! Пытаюсь найти решение похожей, но немного другой задачи: - есть довольно большой список контрагентов - компаний, характеризующихся вариантами названий (краткое, полное, официальное, с вариантами написания орг-правовой формы и т.п.); - надо построить алгоритм классификации (отнесения к компании) приходящих текстовых документов, в которых упомянута одна (редко - две) компании. Для обучения логично использовать пару ("вариант названия компании", "компания"). Применение классической векторизации по словам или мультиграммам с дальнейшей классификацией, например, SVC, представляется сомнительным, т.к. имеем очень большую размерность (для названий компаний используются разные слова или их комбинацию, но все равно их очень много, т.е. размерность будет равна O(N), N - количество компаний), а матрица очень разреженная. Можно, вероятно, попытаться выделить главные компоненты, но размерность все равно останется большой (да и любая из компаний должна быть равновероятна в поиске). Прямой поиск с перебором списка тоже как-то не очень... На удивление, что для, по-видимому, не очень сложной задачи, не могу найти к-л приемлемого решения. Вы что-нибудь подобное встречали? Или может подскажите хотя-бы направление поиска?
Спасибо вам большое, за видео и поделились ссылками. Прошел по ссылкам, запустил программу, изучил подходы. Это очень помогло сделать дипломную работу. К сожалению в интернете так много мусора, не работающих и уже полностью устаревших подходов. Найти что-то действительно стоящее - очень и очень трудно. Я рад, что почти случайно, нашел это видео. Желаю вам успехов в дальнейшей работе. Надеюсь, это не последний материал от вас
В Алгоритме Birch есть параметер threshold, который определяет радиус. Цитата из sklearn: "The radius of the subcluster obtained by merging a new sample and the closest subcluster should be lesser than the threshold. Otherwise a new subcluster is started". Почему изменение этого гиперпараметра не подходит для задачи?
В первом приближении можно использовать и Birch с этим параметром. Но почему-то у Birch этот порог работает не строго, какие-то кластера немного вылезают за его пределы и имеют большее расстояние между точками. Кроме того, получаются сильно неоптимальные по размеру кластера, много мелких кластеров. То есть при заданных ограничениях на расстояние между точками можно сделать лучше.
Нет, Sentence RuBERT пока не пробовали. Сравнить можно быстро, если есть какие-нибудь размеченные данные. Тогда можно взять эмбеддинги, поверх них сделать простую модель (KNN или логистическую регрессию) и решать задачу классификации, смотреть какие эмбеддинги лучше результат дают.
Спасибо за видео и ссылки на библиотеки!
Пытаюсь найти решение похожей, но немного другой задачи:
- есть довольно большой список контрагентов - компаний, характеризующихся вариантами названий (краткое, полное, официальное, с вариантами написания орг-правовой формы и т.п.);
- надо построить алгоритм классификации (отнесения к компании) приходящих текстовых документов, в которых упомянута одна (редко - две) компании.
Для обучения логично использовать пару ("вариант названия компании", "компания").
Применение классической векторизации по словам или мультиграммам с дальнейшей классификацией, например, SVC, представляется сомнительным, т.к. имеем очень большую размерность (для названий компаний используются разные слова или их комбинацию, но все равно их очень много, т.е. размерность будет равна O(N), N - количество компаний), а матрица очень разреженная. Можно, вероятно, попытаться выделить главные компоненты, но размерность все равно останется большой (да и любая из компаний должна быть равновероятна в поиске).
Прямой поиск с перебором списка тоже как-то не очень...
На удивление, что для, по-видимому, не очень сложной задачи, не могу найти к-л приемлемого решения.
Вы что-нибудь подобное встречали? Или может подскажите хотя-бы направление поиска?
Спасибо вам большое, за видео и поделились ссылками. Прошел по ссылкам, запустил программу, изучил подходы. Это очень помогло сделать дипломную работу. К сожалению в интернете так много мусора, не работающих и уже полностью устаревших подходов. Найти что-то действительно стоящее - очень и очень трудно. Я рад, что почти случайно, нашел это видео. Желаю вам успехов в дальнейшей работе. Надеюсь, это не последний материал от вас
Антон, а подскажите какой инструмент вы использовали для визуализации кластеров? на слайде "Как анализировать получившиеся кластера"
В Алгоритме Birch есть параметер threshold, который определяет радиус. Цитата из sklearn: "The radius of the subcluster obtained by merging a new sample and the closest subcluster should be lesser than the threshold. Otherwise a new subcluster is started". Почему изменение этого гиперпараметра не подходит для задачи?
В первом приближении можно использовать и Birch с этим параметром. Но почему-то у Birch этот порог работает не строго, какие-то кластера немного вылезают за его пределы и имеют большее расстояние между точками. Кроме того, получаются сильно неоптимальные по размеру кластера, много мелких кластеров. То есть при заданных ограничениях на расстояние между точками можно сделать лучше.
Sentence RuBERT из deeppavlov не пробовали? Интересно его сравнить с LaBSE по качеству.
Нет, Sentence RuBERT пока не пробовали. Сравнить можно быстро, если есть какие-нибудь размеченные данные. Тогда можно взять эмбеддинги, поверх них сделать простую модель (KNN или логистическую регрессию) и решать задачу классификации, смотреть какие эмбеддинги лучше результат дают.