2010-01-28 4 views
15

우리는 종종 '관련 항목'을 봅니다. 예를 들어 블로그에서 우리는 관련 게시물을 가지고 있습니다. 우리는 관련 서적을 가지고 있습니다. 제 질문은 어떻게 이러한 관련성을 수집합니까? 태그 일 뿐인 경우 동일한 태그가없는 관련 항목이 자주 표시됩니다. 예를 들어 '분홍색'을 검색 할 때 관련 항목에 '보라색'태그가있을 수 있습니다.PHP에서 "관련 항목"을 찾는 방법

누구든지 아이디어가 있으십니까?

+0

다음은 관련 질문입니다. http://stackoverflow.com/questions/18019976/mysql-php-find-similar-related-items-by-tag-taxonomy –

답변

29

이 두 항목의 유사성을 계산하는 방법에는 여러 가지가 있지만 간단한 방법을 들어 보자 Jaccard Coefficient를보십시오. 인

http://en.wikipedia.org/wiki/Jaccard_index

: J (a, b) = 교차 (a, b)/유니온 (a, b) 여기서

So lets say you want to compute the coefficient of two items: 

Item A, which has the tags "books, school, pencil, textbook, reading" 
Item B, which has the tags "books, reading, autobiography" 

intersection(A,B) = books, reading 
union(A,B) = books, school, pencil, textbook, reading, autobiography 

so J(a,b) = 2/6 = .333 

So the most related item to A would be the item which results in the highest Jaccard Coefficient when paired with A. 
1

그것은이 단락에 나오는 각 작품의 평균 수 있습니다 예를 들어, 태그보다 더 될 수 있습니다 다음, 제목 등

그것은 또한 "도 구입이 책을 구입 한 사람들"을 기반으로 할 수 있습니다
0

상관없이

방법, 당신이 당신의 항목 사이의 연결의 일부 도르 트가 필요합니다, 그들은 대부분 인간

에 의해 이루어집니다
4

는 몇 가지 방법이있다 :

  1. 수동으로 연결. 필드가 item_idrelated_item_id 인 테이블을 올린 다음 인터페이스를 만들어 연결을 삽입하십시오. 관련이 있지만 유사하지 않거나 동일한 카테고리/태그 (또는 분류되지 않은 입력 테이블)에 속하지 않는 두 항목을 관련시키는 데 유용합니다. 예 : 목욕통 및 고무 오리
  2. 같은 카테고리에 속하거나 유사한 태그가있는 일부 항목을 올립니다. 아이디어는 동일한 항목에 속하기 때문에 해당 항목이 다소 관련이 있어야한다는 것입니다. 예 : LCD 모니터를 보는 페이지에서 "관련 항목"섹션에 임의의 LCD 모니터 (동일한 가격대/제조업체/해상도)가 있습니다.
  3. 현재 항목의 이름 (및 설명)을 테이블의 다른 항목과 비교하여 텍스트 검색을 수행합니다. 당신은 아이디어를 얻습니다.
1

저는 응용 프로그램에 더 많은 기능을 추가하는 데 ontology을 사용한다고 말하고 싶습니다.

2

이 태그를 기준으로 관련 항목의 간단한 목록을 얻으려면, 기본 솔루션은 다음과 같이 진행됩니다

3 표, 하나는 항목이 있고 하나는 태그가 있고 다른 하나는 연결이 있습니다. 연결 테이블은 나머지 테이블의 각 ID에 대해 하나씩 두 개의 열로 구성됩니다. 연결 테이블의 항목은 각각의 ID를 행으로 태그를 항목과 연결합니다.

이제 관련 항목의 목록을 가져옵니다.

하나 이상의 태그를 공유하는 모든 항목을 원래 항목과 함께 가져옵니다. 항목과 함께 태그를 가져온 다음 간단한 평가 메커니즘을 사용하여 어떤 항목이 가장 많은 태그를 원래 항목과 공유하는지 결정하십시오. 각 태그는 관계 관련성을 1만큼 증가시킵니다.

태그 습관에 따라 대용량 태그가 관련성을 섞지 않도록 카운터 메커니즘을 추가하는 것이 현명 할 수 있습니다. 이것을 달성하기 위해 어플라이언스의 특정 임계 값 아래의 태그에 더 많은 가중치를 부여 할 수 있습니다. 일반적으로 나를 위해 잘 작동하는 임계 값은 총 기기 수를 나타내는 total_number_of_tag_appliances/total_number_of_tags입니다. 태그 appliance-count가 평균보다 작은 경우 관계 관련성이 두 배 증가합니다.

관련 문제