Tf-Idf, использующий косинусное сходство для сходства документов почти аналогичного предложения
Я использую tf-idf с косинусным сходством для вычисления сходства описания (предложения)
Строка ввода:
3/4x1/2x3/4 blk mi tee
Ниже приведены предложения, среди которых мне нужно найти предложение, похожее на строку ввода.
smith-cooper® 33rt1 reducing pipe tee 3/4 x 1/2 x 3/4 in npt 150 lb malleable iron black
smith-cooper® 33rt1 reducing pipe tee 1 x 1/2 x 3/4 in npt 150 lb malleable iron black
smith-cooper® 33rt1 reducing pipe tee 1-1/4 x 1 x 3/4 in npt 150 lb malleable iron black
smith-cooper® 33rt1 reducing pipe tee 1-1/2 x 3/4 x 1-1/2 in npt 150 lb malleable iron black
smith-cooper® 33rt1 reducing pipe tee 1-1/2 x 1-1/4 x 1 in npt 150 lb malleable iron black
smith-cooper® 33rt1 reducing pipe tee 2 x 2 x 3/4 in npt 150 lb malleable iron black
smith-cooper® 33rt1 reducing pipe tee 2 x 1-1/2 x 1-1/4 in npt 150 lb malleable iron black
smith-cooper® 33rt1 reducing pipe tee 2-1/2 x 2 x 2 in npt 150 lb malleable iron black
smith-cooper® 33rt1 reducing pipe tee 3 x 3 x 2 in npt 150 lb malleable iron black
Поскольку предложения почти одинаковы, я использую подход tf-idf, который дает низкий балл для слов, которые появляются во всем документе ( Idf), и дает больший балл уникальным словам, что помогает легче найти похожий документ.
Есть ли подход, который работает лучше, чем этот?
1 ответ
Конечно, есть и другие подходы, такие как скрытый семантический анализ, но то, что будет работать лучше всего, полностью зависит от ваших данных / корпуса. По моему опыту, TF-IDF является хорошей отправной точкой. Более сложные подходы могут не соответствовать TF-IDF или обеспечить незначительное улучшение по сравнению с их сложностью.
Что-то, с чем можно поэкспериментировать с использованием TF-IDF, - это n-граммы разных размеров и другие стратегии предварительной обработки для вашего корпуса. Учитывая ваш пример, вы можете не хотеть токенизировать свои слова на основе разбиения границ слов; может быть, вы хотите рассмотреть некоторые из этих компонентов предложения как один термин, например 3/4 x 1/2 x 3/4
как один термин. Сначала я бы поэкспериментировал с n-граммами разных размеров.
В вашем примере предложения идентичны, за исключением измерений / размеров. Если этот образец является репрезентативным, вы можете подумать, как измерить расстояния между этими измерениями.