나는 재미와 이익 모두를 위해 camelcamelcamel.com과 다소 비슷한 전자 계산기 제품 가격 비교 도구 (파이썬에서)를 만들고 있습니다. 검색 용어를 사용하여 여러 웹 사이트에서 수집 한 목록과 동일한 항목을 일치 시키려면 어려움에 직면하고 있습니다. 코사인 유사도을 사용하고 Levenshtein 님의 제품 일치 알고리즘을 사용하여 다양한 항목의 제목을 서로 비교하여 동일한 항목을 찾습니다.제품 가격 비교 도구 : 동일한 항목을 일치시키기가 어려움
cosine(product_0 * product_1) = 0.973328526785
cosine(product_0 * product_2) = 0.50251890763
다음과 같이
예를 들어, I는 아이템의 다음 항목 및 그 가격 값
{
product_0: {
title: "Apple MacBook Air MMGF2HN/A 13.3-inch Laptop (Core i5/8GB/128GB/Mac OS X/Integrated Graphics)",
price: "xxxx",
},
product_1: {
title: "Apple MacBook Air MMGF2HN/A 13.3-inch Laptop (Core i5/8GB/128GB/Mac OS X/Integrated Graphics) cover",
price: "xyzy"
},
product_2: {
title: "Apple Macbook Air MMGF2HNA Notebook (Intel Core i5- 8GB RAM- 128GB SSD- 33.78 cm(13.3)- OS X El Capitan) (Silver)"
price: "xxyy"
},
product_3: {
title: "....",
price: "...."
},
...
product_99: {
// product title and price
}
}
I 위 목록 코사인 유사도를 사용
(데이터)이, 값은그러나 실제로는 product_0
과 product_1
은 서로 다른 두 항목이지만 그 consine 유사도 값은 항목이 동일 함을 보여줍니다. product_0
과 product_2
은 같은 엔티티에 속하지만 코사인 값은 두 항목이 다른 것을 나타냅니다.
나는이 문제를 혼자서 해결하기 위해 애를 썼다. 나는 여기 stackoverflow에서 몇 가지 제안/조언을 구할 수 있다고 생각했다. 항목의 유사성을 맞추기 위해 코사인 유사성을 사용하여 올바른 방향으로 가고 있습니까? 그렇지 않다면 올바른 방향으로 나를 보내주십시오.
내 기본 아이디어는 동일한 항목, 즉 다양한 유사 제품 항목의 시맨틱 분석에 대한 가격 비교를하는 것입니다.
감사합니다.
그건 좋은 생각입니다. 아마도 코사인 유사성을 개별적으로 계산하는 대신 내 모델을 훈련해야합니다. 제안 해 주셔서 감사합니다. 제목에 설명을 추가 할 수도 있습니다. [doc2vec] (https://radimrehurek.com/gensim/models/doc2vec.html)을 봐야합니다. – Emacs