"관련" 정도 측정 알고리즘을 구현하는 방법은 무엇입니까?
-
09-06-2019 - |
문제
오늘 오전에 질문을 하려고 하다가 Stackoverflow의 놀라운 기능을 접하게 되었습니다.질문 제목을 작성했을 때 stackoverflow가 여러 관련 질문을 제안했고 이미 비슷한 질문이 두 개 있다는 것을 알게 되었습니다.정말 놀라웠어요!
그러다가 그런 기능을 어떻게 구현할까 고민하기 시작했습니다.관련성에 따라 질문을 정렬하는 방법은 다음과 같습니다.
- 단어가 더 많은 질문이 새로운 질문과 일치합니다.
- 일치 횟수가 동일하면 단어 순서가 고려됩니다.
- 제목에 나타나는 단어는 관련성이 높습니다
그것은 단순한 작업 흐름일까요, 아니면 복잡한 점수 알고리즘일까요?아마도 기억력을 높이기 위해 어간을 따는 것 아닐까요?이 기능을 구현하는 라이브러리가 있습니까?다른 어떤 측면을 고려하시겠습니까?어쩌면 Jeff가 스스로 대답할 수도 있을 것입니다!Stackoverflow에서 이것을 어떻게 구현했나요?:)
해결책
이러한 알고리즘을 구현하는 방법 중 하나는 다음 단계를 사용하여 '관련성' 가중치 요소를 할당하는 경험적 함수에 따라 질문의 순위를 지정하는 것입니다.
- '새' 질문에 노이즈 필터를 적용하여 다음과 같은 다수의 개체에서 공통적인 단어를 제거합니다.'the', 'and', 'or' 등.
- 웹사이트에 이미 게시된 질문 세트의 단어와 일치하는 '새' 질문에 포함된 단어 수를 가져옵니다.[ㅏ]
- '새' 질문에 있는 단어와 사용 가능한 단어 사이의 태그 일치 수를 가져옵니다.[비]
- [A] 및 [B]를 기반으로 '관련성 가중치'를 'x[A] + y[B]'로 계산합니다. 여기서 x와 y는 가중치 승수입니다(태깅이 더 관련성이 높으므로 [B]에 더 높은 가중치 승수를 할당합니다) 단순 단어 검색보다)
- '관련성 가중치'가 가장 높은 상위 5개 질문을 가져옵니다.
최적의 결과를 얻으려면 휴리스틱을 조정해야 할 수도 있지만 작동해야 합니다.
다른 팁
귀하의 질문은 다음과 유사합니다 이 하나, 여기에는 몇 가지 추가 답변이 있습니다.
StackOverflow가 어느 시점에는 오픈소스로 공개되지 않을까요?그렇다면 그들이 그곳에서 어떻게 했는지 언제든지 알 수 있습니다.
업데이트:그들이 말하는 것 같습니다 ~할 것 같다 오픈 소스하세요.나는 그들이 그러기를 바란다.
제휴하지 않습니다 StackOverflow