Pergunta

Eu estou experimentando um pouco com a comparação textual / detecção básica de plágio, e quer tentar isso em uma base site-to-site. No entanto, estou um pouco preso em encontrar uma maneira adequada para processar o texto.

Como você processar e comparar o conteúdo de dois sites por plágio?

Estou pensando em algo como este pseudo-código:

// 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

Eu percebo que esta solução poderia muito rapidamente acumular uma grande quantidade de dados, por isso só poderia ser possível fazê-lo funcionar com muito pequenas websites.

Eu não ter decidido sobre o algoritmo de comparação de texto real ainda, mas agora eu estou mais interessado em obter o algoritmo de processo real de trabalho em primeiro lugar.

Eu estou pensando que seria uma boa idéia para extrair todo o texto como pedaços de texto individuais (de parágrafos, tabelas, cabeçalhos e assim por diante), como texto pode se mover em páginas.

Eu estou implementando isso em C # (talvez ASP.NET).

Estou muito interessado em qualquer entrada ou conselhos que você pode ter, por isso, por favor, atire! :)

Foi útil?

Solução

A minha abordagem a este problema seria a google para específico, bastante blocos únicos de texto cujo autor você está tentando proteger.

Dito isto, se você quer construir sua própria solução, aqui estão alguns comentários:

  • robots.txt Respeito. Se eles têm marcado o local como do-não-rastreamento, as chances são de que eles não estão tentando lucrar com seu conteúdo de qualquer maneira.
  • Você precisará atualizar a estrutura do site que você tem armazenado, de tempos em tempos como a mudança websites.
  • Você vai precisar de texto adequadamente separado do HTML tags e JavaScript.
  • Você essencialmente precisará fazer uma pesquisa de texto completo em todo o texto da página (com tags / Script removido) para o texto que você deseja proteger. Há boas, algoritmos publicados para isso.

Outras dicas

Você provavelmente vai estar mais interessado na detecção de fragmento. por exemplo, muitas páginas terão a palavra "casa" sobre eles e você não se importa. Mas é bastante improvável muitas páginas terão exatamente as mesmas palavras em toda a página. Então você provavelmente vai querer comparar e relatório sobre as páginas que têm partidas exct de comprimento 4,5,6,7,8, etc palavras e contagens para cada comprimento. Atribuir uma pontuação e peso-los e se você ultrapassar o seu "número mágico", relatam os xeroxers suspeitos.

Para C #, você pode usar o WebBrowser () para obter uma página e facilmente obter seu texto. Desculpe, nenhum exemplo de código útil para copiar / colar, mas MSDN geralmente tem amostras muito bom.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top