문제

오늘 오전에 질문을 하려고 하다가 Stackoverflow의 놀라운 기능을 접하게 되었습니다.질문 제목을 작성했을 때 stackoverflow가 여러 관련 질문을 제안했고 이미 비슷한 질문이 두 개 있다는 것을 알게 되었습니다.정말 놀라웠어요!

그러다가 그런 기능을 어떻게 구현할까 고민하기 시작했습니다.관련성에 따라 질문을 정렬하는 방법은 다음과 같습니다.

  1. 단어가 더 많은 질문이 새로운 질문과 일치합니다.
  2. 일치 횟수가 동일하면 단어 순서가 고려됩니다.
  3. 제목에 나타나는 단어는 관련성이 높습니다

그것은 단순한 작업 흐름일까요, 아니면 복잡한 점수 알고리즘일까요?아마도 기억력을 높이기 위해 어간을 따는 것 아닐까요?이 기능을 구현하는 라이브러리가 있습니까?다른 어떤 측면을 고려하시겠습니까?어쩌면 Jeff가 스스로 대답할 수도 있을 것입니다!Stackoverflow에서 이것을 어떻게 구현했나요?:)

도움이 되었습니까?

해결책

이러한 알고리즘을 구현하는 방법 중 하나는 다음 단계를 사용하여 '관련성' 가중치 요소를 할당하는 경험적 함수에 따라 질문의 순위를 지정하는 것입니다.

  1. '새' 질문에 노이즈 필터를 적용하여 다음과 같은 다수의 개체에서 공통적인 단어를 제거합니다.'the', 'and', 'or' 등.
  2. 웹사이트에 이미 게시된 질문 세트의 단어와 일치하는 '새' 질문에 포함된 단어 수를 가져옵니다.[ㅏ]
  3. '새' 질문에 있는 단어와 사용 가능한 단어 사이의 태그 일치 수를 가져옵니다.[비]
  4. [A] 및 [B]를 기반으로 '관련성 가중치'를 'x[A] + y[B]'로 계산합니다. 여기서 x와 y는 가중치 승수입니다(태깅이 더 관련성이 높으므로 [B]에 더 높은 가중치 승수를 할당합니다) 단순 단어 검색보다)
  5. '관련성 가중치'가 가장 높은 상위 5개 질문을 가져옵니다.

최적의 결과를 얻으려면 휴리스틱을 조정해야 할 수도 있지만 작동해야 합니다.

다른 팁

귀하의 질문은 다음과 유사합니다 이 하나, 여기에는 몇 가지 추가 답변이 있습니다.

@마르시오

죄송합니다. 여기서 제안할 수 있는 직접적인 API 참조가 무엇인지 알지 못하며 Lucene을 사용해 본 적이 없습니다.

그러나 Google 데스크톱은 관련 검색결과의 순위를 매기고 제안하기 위해 Query API를 사용한다는 것을 알고 있습니다.API에 대한 자세한 내용을 확인할 수 있습니다. 여기.

아마도 다른 사람들이 당신에게 차임하고 안내할 수도 있습니다.

StackOverflow가 어느 시점에는 오픈소스로 공개되지 않을까요?그렇다면 그들이 그곳에서 어떻게 했는지 언제든지 알 수 있습니다.

업데이트:그들이 말하는 것 같습니다 ~할 것 같다 오픈 소스하세요.나는 그들이 그러기를 바란다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top