2012-01-03 2 views
0

문서 세트의 유사성에 따라 문장의 순위를 매기는 가장 좋은 방법을 알고 싶습니다.
예 :
1. 5 개의 문서가 있습니다.
2. 각 문서에는 많은 문장이 들어 있습니다.
3. 문서 1을 기본 문서로 사용합니다. 즉, 출력에는이 문서의 문장이 포함됩니다.
4. 출력 ... 사전에
문서 세트의 유사성을 기준으로 문장의 순위를 매기는 가장 좋은 방법

감사합니다 FIRST 순위와 그 문장은 다음 3 다음 2 모두 5 개 문서의 가장 유사한 문장 같은 방법으로 위 문장의 목록이어야합니다.

답변

5

내가 텍스트 문서 일치의 기초를 다룰 것이다 ...

대부분의 문서 유사도를 측정 오히려 문장 구조보다 단어를 기준으로 작동합니다. 첫 번째 단계는 일반적으로 stemming입니다. 단어는 그 근본 형태로 축소되므로 다른 형태의 유사한 단어 (예 : "수영"과 "수영"이 일치합니다.

또한 노이즈가 발생하지 않도록 일치하는 단어를 필터링 할 수 있습니다. 특히 "the"와 "a"의 발생을 무시할 수 있습니다. 실제로 누락 될 수있는 연결사와 대명사가 많으므로 일반적으로 이러한 단어의 목록이 길어집니다.이 단어는 "stop list"입니다.

또한 맹세 한 단어 나 인종 차별적 인 단어와 같이 일치하지 않기를 바라는 나쁜 단어가있을 수 있습니다. 그래서 당신은 그 안에 "나쁜 목록"이라는 단어를 포함한 다른 제외 목록을 가질 수 있습니다.

이제 문서에서 비슷한 단어를 셀 수 있습니다. 질문은 전체 문서 유사성을 측정하는 방법이됩니다. 유사한 단어를 입력으로 사용하고 "유사성"값을 제공하는 점수 함수를 만들어야합니다. 같은 함수가 두 문서에 여러 번 나타나는 경우 이러한 함수는 높은 가치를 제공해야합니다. 또한, 이러한 일치는 총 단어 빈도로 가중치가 지정되어 흔하지 않은 단어가 일치 할 때 더 많은 통계 가중치가 부여됩니다.

Apache Lucene은 Java로 작성된 오픈 소스 검색 엔진으로이 단계에 대한 실질적인 정보를 제공합니다. - 문서 을 "

http://lucene.apache.org/java/2_9_0/api/all/org/apache/lucene/search/Similarity.html

루씬 부울 모델 (BM)를 결합 정보 검색의 정보 검색의 벡터 공간 모델 (VSM)와 예를 들어, 여기에 어떻게 체중 쿼리 유사성에 대한 정보입니다 BM에 의해 "승인 됨"은 VSM에 의해 채점됩니다.

이 모든 것은 실제로 문서에서 단어를 검색하는 것과 같습니다. 일치하는 문장을 지정했습니다. 대부분의 사람들의 목적을 위해, 일치하는 단어는 실제로 똑같은 것을 의미하는 엄청나게 다양한 문장 구조를 가질 수 있기 때문에 더욱 유용합니다. 유사성에 대한 가장 유용한 정보는 단어에 불과합니다. 필자는 문서 일치에 대해 이야기했지만, 문장은 매우 작은 문서 일뿐입니다.

이제는 실제 명사와 동사를 신경 쓰지 않고 문법 구성에만 관심이 있다면 다른 접근 방법이 필요합니다 ...

먼저 언어를 해석하고 해당 문장을 나타내는 데이터 구조 (일반적으로 트리)를 작성하려면 link grammar parser이 필요합니다. 그런 다음 정확하지 않은 그래프 일치를 수행해야합니다. 이것은 어려운 문제이지만 트리에서 다항식으로이를 수행하는 알고리즘이 있습니다.

+0

답변 해 주셔서 대단히 감사합니다. 이제 진행 방법에 대한 명확한 아이디어가 있습니다. –

+0

매우 흥미로운 게시물 – Alex

+0

위대한 답변 Tim. 물론 +1. –

0

각 단어에 대해 soundex을 계산 한 다음 soundexes 빈도에 따라 문서를 비교할 수 있습니다.

+0

답변 해 주셔서 감사합니다. –

0

Tim 님의 개요는 훌륭합니다. 특정 용도에 맞게 추가하고 싶습니다. Doc 1의 문장을 문서로 취급하고 나머지 4 개의 문서 각각과의 유사성을 비교할 수 있습니다. 이렇게하면 구문 분석 등의 경로를 사용하지 않고 문장 하나당 빠른 집계 유사성 측정 값을 얻을 수 있습니다.

관련 문제