La pieza clave para este tipo de enfoque es tener acceso a una buena base de datos de palabras en inglés. Existe este archivo en mi sistema, /usr/share/dict/words
que tiene muchas palabras, pero en su lugar podrían usarse otras fuentes.
Acercarse
Mi enfoque general sería usarlo grep
así:
$ grep -vwf /usr/share/dict/words sample.txt
Donde está su salida de ejemplo sample.txt
.
En mis pruebas limitadas, el tamaño del words
diccionario parecía empantanarse grep
. Mi versión tiene más de 400k líneas. Entonces comencé a hacer algo como esto para dividirlo un poco:
$ head -10000 /usr/share/dict/words > ~/10000words
Ejecuciones de muestra (10k)
Luego, ejecute su archivo usando las primeras 10k palabras del "diccionario".
$ 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: Este enfoque se ejecutó en ~ 1.5 segundos, en mi computadora portátil i5.
Parece ser un enfoque viable. Sin embargo, cuando lo incrementé hasta las 100 mil líneas, comenzó a tomar mucho tiempo, lo aborté antes de que terminara, para que pudiera dividir el words
diccionario en varios archivos.
NOTA: Cuando retrocedí a 50k líneas, tardé 32 segundos.
Bucear más profundo (50k líneas)
Cuando comencé a expandir el diccionario hasta 50k, me encontré con el problema que temía, la superposición entre los idiomas.
$ 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,
Analizando el problema
Una buena cosa con este enfoque es que puede eliminar -v
y ver dónde está la superposición:
$ 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
Aparentemente, la palabra está en ambos idiomas ... bueno, al menos está en mi words
archivo, por lo que este podría ser un enfoque de prueba y error para refinar la lista de palabras según sea necesario.
NOTA: Sabía que era la palabra auf
porque la grep
coloreaba de rojo, eso no aparece en la salida anterior debido a la naturaleza limitada de SE 8-).
$ grep auf ~/50000words
auf
aufait
aufgabe
aufklarung
auftakt
baufrey
Beaufert
beaufet
beaufin
Beauford
Beaufort
beaufort
bechauffeur