ส่วนสำคัญของวิธีการนี้คือการเข้าถึงฐานข้อมูลที่ดีของคำภาษาอังกฤษ มีไฟล์นี้ในระบบของฉัน/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
ตัวอย่างการวิ่ง (10k)
เรียกใช้ไฟล์ของคุณผ่านการใช้คำ 10k 1 จาก "พจนานุกรม"
$ 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 บรรทัด)
เมื่อฉันเริ่มขยายพจนานุกรมมากถึง 50k ฉันพบปัญหาที่ฉันกลัวทับซ้อนกันระหว่างภาษาต่างๆ
$ 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