I'm trying to use TF-IDF 문서를 범주별로 정렬 할 수 있습니다. 나는 일부 문서의 tf_idf을 계산하지만 지금은 내가 역 추적 말 얻으이 문서의 두 사이의 코사인 유사도를 계산하려고했습니다코사인 길이가 다른 벡터의 유사성?
#len(u)==201, len(v)==246
cosine_distance(u, v)
ValueError: objects are not aligned
#this works though:
cosine_distance(u[:200], v[:200])
>> 0.52230249969265641
이 벡터를 얇게입니다 그래서 렌 (U) == len (v) 올바른 접근법? 나는 코사인 유사성이 다른 길이의 벡터들과 작동한다고 생각할 것이다.
나는 this function을 사용하고 있습니다 :
def cosine_distance(u, v):
"""
Returns the cosine of the angle between vectors v and u. This is equal to
u.v/|u||v|.
"""
return numpy.dot(u, v)/(math.sqrt(numpy.dot(u, u)) * math.sqrt(numpy.dot(v, v)))
는 또한 - 중요한 벡터의 tf_idf 값의 순서인가? 그들은 정렬되어야합니까 - 아니면이 계산에 중요하지 않습니까?
나는 cosine_distance 함수에 전달하고있어 벡터는 tf_idf 값의 파이썬 목록입니다. V [5] == [0.0060830126968545294, 0.00048241996565891193, 0.0020712248617478965, 0.0110036199241575, 0.0110036199241575] 당신은 순서가 중요한 말 - 벡터 (최소 ->의 가장 큰 질서의 내용을 정렬하는 올바른 방법이 무엇인지 문서의 단어?) – erikcw
단어에 일부 전역 순서를 지정해야합니다. doc2에서 foo 앞에 bar가 나타나면 bar의 tf_idf 값은 여전히 첫 번째 항목이어야합니다. – Pace