Как категоризировать набор слов?

У меня есть набор слов (больше 5к слов) и несколько категория (15-20). Как мне автоматически определить категорию для каждого слова? Например есть слово fish, cat - Animals или laptop, telephone - Devices. Уже много чего копал в интернете. Остановился на вариантах FastText, word2vec. Я правильно понимаю, что мне нужно скачать вектора англ. слов. Потом брать слово и итерировать по категориям. Там где будет больше процент соответствия между словом и категорией, ту категорию для этого слова и выбирать?
  • Вопрос задан
  • 288 просмотров
Решения вопроса 1
@imageman
Я так понимаю, что категории у тебя собственные, не такие, как у авторов нейросетей?

Мне кажется (могу ошибаться) тебе следует набрать ключевые слова для каждой категории. По этим ключевым словам получаем вектор на предобученной модели (запоминать среднеарифметический вектор?). Не исключено, что придется какие-то категории разбить на подкатегории (для более однородных векторов ключевых слов).

Для искомого слова также получаем вектор, затем вычисляем расстояние (эвклидово, косинусное и т.п.). С какой категорией расстояние минимально - то наше.

В fastText есть возможность классифицировать текст или перевести слова в вектор.
https://gosha20777.github.io/tutorial/2018/04/12/f... вроде там вполне доходчиво. Как я вижу там нужно самому учить классификатор (я так понимаю ты хочешь использовать что-то предобученное?). Ну и ещё почитать https://sysblok.ru/nlp/kak-rabotaet-fasttext-i-gde...

И если ничего не получается, то ищем автора https://habr.com/ru/post/489474/
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы