Question

J'expérimente un peu avec détection de plagiat comparaison textuelle / de base, et que vous voulez essayer ce site sur une base à site. Cependant, je suis un peu coincé à trouver une bonne façon de traiter le texte.

Comment voulez-vous traiter et comparer le contenu de deux sites pour plagiat?

Je pense quelque chose comme ce pseudo-code:

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

Je me rends compte que cette solution pourrait très rapidement accumuler beaucoup de données, de sorte qu'il pourrait être possible de le faire fonctionner avec des sites très petits.

Je ne l'ai pas décidé sur l'algorithme de comparaison de texte actuel encore, mais maintenant je suis plus intéressé à obtenir l'algorithme de processus réel de travail d'abord.

Je pense qu'il serait une bonne idée d'extraire tout le texte en morceaux de texte individuels (des paragraphes, des tableaux, des en-têtes et ainsi de suite), sous forme de texte peut se déplacer sur les pages.

J'application de la présente en C # (peut-être ASP.NET).

Je suis très intéressé par commentaires ou des conseils que vous pourriez avoir, donc s'il vous plaît tirer! :)

Était-ce utile?

La solution

Mon approche de ce problème serait à Google pour spécifiques, des blocs assez uniques de texte dont le droit d'auteur que vous essayez de protéger.

Cela dit, si vous voulez construire votre propre solution, voici quelques commentaires:

  • Respect robots.txt. Si elles ont marqué le site comme do-not-crawl, les chances sont qu'ils ne cherchent pas à profiter de votre contenu de toute façon.
  • Vous aurez besoin de rafraîchir la structure du site que vous avez enregistré de temps en temps que les sites changent.
  • Vous devrez texte correctement séparé des balises HTML et JavaScript.
  • Vous essentiellement besoin de faire une recherche en texte intégral dans l'ensemble du texte de la page (avec des balises / script supprimé) pour le texte que vous souhaitez protéger. Il y a de bons algorithmes publiés pour cela.

Autres conseils

Vous allez probablement être plus intéressés par la détection de fragments. par exemple, beaucoup de pages auront le mot « maison » sur eux et vous ne se soucient pas. Mais il est assez peu probable de très nombreuses pages auront exactement les mêmes mots sur la page. Donc, vous voulez sans doute de comparer et de faire rapport sur les pages qui ont EXCT matchs de longueur 4,5,6,7,8, etc mots et compte pour chaque longueur. Attribuer une note et les poids et si vous dépassez votre « nombre magique » signaler les xeroxers suspects.

Pour C #, vous pouvez utiliser le navigateur Web () pour obtenir une page et d'obtenir assez facilement son texte. Désolé, aucun exemple de code pratique pour copier / coller, mais MSDN a généralement assez bons échantillons.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top