기사 또는 포럼 게시물이 데이터베이스 내의 중복 항목인지 감지하려고합니다. 나는 내용을 복제 한 사람이 세 가지 중 하나를 사용하여 그렇게 할 것이라는 결론에 이르렀다.
- 간단한 복사로 전체 텍스트 붙여 넣기
- 텍스트의 일부를 자신의 텍스트와 병합하여 복사하여 붙여 넣기
- 외부 사이트에서 기사를 복사하고 자신의 것으로 위장
분석을위한 텍스트 준비
기본적으로 모든 이상 목표는 가능한 한 텍스트를 "순수한"것으로 만드는 것입니다. 보다 정확한 결과를 위해 텍스트는 다음과 같이 "표준화"됩니다.
- 중복 공백 제거 및 선행 및 후행 트리밍.
- 줄 바꾸기는 \ n으로 표준화됩니다.
- HTML 태그가 제거되었습니다.
- Daring Fireball URL이라는 RegEx를 사용하면 제거됩니다.
- 내 응용 프로그램에서 BB 코드를 사용하므로 계속됩니다.
- (ä) 양수 및 외국 (잉글랜드 제외)은 외국이 아닌 형태로 전환됩니다.
각 기사에 대한 정보를 (1) 통계표와 (2) 키워드 표에 저장합니다.
(1) 통계표 텍스트 내용에 대한 다음 통계가 저장됩니다 (이 게시물과 유사).
- 텍스트 길이
- 문자 수
- 단어 수
- 문장 수
- 문장 당 평균 단어
- 자동 가독성 지수
- 교활한 안개 점수
유럽 언어의 경우 음절 계산을 사용하지 않으므로 Coleman-Liau 및 자동 가독성 지수를 사용해야하므로 합리적으로 정확한 점수를 산출해야합니다.
(2) 키워드 표
키워드는 'the', 'a', 'of', 'to'등과 같은 방대한 단어 (일반 단어)를 제외하여 생성됩니다.
샘플 데이터
- text_length, 3963
- letter_count, 3052
- 단어 수, 684
- sentence_count, 33
- word_per_sentence, 21
- gunning_fog, 11.5
- auto_read_index, 9.9
- 키워드 1, 사망
- 키워드 2, 임원
- 키워드 3, 경찰
기사가 업데이트되면 위의 모든 통계가 재생성되며 완전히 다른 값이 될 수 있습니다.
위의 정보를 사용하여 처음으로 게시 된 기사가 데이터베이스에 이미 존재하는지 감지하려면 어떻게해야합니까?
나는 디자인 할 것이 완벽하지 않을 것이라는 것을 알고 있습니다. 가장 큰 위험은 (1) 복제되지 않은 컨텐츠는 복제로 표시됩니다. (2) 시스템은 복제 컨텐츠를 통과시킵니다.
따라서 알고리즘은 중복 위험이없는 0에서 중복 가능성이 5이고 중복이 10 인 위험 평가 번호를 생성해야합니다. 5 이상이면 내용이 복제 될 가능성이 큽니다. 이 경우 내용은 중복 될 수있는 기사에 표시되고 링크 될 수 있으며 사람은 삭제할지 여부를 결정할 수 있습니다.
기사 전체에 키워드를 저장하기 전에 말씀 드렸듯이 단락 단위로 동일한 작업을 수행 할 수 있을지 궁금합니다. 이것은 또한 DB에서 내 데이터를 더 분리한다는 것을 의미하지만 초기 게시물에서 (2)를 쉽게 감지 할 수 있습니다.
통계간에 가중 평균을 생각하고 있지만 어떤 순서로 어떤 결과를 초래할까요?