Il pezzo chiave di questo tipo di approccio è l'accesso a un buon database di parole inglesi. C'è questo file sul mio sistema, /usr/share/dict/words
che contiene molte parole, ma invece potrebbero essere utilizzate altre fonti.
Approccio
Il mio approccio generale sarebbe usare grep
così:
$ grep -vwf /usr/share/dict/words sample.txt
Dove si trova l'output di esempio sample.txt
.
Nei miei test limitati la dimensione del words
dizionario sembrava impantanarsi grep
. La mia versione ha 400k + linee al suo interno. Quindi ho iniziato a fare qualcosa del genere per romperlo un po ':
$ head -10000 /usr/share/dict/words > ~/10000words
Esecuzioni campione (10k)
Esegui il tuo file usando le prime 10k parole del "dizionario".
$ grep -vwf ~/10000words sample.txt
714
01:11:22,267 --> 01:11:27,731
Auch wenn noch viele Generationen auf einen Wechsel hoffen,
715
01:11:27,732 --> 01:11:31,920
werde ich mein Bestes geben
und hoffe, dass andere das gleiche tun.
I'm giving mine, I'm doing my best
hoping the other will do the same
716
01:11:31,921 --> 01:11:36,278
Wir haben eine harte Arbeit vor uns,
um den Lauf der Dinge zu ändern.
it's going to be hard work
for things to turn around.
717
01:11:36,879 --> 01:11:42,881
Wenn man die Zentren künstlicher Besamung,
die Zuchtlaboratorien und die modernen Kuhställe besichtigt,
When visiting artificial insemination centers,
the selection center, modern stables,
NOTA: questo approccio ha funzionato in circa 1,5 secondi sul mio laptop i5.
Sembra essere un approccio praticabile. Quando l'ho portato a 100k righe, però, ha iniziato a richiedere molto tempo, l'ho interrotto prima che finisse, in modo da poter suddividere il words
dizionario in diversi file.
NOTA: quando l'ho eseguito il backup su 50k linee ci sono voluti 32 secondi.
Immersione più profonda (linee 50k)
Quando ho iniziato ad espandere il dizionario fino a 50k mi sono imbattuto nel problema di cui avevo paura, sovrapposizione tra le lingue.
$ grep -vwf ~/50000words sample.txt
714
01:11:22,267 --> 01:11:27,731
715
01:11:27,732 --> 01:11:31,920
werde ich mein Bestes geben
und hoffe, dass andere das gleiche tun.
hoping the other will do the same
716
01:11:31,921 --> 01:11:36,278
Wir haben eine harte Arbeit vor uns,
um den Lauf der Dinge zu ändern.
717
01:11:36,879 --> 01:11:42,881
Wenn man die Zentren künstlicher Besamung,
die Zuchtlaboratorien und die modernen Kuhställe besichtigt,
the selection center, modern stables,
Analizzare il problema
Un aspetto positivo di questo approccio è che puoi rimuovere -v
e vedere dove si trova la sovrapposizione:
$ grep -wf ~/50000words sample.txt
Auch wenn noch viele Generationen auf einen Wechsel hoffen,
Even if it takes many generations hoping for a change,
I'm giving mine, I'm doing my best
it's going to be hard work
for things to turn around.
When visiting artificial insemination centers,
auf
Apparentemente la parola è in entrambe le lingue ... beh almeno è nel mio words
file, quindi questo potrebbe essere un po 'un approccio di prova ed errore per affinare l'elenco delle parole secondo necessità.
NOTA: sapevo che era la parola auf
perché grep
colorata di rosso, che non compare nell'output sopra a causa della natura limitata di SE Cool.
$ grep auf ~/50000words
auf
aufait
aufgabe
aufklarung
auftakt
baufrey
Beaufert
beaufet
beaufin
Beauford
Beaufort
beaufort
bechauffeur