문제

본인은 텍스트 비교/기본 표절 탐지로 약간 실험하고 있으며 웹 사이트 간 기준으로이를 시도하고 싶습니다. 그러나 텍스트를 처리하는 적절한 방법을 찾는 데 약간 짜증이납니다.

표절을 위해 두 웹 사이트의 내용을 어떻게 처리하고 비교하겠습니까?

나는이 의사 코드와 같은 것을 생각하고있다 :

// extract text
foreach website in websites
  crawl website - store structure so pages are only scanned once
  extract text blocks from all pages - store this is in list

// compare      
foreach text in website1.textlist
  compare with all text in website2.textlist

이 솔루션은 많은 데이터를 매우 빠르게 축적 할 수 있으므로 매우 작은 웹 사이트에서만 작동하게 할 수 있습니다.

아직 실제 텍스트 비교 알고리즘을 결정하지는 않았지만 지금은 실제 프로세스 알고리즘을 먼저 작동시키는 데 더 관심이 있습니다.

텍스트가 페이지에서 이동할 수 있으므로 모든 텍스트를 개별 텍스트 조각 (단락, 테이블, 헤더 등)으로 추출하는 것이 좋습니다.

C# (아마도 ASP.NET)에서 이것을 구현하고 있습니다.

나는 당신이 가질 수있는 모든 의견이나 조언에 매우 관심이 있습니다. :)

도움이 되었습니까?

해결책

이 문제에 대한 나의 접근 방식은 당신이 보호하려는 저작권을 가진 구체적이고 고유 한 텍스트 블록에 대해 Google에 이루어질 것입니다.

자신의 솔루션을 구축하려면 다음은 다음과 같습니다.

  • REPER ROBOTS.TXT. 그들이 사이트를 do-not-crawl로 표시했다면, 어쨌든 당신의 콘텐츠에서 이익을 얻지 못할 가능성이 있습니다.
  • 웹 사이트가 변경됨에 따라 저장된 사이트 구조를 수시로 새로 고침해야합니다.
  • HTML 태그와 JavaScript에서 텍스트를 올바르게 분리해야합니다.
  • 보호하려는 텍스트에 대한 페이지 전체 텍스트 (태그/스크립트가 제거됨)에서 전체 텍스트 검색을 수행해야합니다. 이것에 대한 좋은 공개 알고리즘이 있습니다.

다른 팁

당신은 아마도 조각 감지에 더 관심이있을 것입니다. 예를 들어, 많은 페이지에 "홈"이라는 단어가 있으며 신경 쓰지 않습니다. 그러나 많은 페이지가 전체 페이지에서 정확히 같은 단어를 가질 가능성은 거의 없습니다. 따라서 길이 4,5,6,7,8 등의 exct 일치가있는 페이지를 비교하고보고하고 싶을 것입니다. 점수를 지정하고 무게를 지정하고 "매직 번호"를 초과하면 의심되는 Xeroxers를보고하십시오.

C#의 경우 WebBrowser ()를 사용하여 페이지를 얻고 텍스트를 상당히 쉽게 얻을 수 있습니다. 죄송합니다. 복사/붙여 넣기에 편리한 코드 샘플은 없지만 MSDN에는 일반적으로 꽤 좋은 샘플이 있습니다.

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