L'élément clé de ce type d'approche est d'avoir accès à une bonne base de données de mots anglais. Il y a ce fichier sur mon système, /usr/share/dict/words
qui contient beaucoup de mots, mais d'autres sources pourraient être utilisées à la place.
Approche
Mon approche générale serait d'utiliser grep
comme ceci:
$ grep -vwf /usr/share/dict/words sample.txt
Où se trouve votre exemple de sortie sample.txt
.
Dans mes tests limités, la taille du words
dictionnaire semblait grep
s'enliser. Ma version contient 400k + lignes. J'ai donc commencé à faire quelque chose comme ça pour le casser un peu:
$ head -10000 /usr/share/dict/words > ~/10000words
Exemples de courses (10k)
Exécutez votre fichier en utilisant les premiers 10k mots du "dictionnaire".
$ 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,
REMARQUE: cette approche a fonctionné en environ 1,5 seconde sur mon ordinateur portable i5.
Cela semble être une approche viable. Quand je l'ai fait passer à 100 000 lignes, cela a commencé à prendre du temps, je l'ai avorté avant qu'il ne soit terminé, afin que vous puissiez diviser le words
dictionnaire en plusieurs fichiers.
REMARQUE: lorsque je l'ai reculé sur 50 000 lignes, cela a pris 32 secondes.
Plonger plus profondément (50k lignes)
Quand j'ai commencé à étendre le dictionnaire jusqu'à 50k, je suis tombé sur le problème dont j'avais peur, le chevauchement entre les langues.
$ 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,
Analyser le problème
Une bonne chose avec cette approche est que vous pouvez supprimer le -v
et voir où se trouve le chevauchement:
$ 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,
Le mot auf
est apparemment dans les deux langues ... enfin au moins, il est dans mon words
dossier, donc cela pourrait être un peu une approche par essais et erreurs pour affiner la liste de mots selon les besoins.
REMARQUE: je savais que c'était le mot auf
parce qu'il était grep
coloré en rouge, cela n'apparaît pas dans la sortie ci-dessus en raison de la nature limitée de SE 8-).
$ grep auf ~/50000words
auf
aufait
aufgabe
aufklarung
auftakt
baufrey
Beaufert
beaufet
beaufin
Beauford
Beaufort
beaufort
bechauffeur