2012-02-14 5 views
2

Gmail의 과 비슷한 것을하고 싶습니다. 내 블로그에 " 제안을 포함 시키십시오. 그러나 태그를 사용하는 것이 좋습니다.Gmail에서 '포함 고려'기능을 어떻게 구현합니까?

내가 저장하는 태그의 생각은 다음과 같이 설정합니다 three tables

나는 다음과 같은 알고리즘 생각 :

//a blog post is published 
//it has the tags "A", "B" & "C" : 
if the tag set "A,B,C" doesn't exist 
    create it 
else 
    add 1 to "number of times used" 

하고, 태그를 제안 :

//a blog post is being written. 
//the author includes the tags "A" and "C" 
//which tags should I suggest ? 
find all the tags sets that contain "A" and "C" 
    among them, find the one with the highest "number of times used" 
    suggest the tags of the set not already picked (A & C) 

가 있는가 이 작업을 수행하는 더 좋고/더 똑똑한 방법? 데이터베이스 모델은 어떻습니까? "A & C가 포함 된 세트" 같은 검색이 너무 느리지 않도록 최적화 할 수 있습니까?

+1

"암시 적 사회 그래프를 사용하여 친구에게 제안"http://research.google.com/pubs/pub36371.html –

+0

와우, 아주 좋음 : D – Manu

답변

1

검색 모델 문제 :
귀하의 모델은 매우 자주 태그는 항상 제안 된 사람이 될 가능성이 있기 때문에 조금 너무 한 쌍의 A, C에 더 관련 태그가있는 경우에도, 나에게 단순화 된 것 같다.

당신은 아마 그들은 또한 "쿼리"에 연결되어있는 경우 드문 용어가 일반적으로 A and B와 함께 사용하는 경우 때문에, [여기에 쿼리가 A and B이다], 희귀 조건에 후원을주는 tf-idf 모델을 재질 - 구글 번역 참고해야 - 그것은 아마도 그들과 매우 관련이 있습니다.

아이디어가 간단합니다. 태그를 자주 사용하는 경우 A and B - 부스트하세요. 용어 드문 [이 태그의 총 용도 번호]이면
또한 [TF] - 그것을 부스트를 제공 [IDF]
다음은 각 태그가 결합 된 TF-IDF 점수

것 대한 "스코어" 성능 문제 :
이 작업을 위해 concinder를 사용하여 검색 속도를 높이려면 inverted index을 생성하십시오.
자바를 사용하는 경우 apache lucene이 도움이되는 성숙한 라이브러리입니다.

+0

tf * idf가 멋지게 보입니다. – Manu

1

일반적인 데이터 연관 마이닝 및 권장 문제라고 생각합니다. 데이터 마이닝을위한 Apriori 알고리즘을 시도하고 TOP N 권장 사항을 만들 수 있습니다.

귀하의 솔루션은 제 선택 사항에서는 작동하지만 포괄적이지는 않습니다. 세트 "A, B"와 세트 "A, B, C"는 독립 세트가 아닙니다.

관련 문제