Ключовим елементом такого типу підходу є доступ до гарної бази англійських слів. У моїй системі є цей файл, /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