
Возвращение короля текстов или как 5 аналитиков решали NLP 🤴
История о том, как я с командой участвовал в соревнованиях по Data Science (NLP). Расскажу о трудностях и о том, к чему пришли.
Относительно недавно я начал ботать DL / ML и решил, а почему бы не поучаствовать в NLP. Раскидали задачи и начали активно работать.
Основная задача - алгоритм ранжирования комментариев под текстом публикации.
Изначально, я думал, что речь идет по RecSys, как с карточками на маркетплейсах, когда вам предлагают похожие товары, но пока не будем про это😢
Первый этап: EDA
Похоже на танцы с бубном и поиск зависимостей в данных. Было выделено несколько фич: количество стоп-слов, слов, предложений, читабельность, тональность и кучу других.
Какие инсайты получили?
Длина текста, определенная тональность и наличие других символов определяют Score на размеченных данных. Дисбаланса классов не было, к over_sampling не приходили🤨
Второй этап: Обработка текста
Стеминг, лемматизация, создание эмбедингов (Word2Vec, TF-IDF, BERT, CountVectorizer), удаление знаков препинания (прикреплю классный слайд с презентации, который нашел на просторах GitHub). «Мешок слов» не использовали, потому что получается матрица, которая сжирает 1 терабайт памяти😢
Третий этап:
Перебор сочетаний с Logistic Regression, KNN, RandomForest, GradientBoosting. Самый лучший NDCG Score = 0,92. При обработке через BERT, возможно, получили бы результат лучше. Имеем, что имеем, ждём результатов🍷
Накидайте реакций, а я накачу пост про Deep Learning, а то немного выбился из режима🗒
История о том, как я с командой участвовал в соревнованиях по Data Science (NLP). Расскажу о трудностях и о том, к чему пришли.
Относительно недавно я начал ботать DL / ML и решил, а почему бы не поучаствовать в NLP. Раскидали задачи и начали активно работать.
Основная задача - алгоритм ранжирования комментариев под текстом публикации.
Изначально, я думал, что речь идет по RecSys, как с карточками на маркетплейсах, когда вам предлагают похожие товары, но пока не будем про это
Первый этап: EDA
Похоже на танцы с бубном и поиск зависимостей в данных. Было выделено несколько фич: количество стоп-слов, слов, предложений, читабельность, тональность и кучу других.
Какие инсайты получили?
Длина текста, определенная тональность и наличие других символов определяют Score на размеченных данных. Дисбаланса классов не было, к over_sampling не приходили
Второй этап: Обработка текста
Стеминг, лемматизация, создание эмбедингов (Word2Vec, TF-IDF, BERT, CountVectorizer), удаление знаков препинания (прикреплю классный слайд с презентации, который нашел на просторах GitHub). «Мешок слов» не использовали, потому что получается матрица, которая сжирает 1 терабайт памяти
Третий этап:
Перебор сочетаний с Logistic Regression, KNN, RandomForest, GradientBoosting. Самый лучший NDCG Score = 0,92. При обработке через BERT, возможно, получили бы результат лучше. Имеем, что имеем, ждём результатов
Накидайте реакций, а я накачу пост про Deep Learning, а то немного выбился из режима