Questo è qualcosa su cui sto lavorando e mi piacerebbe ricevere input dalle persone intelligenti qui su StackOverflow.PHP Riparare il testo errato
Quello che sto tentando è una funzione per riparare il testo basato sulla combinazione di varie versioni errate della stessa pagina di testo. Fondamentalmente questo può essere usato per combinare diversi risultati OCR in uno con maggiore accuratezza rispetto a ciascuno di essi individualmente.
Inizio con un dizionario di 600.000 parole inglesi, che è praticamente tutto compreso termini legali e medici e nomi comuni. Ho già questo.
Quindi ho 4 versioni del campione di testo.
Qualcosa di simile a questo:
$text[0] = 'Fir5t text sample is thisline';
$text[1] = 'Fir5t text Smplee is this line.';
$text[2] = 'First te*t sample i this l1ne.';
$text[3] = 'F i r st text s ample is this line.';
ho tentativo di combinare il sopra per ottenere un output che assomiglia a:
$text = 'First text sample is this line.';
Non mi dica che è impossibile, perché non è certo, solo molto difficile.
Apprezzerei molto ogni idea che qualcuno ha nei confronti di questo.
Grazie!
I miei pensieri attuali:
solo controllando le parole contro il dizionario non funziona, dal momento che alcuni degli spazi sono nel posto sbagliato e, occasionalmente, la parola non sarà presente nel dizionario.
Il problema principale è la riparazione delle spaziature interrotte, una volta che questo è stato risolto, allora è possibile scegliere la parola del dizionario più comune se esiste, oppure la parola non dizionario più comune.
vuoi veramente unire le 4 versioni a una, o il tuo obiettivo è prendere una riga e risolverla con l'aiuto del tuo dizionario? – Flo
Posso facilmente prendere una riga e "spellcheck" con il dizionario. Ma questo non aiuterà perché molte delle parole sono rotte, gli spazi sono nei posti sbagliati. Questo è il motivo per cui ho bisogno di confrontare le diverse linee, sì combinarle in una sola. – Alasdair
Quello di cui parli qui sembra molto simile a un problema di Intelligenza Artificiale. Potrebbe essere possibile in PHP, ma non sarebbe certamente molto efficiente. Consiglierei di cercare uno strumento a riga di comando che faccia questo sia uno esistente ed exec() da PHP. Se un tale strumento non esiste, allora elaborare l'algoritmo sarebbe un diavolo di lavoro. Potresti iniziare con il controllo ortografico di tutte le varianti e assumendo che tutte le parole uguali in tutte le versioni siano corrette. Quindi per le linee in cui sono diversi, scegli la parola che appare più spesso. Dopo, chi lo sa? – GordonM