2008-10-21 9 views
3

TF-IDF (term frequency - inverse document frequency)은 정보 검색의 주요 요소입니다. 그것은 적절한 모델이 아니며, 새로운 용어가 코퍼스에 도입되었을 때 무너지는 것 같습니다. 쿼리 나 새 문서에 새로운 용어가있을 때, 특히 빈도가 높은 경우 사람들이 어떻게 처리합니까? 전통적인 코사인 검색에서는 전체 일치에 영향을 미치지 않습니다.tf-idf 및 이전에는 보이지 않는 용어

+0

피터 노르 비그 (Peter Norvig)와 [관련 페이스 북의 기술 토론] (http://www.facebook.com/video/video.php?v=644326502463)이 이에 대해 논의했다. 세분화 (약 5:30) 부분에서 그는 실제로 "이 단어를 놓친다면 약간의 속임수를 써야합니다. 이전에 보지 못한 단어라면" . 이것은 그가 트릭이 무엇인지 알려주지 않기 때문에 완전히 알려지지 않은 문제가있는 것으로 알려진 문제점을 암시합니다. – hippietrail

답변

2

어, 아니, 분해되지 않습니다.

두 개의 문서, "족제비 염소"및 B "치즈 고퍼"가 있다고 가정 해보십시오.

A [1,1,0,0]
B는 [0,0,1,1]

을 우리가 할당 한 경우 : 우리가 실제로 벡터 등이 대표, 그들은 뭔가를 보일 수 있습니다 인덱스 파일에있는 이러한 벡터는 새로운 용어를 추가 할 때 문제가 발생합니다. 그러나 그것의 속임수는 벡터가 존재하지 않는 입니다.. 열쇠는 inverted index입니다.

코사인 일치에 영향을 미치지 않는 새로운 용어는 무엇을 의미 하느냐에 따라 사실 일 수 있습니다. "marmoset kungfu"라는 검색어로 (A, B)의 코퍼스를 검색하면 마모 셋이나 쿵후도 코퍼스에 존재하지 않습니다. 따라서 내 쿼리를 나타내는 벡터는 컬렉션의 모든 문서에 직각이되고 잘못된 코사인 유사성 점수를 얻습니다. 하지만 조건이 일치하지 않는다고 생각하면 상당히 합리적인 것처럼 보입니다.

1

"분해하라"라는 말을 할 때 원래 용어로 정의 된 벡터 공간에 표현이 없기 때문에 새로운 용어가 유사성 측정에 아무런 영향을 미치지 않는다는 것을 의미한다고 생각합니다.

이 평활화 문제를 처리하는 한 가지 방법은 어휘를 작은 어휘로 고정하고 특정 임계 값보다 희귀 한 모든 단어를 특수한 _UNKNOWN_ 단어로 취급하는 것을 고려하는 것입니다.

그러나 나는 "붕괴"에 대한 귀하의 정의가 매우 명확하다고 생각하지 않습니다. 그게 무슨 뜻인지 분명히 해줄 수 있니? 문제를 해결할 수 있다면 문제 해결 방법을 논의 할 수 있습니다.