Questa è in qualche modo una risposta XY, ma dato che hai iniziato con
read a body of text and compare it to search-engine results (from searching for substrings of the given text), with the goal of detecting plagiarism in, for example, academic papers.
Sembra che la ricerca del testo stessa sia una buona risposta pratica al tuo problema. Il modo di base per individuare i plagi sarebbe il seguente:
- Inizia con un corpus di documenti che il documento di destinazione avrebbe potuto essere plagiato.
- Crea, ad esempio, un indice invertito basato su Lucene su tali documenti (ad esempio Solr o Elasticsearch).
- Dividi il documento di destinazione in una serie di frasi (ad es. interrompendo ogni frase / frase secondaria / ogni n parole).
- Cerca il tuo corpus per ogni frase. Restituirai un (forse) vuoto insieme di documenti che quella frase potrebbe essere stata plagiata da (e la (e) posizione (i) in ciascun documento da cui è stata probabilmente presa).
- Raccogli tutti questi potenziali esempi di plagio. Se questo supera più di una piccola soglia di frasi, allarma l'obiettivo come probabilmente plagiato.
Questo approccio presenta diversi vantaggi rispetto al tentativo di diff stringhe:
- Ti consente di individuare esattamente ciò che nel documento di destinazione potrebbe essere stato plagiato e da dove potrebbe provenire. Ciò consentirà agli utenti di rivedere l'output per avere visibilità e prendere decisioni intelligenti sull'output.
- Una buona soluzione di indicizzazione ti consentirà di aggirare errori di ortografia e diverse parole di stop / piccole differenze nel fraseggio.
- Una buona soluzione di indicizzazione scalerà molto bene.
- Avere un corpus autogestito si comporterà molto meglio della ricerca su Internet. Internet è un luogo così selvaggio e indisciplinato che è probabile che si ottengano partite spurie e si perdano partite importanti. Cioè, Google potrebbe catturare gli studenti che copiano da Wikipedia, ma è anche suscettibile di accusare falsamente le persone di copiare da blog casuali se non sei molto, molto attento. È anche probabile che manchino cose come i documenti ArXiv sul campo, saggi che gli studenti possono acquistare da siti web ombrosi, saggi passati scritti da altri studenti, che sono fonti di plagio molto realistiche.
Se pensi a Turn-it-in, il loro approccio deve essere simile a questo come loro
- Dirti dove il saggio potrebbe essere stato plagiato
- Può includere documenti precedenti / non wiki e amp; co. sourcing.
Il valore che può essere aggiunto a Turn-it-in e simili semplicemente impostando tu stesso un sistema come questo (che onestamente non sarebbe troppo difficile) è
- Dimensioni e qualità del loro corpus di riferimento
- Tempo di sviluppo della loro interfaccia utente
- Ottimizzazione dell'indicizzazione e della ricerca
- Sofisticazione nel modo in cui determinano le frasi e le loro soglie per probabile plagio.