2017-05-19 5 views
0

고객이 다양한 분류법 용어로 태그가 지정된 항목을 구매하는 사이트가 있습니다. 내가 만든 구매와 관련된 태그를 고려하여 동일한 상품에 관심이있는 고객 그룹을 만들고 싶습니다. 그룹을 만들려고 할 때마다 각 고객의 태그 목록을 비교하는 대신 어떤 유형의 채점을 사용하여 문제를 해결할 수 있는지 궁금합니다.점수 산정을 사용하여 고객 찾기

나는 그것에 대해 생각하고있는 방식으로 각 태그에는 고유 번호가 할당되어 있습니다. 채점 작업을 수행 할 때 특정 태그 집합을 결합해야만 달성 할 수있는 숫자가 렌더링됩니다.

나는 고객의 "점수"를 주기적으로 업데이트하여 관련성을 유지할 수있었습니다.

올바른 경로에 있습니까? 어떤 아이디어?

+0

점수 란 무엇을 의미합니까? –

+0

다음은 의미하는 예입니다. 그러나이 방법으로는 작동하지 않습니다. 빨간색 = 1, 파란색 = 2, 녹색 = 3, 노란색 = 4이면 모든 조합의 합계를 볼 수 있습니다. 문제는 그것이 유일하지 않다는 것입니다. 적색과 청색은 녹색이고 녹색 또한 3입니다. 결과를 1 개의 고유 번호 (점수)로 표시 할 수 있다면 각 개별 태그 대신 점수를 비교할 수 있습니다. – Ward

+0

목록이 아닌 합계가 필요한 이유는 무엇입니까? –

답변

1

문제에 대한 설명은 클러스터링 또는 권장 문제와 훨씬 비슷합니다. 이러한 태그가 클러스터링이나 권장 사항을 사용하기에 충분한 정보인지 확실하지 않습니다.

당신의 생각은 나에게 유망하지 않습니다. 왜냐하면 그 숫자가 신중하게 선택되지 않으면 여러 가지 방법으로 같은 금액을 얻을 수 있기 때문입니다.

내가 당신을 제안 무엇 : 각 사용자에 대한 태그를 저장할 수

. 일부 사용자가 새 항목을 구입하면 해당 항목의 태그를 사용자의 태그에 추가합니다. 정기적으로 사용자 프로필을 업데이트합니다. 우리가 사용자 A와 B를 가지고 있다고 가정 해 봅시다. 업데이트 시점에서 A와 B 사이의 유사도가 특정 임계 값보다 크면 사용자 간 관계를 추가하여 두 사용자가 유사 함을 나타냅니다. 그것이 더 낮은 경우 관계를 제거합니다 (이전에 관계가 있었던 경우). 유사성은 공통 태그 또는 num_common_tags/num_of_tags_assigned_either_in_A_or_B 일 수 있습니다.

나중에 특정 태그 집합을 가진 사용자를 얻으려면 어떤 사용자에게 해당 태그 집합이 있는지 확인하는 쿼리 만 수행하면됩니다. 또한 해당 사용자와 연결된 사용자를 검색하여 해당 사용자와 유사한 사용자를 확인할 수 있습니다.

0

각 태그에 고유 한 2의 거듭 제곱을 할당하면 태그에 해당하는 값을 합계 할 수 있으며 정확히 동일한 태그 집합을 가진 사용자는 동일한 값을 갖게됩니다.

red = 1 
green = 2 
blue = 4 
yellow = 8 

예를 들어, { red, blue } 세트가 고객 만이 본질적 세트를 나타내는 비트 맵을 사용하는 제

의 값을 가질 것이다. 단점은 태그가 많으면 정수가 빨리 소진된다는 것입니다. 예를 들어, (부호없는) 정수 유형이 4 바이트 인 경우 32 개의 태그로 제한됩니다. 훨씬 더 큰 비트셋을 표현할 수있는 라이브러리와 클래스가 있지만, 그 시점에서 다른 접근법을 고려해 볼 가치가 있습니다.

이 접근법의 또 다른 문제점은 유사하지만 동일하지 않은 구성원을 클러스터하는 데 도움이되지 않는다는 것입니다.

+0

와우. 이걸 다 가져 가자. – Ward

관련 문제