มันออกเสียงว่า GIF

มันออกเสียงว่า GIF

โหนดต้นทาง: 3043181

เมื่อเทศกาลวันหยุดมาถึงเรา และนักเขียนของ Hackaday นั่งคอยปกป้องจากพายุแอตแลนติกที่กำลังเข้ามาในเมืองเอย์รีอันอบอุ่นของเธอ ก็ถึงเวลาที่เธอจะต้องพิจารณาพื้นฐานของงานฝีมือของเธอ การเขียน การสะกดคำ และภาษาอังกฤษ เรื่องต่างๆ เช่น เหตุใดคนอเมริกันจึงมีการสะกดภาษาอังกฤษที่แตกต่างจากชาวอังกฤษ แต่บางทีสิ่งที่สำคัญที่สุดสำหรับผู้อ่าน Hackaday มันคือ "gif" หรือเป็น "jif"? ประโยคนี้หรือประโยคตลกเกี่ยวกับการสะกดคำอาจถือได้ว่าเป็นคลิกเบตที่ชัดเจน แต่เป็นประโยคที่ช่วยในการศึกษาภาษาแทน เราจะตัดสินแบบแผนของภาษาของเราอย่างไร และเราควรสนใจมันมากเกินไปหรือไม่?

อย่าเชื่อทุกสิ่งที่คุณอ่านในโรงเรียน

ภาพห้องเรียนในอเมริกาเมื่อปี 1004
ไม่ใช่ทุกสิ่งที่คุณเรียนรู้ที่นี่คุ้มค่าที่จะเก็บไว้ แฮร์ริสัน คีลี่ย์, CC BY 4.0.

เราถูกส่งไปโรงเรียนเพื่อเรียนรู้สิ่งต่างๆ ในช่วงเวลานั้น เราถูกลิดรอนเสรีภาพ เนื่องจากผู้ใหญ่หลายต่อหลายครั้งพยายามยัดเยียดข้อเท็จจริงให้หนักหัวเราทุกปี เราพบว่าน่าสนใจบางส่วนและส่วนอื่นๆ ก็ไม่มากนัก แต่ส่วนใหญ่ เราไม่ท้อแท้จากการคิดด้วยตนเอง และถูกคาดหวังให้เรียนรู้โดยท่องจำชุดหลักสูตรที่ตายตัวแทน

ดังนั้นในขณะที่นักเขียนต้องค้นพบด้วยตนเองว่าภาษาอังกฤษเป็นภาษาที่มีการพัฒนาอย่างต่อเนื่องซึ่งพวกเขาสามารถหลุดพ้นจากขอบเขตเทียมที่โรงเรียนกำหนดไว้ได้ ผู้คนจำนวนมากเกินไปยังคงกลัวที่จะเอาหัวอยู่เหนือเชิงเทินทางภาษา

ผลที่ได้ก็คือการรับรู้ถึงการเบี่ยงเบนไปจากกฎเกณฑ์ถูกโจมตีโดยผู้ที่กลัวที่จะใช้ภาษา และเรายังพบว่าสงครามศักดิ์สิทธิ์ทางภาษาของเราเองต้องต่อสู้ด้วย คำที่กล่าวถึงข้างต้นเกี่ยวกับ “gif” กับ “jif” เป็นตัวอย่างที่ดี สำคัญมากไหมไม่ว่าคุณจะออกเสียงด้วยตัว “G” ที่ออกเสียงยาก เพราะนั่นคือสิ่งที่คนส่วนใหญ่พูด หรือราวกับว่ามันเป็น “J” เพราะผู้สร้างรูปแบบไฟล์พูดแบบนั้นเหรอ? ไม่จริง เพราะภาษาอังกฤษเป็นภาษาที่กำลังพัฒนาอยู่ในมือของผู้พูด ไม่ใช่ของผู้ที่เขียนหนังสือเรียน

น่าเศร้าที่ยังไม่ใช่เวลาที่จะชื่นชมยินดี เพราะแม้ว่ากฎบางข้อจะเคลื่อนไหวไปตามกาลเวลา แต่ก็ไม่ได้ฟรีสำหรับทุกคน ภาษาจะต้องมีความเข้าใจร่วมกัน เราไม่สามารถสร้างขึ้นมาง่ายๆ เมื่อเราดำเนินไป ผู้เชี่ยวชาญใช้สิ่งที่พวกเขาเรียกว่าเป็นแนวทางเชิงพรรณนา โดยจะบอกคุณว่าคุณใช้ภาษาอย่างไร ตรงกันข้ามกับการสั่งห้ามว่าคุณใช้ภาษาอย่างไร น่า จะใช้มัน พวกเขาทำเช่นนี้ผ่านการวิเคราะห์ทางสถิติของกลุ่มข้อความขนาดใหญ่ เพื่อดูว่ารูปแบบใดได้รับความสนใจมากที่สุด และนี่คือจุดที่น่าสนใจ เนื่องจากการวิเคราะห์ภาษาขนาดใหญ่สามารถบอกคุณถึงสิ่งที่คุณไม่รู้เกี่ยวกับเรื่องที่คุณคิดว่าคุณรู้มาก

ฉันไม่ใช่ผู้ประดิษฐ์ภาษาศาสตร์เชิงคำนวณได้อย่างไร

Raspberry Pi รุ่น b วางอยู่บนกล่องฮาร์ดไดรฟ์ USB
Raspberry Pi และฮาร์ดดิสก์ที่เต็มไปด้วยฝุ่นนี้นั่งอยู่ด้านหลังทีวีของฉันเป็นเวลาประมาณหนึ่งทศวรรษในการประมวลผลข้อความจากฟีด RSS

ฉันได้รับความรู้เบื้องต้นเกี่ยวกับการวิเคราะห์ภาษาเมื่อประมาณสิบห้าปีที่แล้ว ตอนที่ฉันกำลังปรับปรุงการมองเห็นเครื่องมือค้นหาของเว็บไซต์ขนาดใหญ่มาก นี่ไม่ใช่โลกควันและกระจกเงาของการจัดการเสิร์ชเอ็นจิ้นที่ร่มรื่นในสมัยนั้น แต่ฉันกลับอยู่ที่นั่นเพื่อปรับปรุงเนื้อหาของเว็บไซต์อย่างมากและพูดสั้น ๆ ก็คือทำให้มันน่าสนใจยิ่งขึ้นสำหรับทั้งมนุษย์และเครื่องมือค้นหา ในความพยายามนี้ การวิเคราะห์ข้อความเล็กน้อยมีประโยชน์อย่างเหลือเชื่อ และก่อนที่ฉันจะรู้ว่าสคริปต์ PHP ง่ายๆ สองสามตัวสำหรับข้อความที่ถกเถียงกันก็กลายเป็นชุดโปรแกรมที่ครบครัน

ฉันไม่รู้ว่ามันเป็นสาขาอยู่แล้ว ฉันคิดค้นวิชาภาษาศาสตร์คอมพิวเตอร์ขึ้นมาเอง และแม้ว่าตอนนี้ฉันจะรู้แล้วว่างานนั้นไร้ประสิทธิภาพอย่างน่าหัวเราะ แต่มันก็ส่งมอบสินค้าและช่วยบอกฉันและเจ้าของเว็บไซต์ว่าพวกเขาอยู่ที่ไหน ผิดพลาดไปแล้ว

หลังจากได้ลิ้มรสการวิเคราะห์ภาษา มันจึงกลายเป็นหนึ่งในโปรเจ็กต์เหล่านั้นที่อยู่กับฉันมาหลายปี ในขณะที่ฉันได้กลับมาดูเป็นครั้งคราวเนื่องจากความสนใจของฉันลดน้อยลง และชุดโปรแกรมดั้งเดิมของฉันก็เติบโตขึ้นเป็นบางสิ่งที่ยิ่งใหญ่ มีประโยชน์มากขึ้น. และนั่นคือประเด็นของการเขียนเกี่ยวกับเรื่องนี้ที่นี่ เพราะไม่มีอะไรยากเกินไปเกี่ยวกับเรื่องนี้ ถ้าฉันสามารถทำได้ คุณก็ทำได้ ดังนั้นมันจึงคุ้มค่าที่จะลองอธิบายดู

หากต้องการสร้างคลังข้อความเพื่อการวิเคราะห์ จำเป็นต้องเริ่มต้นด้วยข้อความบางส่วนก่อน ฉันสนใจข้อมูลอนุกรมเวลาเป็นพิเศษพอๆ กับภาษา ดังนั้นฉันจึงใช้ฟีด RSS เป็นแหล่งข้อมูลมากที่สุดเท่าที่จะหาได้ สิ่งนี้ทำให้ฉันมีข้อความใหม่ๆ มากมายสำหรับเพิ่มในการวิเคราะห์ของฉัน และอุปกรณ์ของฉันคือ Raspberry Pi ที่มีฮาร์ดไดรฟ์ USB ขนาดใหญ่ซึ่งใช้เวลาส่วนหนึ่งของวันอย่างเงียบๆ เพื่อดึงเรื่องราวและกระทืบมัน

เมื่อต้องเผชิญกับข้อความที่เพิ่งดึงมา ขั้นตอนแรกของฉันคืออะไร? ก่อนอื่น ให้ตัด HTML ที่ไม่เกี่ยวข้องและส่วนที่ขัดแย้งกันของเว็บไซต์ออกไป ซึ่งเป็นสิ่งที่เคยสร้างความรำคาญให้กับกฎเกณฑ์อย่างมาก จนกระทั่งฉันค้นพบว่า Lynx มีตัวเลือกบรรทัดคำสั่ง -dump ซึ่งทำหน้าที่ยกของหนักทั้งหมด จากนั้น ก็ถึงเวลาแบ่งประโยคด้วยตัวคั่นประโยค เช่น จุดและเครื่องหมายคำถาม และแบ่งประโยคตามคำเป็นอาร์เรย์ จากนั้นฉันสามารถก้าวผ่านมันทีละคำ และประมวลผลสิ่งที่ฉันพบลงในที่เก็บข้อมูลของฉัน

คุณจะดึงคำหนึ่งคำในพันล้านอย่างรวดเร็วได้อย่างไร?

เมื่อคุณมีจุดข้อมูลไม่กี่พันจุด มีตัวเลือกมากมายสำหรับการจัดเก็บข้อมูล ตัวอย่างเช่นฐานข้อมูล SQL เป็นแนวคิดที่ดี แต่คลังข้อมูลจะเติบโตขึ้นจนมีขนาดใหญ่ และทิ้งแนวทางการจัดเก็บตามปกติไว้อย่างรวดเร็ว อาจมีซอฟต์แวร์ที่น่าทึ่งบางตัวที่สามารถจัดการอินสแตนซ์คำนับพันล้านได้ แต่ฉันไม่เคยพบมันเลย ดังนั้นฉันจึงเลือกใช้บางอย่างที่มีอยู่ในระบบไฟล์ของฉัน ฉันจะใช้เส้นทางของระบบไฟล์เป็นการสืบค้น โดยสร้างแผนผังไดเร็กทอรีของคำซึ่งฉันสามารถสืบค้นได้ง่ายๆ โดยการพิมพ์เส้นทาง

กราฟเหตุการณ์ระหว่าง "การใช้จ่าย" กับ "การลดลง" ในข่าวสหราชอาณาจักรในช่วงต้นปี 2014
ไฟล์ JSON เล็กๆ จำนวนมากสร้างกราฟได้เร็วมาก

ดังนั้น เมื่อฉันดูคำศัพท์ในประโยค ฉันสนใจความถี่ของคำเหล่านั้น และตำแหน่งของคำเหล่านั้น เช่น คำที่ปรากฏอยู่ข้างๆ ดังนั้นสำหรับทุกคำ ฉันจะสร้างไดเร็กทอรีที่มีไฟล์ JSON อยู่ข้างในเพื่อบันทึกการเกิดขึ้น และภายในไดเร็กทอรีนั้น ฉันจะสร้างไดเร็กทอรีย่อยสำหรับคำต่อไปนี้ด้วยไฟล์ JSON ที่เกี่ยวข้อง ตัวอย่างเช่น ฉันสามารถค้นหาความนิยมของคำว่า “Neil” ได้ด้วยการเปิด JSON ในไดเร็กทอรี /neil/ และค้นหาความแพร่หลายของวลี “Neil Armstrong” ใน /neil/armstrong/ ฉันยังสามารถเปรียบเทียบความสัมพันธ์ที่เกิดขึ้นของ Neils Armstrong และ Young ได้โดยดูทั้ง /neil/armstrong/ และ /neil/young/ ข้อดีของแนวทางระบบไฟล์นี้คือสคริปต์ประมวลผลฝั่งเซิร์ฟเวอร์ซึ่งยังคงอยู่ใน PHP นั้นเรียบง่ายมากและไคลเอนต์ของฉันอาจเป็น Javascript ในเบราว์เซอร์ที่จะดึง JSON เหล่านั้นทั้งหมดแบบเรียลไทม์จากระบบไฟล์

ข้อดีของการมีการวิเคราะห์ภาษาอังกฤษนับพันล้านคำเพียงคลิกเมาส์คือ ฉันสามารถตรวจสอบได้อย่างง่ายดายว่าวลีใดเป็นเวอร์ชันที่เหมาะสมกว่า วลีชั่วคราวนั้นได้รับความนิยมเพียงใด และแม้แต่ความนิยมโดยเปรียบเทียบของบุคคลสาธารณะ เช่น นักการเมือง เหมือนมีเครื่องพิสูจน์ความจริงทางภาษาของตัวเองโดยไม่ต้องพึ่งสิ่งที่คนอื่นบอกฉัน ซึ่งในสายงานของฉันมีประโยชน์มาก แน่นอนว่ามันมาพร้อมกับข้อเสีย เช่น การทำงานใดๆ กับแผนผังที่มีไดเร็กทอรีย่อยหลายล้านรายการและไฟล์ JSON ขนาดเล็กกลายเป็นเรื่องที่น่าเบื่อมาก การสร้าง tarball แม้แต่โครงสร้างข้อมูลขนาดกลางก็ใช้เวลาสองสามวัน ซึ่งหมายความว่าการย้ายไปยังดิสก์ใหม่จำเป็นต้องมีการวางแผนบางอย่าง

นี่อาจไม่ใช่งานปกติในการอธิบายโปรเจ็กต์ส่วนตัวใน Hackaday แต่เป็นโปรเจ็กต์ที่ใช้เวลาในการพัฒนาและวิวัฒนาการทางเทคโนโลยีไม่น้อยไปกว่างานฮาร์ดแวร์ใดๆ ของฉัน หากคุณต้องการเดินตามรอยของฉัน ฉันกลัวว่าฉันอายที่จะปล่อย PHP และ Javascript เก่าที่มีรูปแบบไม่ดีออกไป แต่เนื่องจากฟังก์ชันของมันถูกอธิบายไว้ข้างต้นค่อนข้างดี ฉันคิดว่าพวกคุณส่วนใหญ่น่าจะเขียนมันได้ ตัวคุณเองถ้าคุณเปลี่ยนใจไปกับมัน แม้ว่าคุณจะไม่ทราบ ฉันหวังว่าสิ่งนี้จะทำให้คุณเข้าใจถึงวิธีการทำงานของเครื่องวิเคราะห์คลังข้อมูล และสามารถบอกสิ่งที่คุณไม่รู้ได้ และคุณจะทำตามคำแนะนำของฉันที่จะไม่ฟังทุกสิ่งที่ครูในโรงเรียนบอกคุณ

ประทับเวลา:

เพิ่มเติมจาก แฮ็ควัน