Size: a a a

NLP_RU - Natural Language Processing & Text Mining

2021 April 08

М

Михаил in NLP_RU - Natural Language Processing & Text Mining
а то с фасттекстом кажется "песок бетонный" ближе к "бетонной плите" чем к песку
источник

וק

ולדימיר קון... in NLP_RU - Natural Language Processing & Text Mining
Есть сомнения что Берт хорошо будет понимать чем отличается песок кварцевый 0 3 мм от песок некварцевый 0 3 мм
источник

М

Михаил in NLP_RU - Natural Language Processing & Text Mining
Ок! но главное чтоб понимал что это песок а не кварц). За ссылку спасибо!
источник

וק

ולדימיר קון... in NLP_RU - Natural Language Processing & Text Mining
Т.е. вам нужно имхо текст в энтити, а дальше энтити матчинг. (Имея представления как матчитб можно сделать потом векторное представлния через сиамскую сеть , научив отделать одно от другого)
источник

וק

ולדימיר קון... in NLP_RU - Natural Language Processing & Text Mining
А сходство энтити можно определять по задаче....можно даже джаккардом)
источник

М

Михаил in NLP_RU - Natural Language Processing & Text Mining
😳 ок буду разбираться
источник

DD

David Dale in NLP_RU - Natural Language Processing & Text Mining
Я вижу два подхода:
1. Забить на векторные представления, а вместо этого представлять каждое именование в виде какой-то дискретной структуры, типа {'type': 'песок', 'properties': ['кварцевый'], 'amount': 25, 'unit': 'кг', 'size': 3, 'size_unit': 'мм'}. И дальше поверх этих структуру сходство определять какими-то рукописными правилами. Это довольно трудоёмко, но точно получится качественнее, чем unsupervised подходы.
источник

וק

ולדימיר קון... in NLP_RU - Natural Language Processing & Text Mining
+ однозначно качественнее.
источник

וק

ולדימיר קון... in NLP_RU - Natural Language Processing & Text Mining
ссылку я кстати не самую простую привел, можно попроще найти
источник

М

Михаил in NLP_RU - Natural Language Processing & Text Mining
ок, тогда попробую эмбедить(бейзлайн), а потом раскладывать предложение на части речи(каким нить spacy) и матчить через них
источник

М

Михаил in NLP_RU - Natural Language Processing & Text Mining
Всем спасибо за помощь!
источник

וק

ולדימיר קון... in NLP_RU - Natural Language Processing & Text Mining
в этой задаче векторное представления используют для скейлинга.чтобы метрику сходства сущностей перевести в более дешевое расстояние между векторами. но первое точнее, поскольку такие структуры на самом деле плохо отображаются на пространство векторов (изза дискретности)
источник

М

Михаил in NLP_RU - Natural Language Processing & Text Mining
ок, а что за подход с сиамской сеткой(думаю пока рано, но все же)?
источник

DD

David Dale in NLP_RU - Natural Language Processing & Text Mining
2. Попробовать таки unsupervised модель, обученную по аналогии с рекомендательными системами или word2vec'ом.
Она может работать примерно так:

1. Берём "мешок наименований", входящих в один список.
2. Выбираем одно из наименований, назовём его Y. Остальные наименования в этом мешке назовём X. С вероятностью 50% заменяем Y на какое-то другое наименование из другого мешка.
2. Каждое наименование по-отдельности энкодим. Например, запускаем в BERT и забираем эмбеддинг CLS токена.
3. Делаем нейросетку, с двумя входами. В одном входе постэканные векторы Х, в другом входе вектор Y. Усредняем X с какими-то атеншнами, полученный усредненный вектор конкатенируем с Y, пропускаем всё это через полносвязную сетку с одномерной сигмоидой на конце.
4. Обучаем эту сигмоиду предсказывать, был ли Y на шаге 2 заменён на случайный, или нет. Градиенты прокидываем вплоть до берта.

В результате берт должен научиться выучивать такие представления наименований, которые показывают их сочетаемость друг с другом. И, наверное, это как раз то, что вам нужно.
источник

М

Михаил in NLP_RU - Natural Language Processing & Text Mining
Звучит страшно(пока не трогал берту), но я сохраню)
источник

וק

ולדימיר קון... in NLP_RU - Natural Language Processing & Text Mining
интересно, а такое можно например сделать на обычных коротких строках ,без четких аттрибутов, например наименования Органзивций (с ошибками, сокращения и т.п.)? цель похожая. матчить и находить различное написание организации в списке (очень больщом списке, и всякие эвристики на строках не устраивают пока по качеству, ну или точнее, хотелось бы лучше)
источник

וק

ולדימיר קון... in NLP_RU - Natural Language Processing & Text Mining
причем подход unsupervied интересен очень , в контексте что данных обучения и текстирования очень мало
источник

DD

David Dale in NLP_RU - Natural Language Processing & Text Mining
Да, конечно, так можно сделать.
Но надо понимать, что то, что я предложил, не совсем unsupervised. Супервижн заключается в том, что стройматериалы по своей природе представлены какими-то "пачками" (например, входят в один заказ), и мы эксплуатируем этот сигнал, выучивая, какие стройматериалы часто идут в одной пачке.
Если для организаций вы такие же "пачки" сможете намайнить, то этот подход вполне можно будет реализовать. Но его качество всецело будет зависеть от качества "пачек".
источник

DD

David Dale in NLP_RU - Natural Language Processing & Text Mining
Я такое делал с названиями продуктов, входящих в один чек. Работало, потому что людям свойственно покупать продукты, сочетающиеся друг с другом. Типа пиво с воблой, или муку с разрыхлителем)
источник

וק

ולדימיר קון... in NLP_RU - Natural Language Processing & Text Mining
ну сейчас пытаемся генерировать такие данные , как позитивные так и негативные, поэтому пачки наверное синтетичесике есть, интересное направление и идея, думаю надо попробовать мне . спасибо! ps эвристики очень сложно писать и сопровождать
источник