A peça chave para esse tipo de abordagem é ter acesso a um bom banco de dados de palavras em inglês. Existe esse arquivo no meu sistema, /usr/share/dict/words
que possui muitas palavras, mas outras fontes podem ser usadas.
Abordagem
Minha abordagem geral seria usar grep
assim:
$ grep -vwf /usr/share/dict/words sample.txt
Onde está o seu exemplo de saída sample.txt
.
Nos meus testes limitados, o tamanho do words
dicionário pareceu atolar grep
. Minha versão tem mais de 400k linhas. Então comecei a fazer algo assim para dividir um pouco:
$ head -10000 /usr/share/dict/words > ~/10000words
Execuções de amostra (10k)
O arquivo é executado usando as primeiras 10 mil palavras do "dicionário".
$ 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: Essa abordagem foi executada em ~ 1,5 segundos, no meu laptop i5.
Parece ser uma abordagem viável. No entanto, quando aumentei até 100k linhas, o processo demorou muito tempo a abortar antes de terminar, para que você pudesse dividir o words
dicionário em vários arquivos.
NOTA: Quando eu recuei em 50k linhas, demorou 32 segundos.
Mergulho mais profundo (50 mil linhas)
Quando comecei a expandir o dicionário até 50k, deparei-me com o problema que tinha, sobreponho-me entre os 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,
Analisando o problema
Uma coisa boa dessa abordagem é que você pode remover -v
e ver onde está a sobreposição:
$ 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, a palavra está nos dois idiomas ... bem, pelo menos está no meu words
arquivo, portanto, pode ser um pouco de tentativa e erro para refinar a lista de palavras, conforme necessário.
NOTA: Eu sabia que era a palavra auf
porque a grep
coloria de vermelho, que não aparece na saída acima devido à natureza limitada do SE 8-).
$ grep auf ~/50000words
auf
aufait
aufgabe
aufklarung
auftakt
baufrey
Beaufert
beaufet
beaufin
Beauford
Beaufort
beaufort
bechauffeur