문제

유사성을 결정하기 위해 멀티 샤이프 문서를 두 번째 문서와 비교 해야하는 프로젝트가 있습니다. 문제는이 작업을 수행하는 방법, 접근 방식이 존재하는 방법 또는 라이브러리를 사용할 수있는 라이브러리인지 전혀 모른다는 것입니다.

내 첫 번째 질문은 ... 비슷한 점은 무엇입니까? 일치하는 단어의 수, 일치하는 연속 단어의 수는?

각 문서를 단어와 위치와 함께 배열에 넣은 다음 비교하는 파서를 작성하는 것을 볼 수 있습니다.

나는 이전 질문을 보았다텍스트 분석을위한 알고리즘 또는 라이브러리, 구체적으로 : 지배적 인 단어, 텍스트를 통한 문구 및 텍스트 모음

그러나, 그것은 내가 시도하는 것과 다소 다른 것 같습니다.

사람들이 가질 수있는 옵션이나 포인터는 훌륭 할 것입니다!

도움이 되었습니까?

해결책

"비슷한 점"우리는 당신에게 말할 수 없습니다. 이것은 프로젝트의 기본 요구 사항에 대한 진술입니다. 당신이 이것을 모른다면, 그것은 어떻게 그것을하는지에 대해 생각하기가 조금이라도 곧 그것을 생각합니다.

"왜"라는 질문을하는 것이 도움이 될 수 있습니다. 유사성 측정은 무엇을 사용합니까?

예를 들어, 표절을 감지하는 것이 목적이 두 가지 에세이가 동일한 주제에 대해 이야기하고 비슷한 참고 문헌이 도움이되지 않기 때문에 유사하다는 것을 감지하는 것입니다. 전체 수업은 비슷한 에세이를 제출할 것입니다! 그래서 당신은 정확한 문장과 문구를 일치시키는 것을 찾고있을 것입니다.

대신 일부 문서에 대한 카탈로그를 작성하려는 경우 키워드를 검색 할 것입니다. 두 개의 문서는 certian 길이에 걸쳐 같은 단어의 어휘를 사용하거나 유사한 적절한 명사를 사용하는 경우 비슷합니다.

이 두 예는 비슷한 의미가 무엇인지 이해할 때까지 많은 조언을하기가 어렵다는 것을 보여주기위한 것입니다.

그러나 다음은 가능한 접근법이 있습니다. 추출기와 비교기라는 두 가지 주요 사항을 쓸 수 있습니다.

추출기의 임무는 문서의 본질 인 청크의 세트 (또는 목록, 주문해야합니까?)를 제작하는 것입니다. 이것은 개별 단어 나 문장 및 문구 일 수 있습니다.

비교기의 임무는 두 문서 "에센스"의 유사성을 평가하는 것입니다.

간단한 예 : 문서에서 8 글자 이상의 단어 목록을 추출하십시오. 그러면 비교가 다른 문서에 75% 이상이 포함 된 경우 두 문서가 비슷할 수 있습니다.

다른 팁

간단한 접근법 중 하나는 문서 텍스트를 함께 연결 한 다음 압축하는 것입니다. 압축 비율은 얼마나 유사한지를 알려줄 수 있습니다.

당신이 사용할 수있는 한 가지 접근법을 Shingling이라고합니다. 이 과정에는 두 문서 모두에서 모든 단어를 토큰 화하는 것이 포함됩니다.

D1 = {"An", "Example", "Document", "To", "Show", "Shingling"}
D2 = {"Another", "Example", "Document", "To", "Show", "Shingling", "but", "longer"}

그런 다음 창 길이 n의 연속 하단 시퀀스 세트를 취하십시오 (세트의 중복을 기억하지 않음).

S(D1, 3) = {{"An", "Example", "Document"}, {"Example", "Document", "To"}, {"Document", "To", "Show"}, {"To", "Show", "Shingling"}}

S(D2, 3) = {{"Another", "Example", "Document"}, {"Example", "Document", "To"}, {"Document", "To", "Show"}, {"To", "Show", "Shingling"}, {"Show", "Shingling", "but"}, {"Shingling", "but", "longer"}}

그런 다음 유사점은 교차점의 카디널리티를 연합의 카디널리티로 나눈 것입니다. 따라서 우리의 예에서는 3/7 = 43% 유사합니다.

무작위로 선택된 스케치 (대상 포진 세트의 서브 세트)를 사용하여 효율적인 근사치를 만들 수 있습니다.

모든 소스 제어 시스템에서 사용하는 DIFF 도구는 거의 정확하게 수행합니다. 차이의 수를 측정하는 데 도움이되도록이 중 하나를 시도해보십시오.

그것은 당신이 달성하고자하는 것에 달려 있습니다. 목표가 문서 세트에서 주어진 문서와 유사한 문서를 찾는 것이면 다음과 같은 것을 시도 할 수 있습니다.

문서에 따라 먼저 긴 문서에서 가장 의미있는 키워드 또는 주요 문장을 추출하여 텍스트의 본질 (Google "키워드 추출")을 추출 할 수 있습니다. 그런 다음 텍스트 유사성 알고리즘 (k-nearest 이웃 알고리즘과 같은)으로 작업하여 유사한 문서를 낚시질 수 있습니다. 열쇠는 텍스트의 주요 부분을 추출하는 것입니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top