Ключовим елементом такого типу підходу є доступ до гарної бази англійських слів. У моїй системі є цей файл, /usr/share/dict/wordsякий містить багато слів, але натомість можна використовувати інші джерела.
Підхід
Мій загальний підхід полягає в тому, щоб використовувати grepтак:
$ grep -vwf /usr/share/dict/words sample.txt
Там, де знаходиться ваш вихідний приклад sample.txt.
У моєму обмеженому тестуванні розмір wordsсловника, здавалося, занепав grep. Моя версія має 400k + рядків у ній. Тому я почав робити щось подібне, щоб трохи розбити це:
$ head -10000 /usr/share/dict/words > ~/10000words
Пробірки зразків (10 к)
Запустіть свій файл, використовуючи перші 10 к слів із "словника".
$ 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,
ПРИМІТКА. Цей підхід працював за ~ 1,5 секунди на моєму ноутбуці i5.
Це здається життєздатним підходом. Коли я зіткнувся з ним до 100k рядків, це почало тривати багато часу, я перервав його, перш ніж він закінчився, щоб ви могли розбити wordsсловник на кілька файлів.
ПРИМІТКА. Коли я повернув її до 50k рядків, це зайняло 32 секунди.
Дайвінг глибше (50k лінії)
Коли я почав розширювати словник до 50 тис., Я зіткнувся з проблемою, якої я боявся, перетинаючись між мовами.
$ 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,
Аналіз проблеми
Хороша річ при такому підході - ви можете видалити -vта побачити, де перекриття:
$ 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, мабуть, на обох мовах ... ну, принаймні, воно є в моєму wordsфайлі, тож це може бути дещо пробним і помилковим підходом, щоб уточнити список слів за потребою.
ПРИМІТКА: Я знав, що це слово, aufтому що grepзабарвив його в червоний колір, що не відображається у вищенаведеному висновку через обмежений характер SE 8-).
$ grep auf ~/50000words
auf
aufait
aufgabe
aufklarung
auftakt
baufrey
Beaufert
beaufet
beaufin
Beauford
Beaufort
beaufort
bechauffeur