2

현재 Im은 의미 (의미)에 따라 두 개의 텍스트를 비교하는 프로그램을 개발하고 있습니다. 문자열 거리를 비교하는 유용한 방법을 제공하는 lingpipe와 같은 라이브러리가 있지만 텍스트 유사성을 측정하는 가장 좋은 방법은 LSA라고 들었습니다.잠재 의미 분석을 사용하여 통과 유사성 측정

텍스트 유사성을 측정하기 위해 LSA를 사용하는 것과 혼란이 있습니다. 나는

1.Two passages are represented as two matrices X and Y. 

2.Using SVD, the matrices each are reduced to 3 different matrices 

3.And then the cosine distance is measured between the two matrices 

4. The cosine distance determines how similar they are 

난 그냥 알고 싶어 ... SVD에

A.이 매트릭스는 3 작은 행렬로 감소, LSA와 함께, 과정임을 이해합니다. 따라서이 작은 매트릭스 중 코사인 거리 측정에 사용되는 것은 어느 것입니까?

B. 일반적으로 코사인 거리가 벡터에 적용됩니다. 그래서 그것들을 행렬에 적용하는 경우, 행렬을 반복하고 cosine distance를 매 벡터마다 측정한다고 가정합니다. 그리고이 모든 거리의 평균은이 두 행렬 사이의 최종 코사인 거리로 가정됩니까?

나는 이것이 매우 틈새 주제이지만,이 2 가지 질문에 대한 약간의 조명을 희망한다고 생각한다. 감사합니다

답변

1

나는 당신이 잘못된 발로 시작했다고 생각합니다.

구절은 type x document 행렬로 표시됩니다. 즉, 행은 컬렉션의 '단어'를 나타냅니다. 열은 컬렉션의 단락을 나타냅니다.

(여기서 행렬에 TF-IDF 가중치 방식을 적용 할 수 있습니다.)

당신이 너무 세 행렬 (U, S, 및 V)로 같은 매트릭스 (M)을 분해 할 수 SVD를 사용하여

M = U * S * Vt를

S는 M의 특이 값의 대각 행렬이 감소하는 순서로 정렬된다. k 첫 번째 고유 값을 유지하고 다른 값을 0으로 설정하여 치수 축소를 수행 할 수 있습니다.

이제 이전 방정식을 사용하여 type x document 행렬을 다시 생성하고 행 벡터 (즉, 유형 유사성) 또는 열 벡터 (즉 통과 유사성) 사이의 코사인 유사성 계산을 시작할 수 있습니다.

+0

그런 경우 왜 원래 "유형 x 문서"매트릭스 사이에서 코사인 유사를하지 않습니까? 코퍼스 크기가 작 으면 SVD는 측정 정확도를 떨어 뜨릴 수 있습니까? – kype

+0

아니요. 형식 x 문서 행렬을 다시 생성 할 때 대량의 정보를 재배포하여 공통 단어가없는 문서가 유사한 코사인 유사성을 나타 내기 때문에 ... – Pierre

+0

전통적인 벡터 공간 모델 인 'type x document 매트릭스가 희박하다. 치수 감소를 적용한 후 행렬은 밀도가 높습니다. – Pierre