2010-02-02 2 views
6

우리의 큰 사이트 중 하나는 사용자가 자신의 직원이 개인적으로 평가 한 웹 사이트 소유자에게 질문을 보낼 수있는 섹션이 있습니다. 같은 질문이 자주 나오는 경우이 특정 질문을 Faq에 추가 할 수 있습니다.'관련 질문'엔진을 만드는 방법은 무엇입니까?

하루에 수십 개의 비슷한 질문을받지 않기 위해이 사이트의 '관련 질문'과 유사한 기능을 제공하고자합니다 (스택 오버플로).

이런 종류의 기능을 구현하는 데는 어떤 방법이 있습니까? 필자는 어떻게 든 질문을 평가하고 질문에있는 질문과 비교해야한다는 것을 알고 있지만 어떻게 비교가 이루어 집니까? 키워드가 추출 되었습니까? 그렇다면 어떻게됩니까?

이 사이트를 언급할만한 가치가있을 수 있습니다 LAMP 스택에 내장되어 있으므로 이러한 기술을 사용할 수 있습니다.

감사합니다.

+0

중복 가능성에 키워드 추출기 웹 서비스를 가지고 [유래의 관련 질문 (http://stackoverflow.com/questions/393505/stackoverflows-related-questions) –

답변

3

어떻게 스택 오버플로가 작동하는지 모르겠지만 관련 질문을 찾기 위해 태그를 사용한다고 생각합니다. 예를 들어,이 질문에 관련된 가장 중요한 질문은 모두 recommendation-engine입니다. 희귀 한 태그의 일치가 공통 태그의 일치보다 많은 것으로 추측됩니다.

term frequency–inverse document frequency을보고 싶을 수도 있습니다.

+2

그리고 교차로의 아마 크기를 태그 집합 사이. – jensgram

4

처음부터 이런 식으로 자신을 뭔가를 구축하고 싶었을, 당신은 사용하십시오 TF/IDF라는 용어 : 용어 빈도/문서 빈도. 즉, 엄청나게 단순화하기 위해 전체적으로 코퍼스에서 흔치 않은 단어를 찾아 해당 단어가 포함 된 문서를 찾습니다.

다른 말로하면 "나는 코끼리를 사고 싶다"라는 단어가있는 쿼리를 입력하면 쿼리의 단어 중 "코끼리"라는 단어가 아마도 가장 일반적인 단어 일 것입니다. 아마도 "Buy"가 다음 일 것입니다. 따라서 "코끼리"라는 단어가 어느 정도 포함되어 있는지, "구매"라는 단어가 얼마나 많이 포함되어 있는지에 따라 문서 (귀하의 경우 이전 검색어)를 순위를 매기십시오. "I", "to"및 "an"이라는 단어는 아마도 정지 목록에 있으므로, 모두 무시할 것입니다. 일치하는 단어가 몇 개인 지 (각 문안의 이전 검색어) (일치하지 않는 단어의 경우 가중치가 높습니다. 즉, 흔하지 않은 단어의 경우 높은 가중치)가 가장 위에 표시됩니다.

나는 이것을 단순화 했으므로이를 올바르게 이해하려면이 내용을 읽어야하지만, 간단한 방법으로 구현하는 것이 그리 복잡하지는 않습니다.

http://en.wikipedia.org/wiki/Tf%E2%80%93idf

1

당신이 LAMP 스택에서 작업을 감안할 때, 그때 당신이 MySQL's Fulltext search functions를 잘 활용할 수 있어야한다 : 위키 백과 페이지는 시작하기에 좋은 장소가 될 수 있습니다. 나는 TF-IDF 교장 선생님들과 함께 일한다고 믿으며, 당신이 원하는 '관련 질문들'을 쉽게 만들 수 있어야합니다.

1

O'Reilly 위대한 책 - Programming Collective Intelligence - 그룹 검색, 권장 사항 및 기타 유사한 주제를 다루고 있습니다. 메모리에있는 예제는 Perl로되어 있지만 PHP 배경에서 쉽게 이해할 수 있다는 것을 알았고 몇 시간 만에 여러분이 겪은 것과 비슷한 것을 만들었습니다.

야후의 http://developer.yahoo.com/search/content/V1/termExtraction.html

+0

O'reilly의 * P.C.I. * 미리보기에서 찾고있는 샘플은 Python으로되어 있습니다. – isomorphismes