lnwshop logo
  • ตอบกระทู้
  • ตั้งกระทู้ใหม่
QUOTE 

Evan Sandhaus - เปิดบล็อก - นิวยอร์กไทม์ส

changeabledome8
changeabledome8 (Guest)
IP: 115.87.121.x
1 เดือนที่ผ่านมา
The New York Times เพิ่งฉลองปีที่ 20 บนเว็บ แน่นอนแพลตฟอร์มดิจิทัลของวันนี้แตกต่างอย่างมากจากทศวรรษที่ผ่านมาและทำให้จำเป็นต้องมีการนำเสนอข้อมูลที่เก็บถาวร ในปี 2014 เราได้เปิดตัวการออกแบบแพลตฟอร์มดิจิทัลทั้งหมดของเราซึ่งทำให้ผู้อ่านได้สัมผัสกับประสบการณ์ที่ทันสมัยและของเหลวและใช้งานได้ง่ายกว่าโทรศัพท์มือถือผ่านการปรับปรุงเช่นประสิทธิภาพการทำงานที่เร็วขึ้นรูปแบบที่ตอบสนองและการแสดงผลหน้าเว็บแบบไดนามิก ในขณะที่การออกแบบใหม่ของเราช่วยปรับปรุงประสบการณ์ในการอ่านบทความบทความวิศวกรรมและทรัพยากรใหม่ ๆ ทำให้เราไม่สามารถโยกย้ายบทความที่เผยแพร่ก่อนหน้านี้ไปสู่การออกแบบใหม่นี้ได้ ฉบับใหม่และฉบับเก่าของบทความ NYTimes แบบเคียงข้างกัน วันนี้เราตื่นเต้นที่จะประกาศให้ทราบว่าด้วยความพยายามในการย้ายข้อมูลข้ามทีมเกือบทุกบทความที่เผยแพร่ตั้งแต่ปี 2004 มีให้บริการสำหรับผู้อ่านของเราในการออกแบบใหม่และการปรับปรุง ดังเช่นนี้มักเกิดขึ้นงานที่ดูเหมือนปกติของการโยกย้ายเนื้อหาอย่างรวดเร็ว ballooned เป็นโครงการซับซ้อนที่เกี่ยวข้องกับจำนวนของความท้าทายทางเทคนิค เปลี่ยนจากการแปลงประมาณ 14 ล้านบทความที่เผยแพร่ระหว่าง 1851-2006 เป็นรูปแบบที่เข้ากันได้กับ CMS ปัจจุบันของเราและประสบการณ์ในการอ่านไม่ได้ตรงไปตรงมา ยอมรับข้อเสนอแนะ ตอนแรกปัญหาดูเหมือนง่าย: เรามีไฟล์ XML ที่เก็บถาวรและเราต้องการแปลงไฟล์เป็นรูปแบบ JSON ที่ CMS ของเราสามารถนำมาประมวลผลได้ สำหรับข้อมูลส่วนใหญ่ของเราจาก 1851-1980 ไฟล์ XML มีข้อมูลที่เพียงพอและสิ่งที่เราต้องทำคือการแยกวิเคราะห์ XML และเขียนใหม่ในรูปแบบใหม่เรื่องเล่าตั้งแต่ปีพ. ศ. 2524 ถึงปี 2549 มีความยากลำบาก เราเปรียบเทียบบทความที่แยกวิเคราะห์จาก XML กับตัวอย่างบทความที่ให้บริการอยู่ในเว็บไซต์และพบว่าเฉพาะในปี 2004 มีบทความมากกว่า 60,000 บทความบนเว็บไซต์ของเราที่ไม่ได้รวมอยู่ในที่เก็บข้อมูล XML จากปี 1981 เป็นต้นไปอาจมีบทความออนไลน์จำนวนหนึ่งร้อยรายการที่หายไปจากที่จัดเก็บซึ่งสะท้อนเฉพาะสิ่งที่ปรากฏในฉบับพิมพ์เท่านั้น ปัญหานี้เกิดขึ้นเนื่องจากบทความที่ขาดหายไปจะแสดงเป็นหน้า 404 ไม่พบซึ่งจะทำให้ประสบการณ์การใช้งานของผู้ใช้เสื่อมลงและทำให้การจัดอันดับของเราในเครื่องมือค้นหาเสียหาย การสร้างรายชื่อบทความสรุป เราจำเป็นต้องสร้างรายการ "definitive" ของบทความทั้งหมดที่ปรากฏบนเว็บไซต์ ในการจัดทำรายการนี้เราได้ปรึกษากับแหล่งข้อมูลเพิ่มเติมอีกหลายแห่งรวมทั้งการวิเคราะห์แผนผังไซต์และฐานข้อมูลรีวิวหนังสือภาพยนตร์และร้านอาหาร เอกสารการโอนย้ายเอกสาร ด้วยรายชื่อบทความที่ชัดเจนเราเป็นที่แน่ชัดว่าเราจะต้องได้รับข้อมูลที่มีโครงสร้างจาก HTML แบบดิบสำหรับรายการที่ไม่อยู่ใน XML ที่เก็บถาวรของเราเพื่อให้บรรลุเป้าหมายนี้เราได้ใช้ระบบย้ายข้อมูลที่เก็บถาวรโดยทำตามขั้นตอนต่อไปนี้:คลังข้อมูลที่เก็บถาวรกล่องสีแดงเป็นอินพุต - เก็บ XML และรายการ URL ที่ชัดเจนของเรากล่องสีน้ำเงินคือช่องกลางและช่องสีเขียว ผลลัพธ์สุดท้าย - JSON ที่ทำการประมวลผลทั้งหมดรวมทั้งบทความที่เราต้องข้ามไปเนื่องจากข้อผิดพลาด แผนของเราสำหรับขั้นตอนการโยกย้ายที่เก็บข้อมูลแสดงให้เห็นถึงความท้าทายด้านเทคนิคบางประการ ขูด Raw HTML และ XML CMS ของเราจัดเก็บข้อมูลเกี่ยวกับบทความจำนวนมากเช่นวันที่ตีพิมพ์ส่วนพาดหัวเส้นขอบเส้นข้อมูลสรุป ฯลฯ เราจำเป็นต้องมีวิธีดึงข้อมูลเมตานี้นอกเหนือจากเนื้อหาบทความจาก HTML ดิบและ XML เราใช้ตัววิเคราะห์องค์ประกอบ ElementTree xml ในตัวของ Python เพื่อประมวลผล XML และ BeautifulSoup สำหรับการประมวลผล HTML URL Redirects ในขั้นตอนการย้ายข้อมูลของเราเรากำลังสร้าง URL ที่เป็นมิตรกับ SEO สำหรับเนื้อหาเก่าเพื่อให้ผู้อ่านสามารถค้นหาข้อมูลที่ผ่านมาของเราได้ง่ายขึ้น URL ที่เป็นมิตรกับ SEO มักมีคำหลักบางคำที่เกี่ยวข้องกับเนื้อหาของหน้าซึ่งเป็นวิธีปฏิบัติที่ไม่ได้รับการกำหนดค่าไว้ในคลังข้อมูลของเรา ตัวอย่างเช่นในวันที่ 12 กุมภาพันธ์ 2004 ar "เจ้าหน้าที่ของเมืองซานฟรานซิสโกดำเนินการสมรสเกย์" ปรากฏภายใต้ URL ที่ลงท้ายด้วย "12CND-FRIS.html" เมื่อทราบว่าเราสามารถให้ลิงก์ข้อมูลได้มากขึ้นเราได้รับ URL ใหม่จากบรรทัดแรก ตอนนี้บทความนี้อ้างอิงจาก URL ที่ลงท้ายด้วย " san-francisco-city-officials-perform-gay-marriages.html " ซึ่งเป็นโครงการที่ใช้งานง่ายมาก จัดการเนื้อหาที่ซ้ำกัน เมื่อเราทราบว่า URL ใดหายไปจากที่เก็บถาวรของเราเราตระหนักว่าเรามีปัญหาใหม่: คัดลอกเนื้อหา URL ที่ "ขาดหายไป" บางส่วนชี้ไปที่เอกสาร HTML ที่มีเนื้อหาอยู่ในที่เก็บข้อมูล XML ของเราอยู่แล้ว หากเราแปลงทั้ง XML และ HTML เป็น JSON โดยไม่ระบุเนื้อหาที่ซ้ำกันบทความจำนวนมากจะมีมากกว่าหนึ่ง URL ซึ่งจะทำให้หน้าซ้ำกันแข่งขันกันเพื่อให้ได้อันดับที่เกี่ยวข้องในเครื่องมือค้นหา อย่างชัดเจนเราต้องหาบทความ XML ที่สอดคล้องกับบทความ HTML ใด ในฐานะที่เป็นความท้าทายเพิ่มเติมเราต้องใช้วิธีการที่ไม่ได้ขึ้นอยู่กับการจับคู่สตริงที่ถูกต้องเนื่องจากอาจมีความแตกต่างเล็กน้อยระหว่าง XML และ HTML เก็บถาวรเช่นข้อความเสริมซึ่งจะป้องกันไม่ให้ทั้งสองแหล่งไม่เหมือนกัน เพื่อแก้ไขปัญหาเหล่านี้เราใช้อัลกอริทึมที่พัฒนาขึ้นสำหรับโครงการ TimesMachine ซึ่งใช้เทคนิค "shingling" แบบข้อความ อ่านเพิ่มเติมเกี่ยวกับเทคนิคที่นี่เทคนิคนี้จับคู่ส่วนใหญ่ของ "หายไป" บทความ HTML กับบทความ XML ที่มีอยู่ ตัวอย่างเช่นในปี 2004 เรามีบทความที่หายไป 60,000 รายการ แต่ขั้นตอนนี้ประสบความสำเร็จในการจับคู่บทความมากกว่า 42,000 รายการลดจำนวนสำเนาที่ซ้ำซ้อนได้ถึง 70% ส่วนที่เหลืออีก 30% ของบทความจะถูกคัดลอกโดยใช้ BeautifulSoup โอกาสใหม่ ๆ ในขณะที่เป้าหมายเดิมของเราคือการปรับปรุงคลังข้อมูลดิจิทัลของเราโครงการการย้ายถิ่นได้นำไปสู่โอกาสสำหรับโครงการในอนาคตเพื่อดึงดูดผู้อ่านของเราในคลังข้อมูลข้อมูลทางประวัติศาสตร์ของเราตัวอย่างเช่นเมื่อเร็ว ๆ นี้เราได้ขยาย TimesMachine เครื่องอ่าน PDF ที่กำหนดเองของเราเพื่อรวมการสแกนหนังสือพิมพ์จาก 1981-2002 อย่างไรก็ตามข้อความในบทความจาก 1851-1980 ยังสามารถใช้ได้เฉพาะในการสแกนใน TimesMachine ข้อความดิจิทัลฉบับเต็มจะนำประสบการณ์นี้ไปอีกขั้นขณะนี้เรากำลังร่วมมือกับ บริษัท ผู้ให้บริการถอดความเพื่อลดช่องว่างนี้โดยเริ่มตั้งแต่ปี 1960-1980 เพื่อให้ผู้อ่านสามารถค้นหาค้นคว้าและพบกับเนื้อหาได้ง่ายขึ้นตลอดประวัติศาสตร์ สิ่งต่างๆเริ่มดีขึ้น: เราเพิ่งเปิดตัวข้อความดิจิทัลฉบับเต็มของทุกบทความที่เขียนขึ้นในปี 1970 เราจะอัปเดต NYTimes.com ต่อไปในอนาคตอันใกล้นี้และจะย้ายข้อมูลบทความใหม่ คอยติดตาม! คุณสามารถติดตาม @NYTArchives บน Twitter เพื่อรับการอัปเดตเพิ่มเติมได้ในช่วงต้นปีนี้เราได้ขยายไทม์เมคอินน์ผู้อ่านเสมือนไมโครฟิล์มของเราอย่างเงียบ ๆ เพื่อรวมทุกฉบับของเดอะนิวยอร์กไทม์สที่เผยแพร่ระหว่างปีพ. ศ. 2524 และปี 2545 ก่อนที่จะมีการขยายตัวครั้งนี้ TimesMachine มีประเด็นที่ตีพิมพ์ในระหว่าง พ.ศ. 2394 และ พ.ศ. 2523 ซึ่งประกอบด้วย กว่า 11 ล้านบทความกระจายไปทั่วประมาณ 2.5 ล้านหน้า การขยายตัวใหม่จะเพิ่มอีก 8,035 ฉบับฉบับสมบูรณ์ซึ่งประกอบด้วยบทความ 1.4 ล้านฉบับในกว่า 1.6 ล้านเพจ การสร้างและขยาย TimesMachine นำเสนอเราด้วยความท้าทายด้านเทคนิคที่น่าสนใจหลายประการและในโพสต์นี้เราจะอธิบายถึงวิธีที่เราจัดการกับสองประเด็น ขั้นแรกเราจะพูดถึงความท้าทายพื้นฐานเกี่ยวกับ TimesMachine: ให้ผู้ใช้สามารถสแกนหนังสือพิมพ์ได้เต็มวันโดยไม่ต้องดาวน์โหลดข้อมูลนับร้อยเมกะไบต์ จากนั้นเราจะพูดถึงสตริงที่น่าสนใจซึ่งจับคู่ปัญหาที่เราต้องแก้ไขเพื่อรวมบทความที่เผยแพร่หลังจาก 1980 ใน TimesMachine คลังข้อมูล Pre-TimesMachine ก่อนที่ TimesMachine จะเปิดตัวในปี 2014 บทความจากที่เก็บถาวรสามารถค้นหาได้และพร้อมให้บริการแก่ผู้สมัครเป็นเอกสาร PDF เท่านั้น แม้ว่าจะมีการเข้าถึงที่เก็บถาวรปัญหาที่สำคัญสองประการในการดำเนินการคือบริบทและประสบการณ์ของผู้ใช้ Isolating ก บทความจากเนื้อหาโดยรอบจะลบบริบทที่เผยแพร่ออกไป ผู้อ่านสมัยใหม่อาจพบว่าในวันที่ 20 กรกฎาคม พ.ศ. 2512 ชายชื่อจอห์นแฟร์แฟคกลายเป็นชายคนแรกที่ข้ามมหาสมุทรแอตแลนติก อย่างไรก็ตามผู้อ่านที่ซึมซับใน The New York Times ในเช้าวันนั้นอาจได้รับความประทับใจอย่างมากจากข่าวหน้าหนึ่งว่า Apollo 11 ซึ่งลูกเรือของเขามี Neil Armstrong เพิ่งพุ่งเข้าสู่วงโคจรรอบดวงจันทร์เพื่อเตรียมพร้อมสำหรับการลงจอดดวงจันทร์ครั้งแรก การรู้ว่าบทความ John แฟร์แฟ็กซ์ถูกตีพิมพ์ลงในกระดาษอย่างไร (ด้านล่างซ้ายของหน้าแรก) รวมถึงสิ่งที่เกิดขึ้นในวันนั้นเป็นเรื่องที่น่าสนใจและมีคุณค่าต่อนักประวัติศาสตร์มากกว่าบทความที่ไม่มีบริบทของข่าวอื่น ๆ ของวันนี้. เราต้องการนำเสนอข้อมูลที่เก็บถาวรในพระสิริของพระคัมภีร์ทุกฉบับเนื่องจากตั้งใจที่จะถูกนำมาใช้ในวันที่พิมพ์ & mdash; หนึ่งฉบับในแต่ละครั้ง เป้าหมายของเราคือการสร้างประสบการณ์การรับชมของเหลวไม่ใช่เพื่อบังคับให้ผู้ใช้ดาวน์โหลดภาพความละเอียดสูงอย่างช้าๆ นี่เป็นวิธีที่เราทำท่อส่งผู้เผยแพร่โฆษณา เอกสารการพิมพ์ดิจิทัลของเรามีขนาดใหญ่ซึ่งมีเทราไบต์ของการสแกนหน้าความละเอียดสูง แม้จะมีปัญหาเพียงอย่างเดียว แต่ความต้องการในการจัดเก็บข้อมูลก็เพียงพอแล้ว ฉบับที่ 22 พฤษภาคม 1927 ประกาศความสำเร็จของการบินทรานส์แอตแลนติกของชาร์ลส์ลินเบิร์กผู้บุกเบิกประกอบด้วยหน้า 226 หน้าที่ซึ่งต้องใช้พื้นที่เก็บข้อมูลเกือบ 200 เมกะไบต์ เมื่อเราสร้าง TimesMachine เรารู้ว่าเราไม่มีทางที่เราจะคาดหวังให้ผู้ใช้นั่งผ่านการดาวน์โหลดหลายร้อยเมกะไบต์เพื่อเรียกดูปัญหาเดียว เราต้องการวิธีโหลดเฉพาะส่วนของปัญหาที่ผู้ใช้กำลังมองหา เราพบคำตอบจากไตรมาสที่คาดไม่ถึงบ้างและตอนนี้เมื่อคุณโหลดรุ่น Lindbergh 200 เมกะไบต์ในเบราว์เซอร์ของคุณการโหลดหน้าแรกจะต้องมีการส่งข้อมูลเพียงไม่กี่เมกะไบต์ เราบรรลุเป้าหมายนี้โดยใช้ซอฟต์แวร์แผนที่เพื่อแสดงแต่ละประเด็น เช่นเดียวกับหน้าของหนังสือพิมพ์ที่สแกนแผนที่ดิจิทัลก็เป็นภาพใหญ่จริงๆ เทคนิคที่ใช้บ่อยที่สุดในการแสดงแผนที่ดิจิทัล (และเทคนิคเดียวกันกับที่เราใช้สำหรับ TimesMachine) คือการปูกระเบื้องรูปภาพ ภาพขนาดใหญ่ถูกแบ่งออกเป็นภาพสี่เหลี่ยมจัตุรัสขนาดเล็กหรือ "กระเบื้อง" ที่คำนวณด้วยระดับการย่อ / ขยายที่หลากหลาย ซอฟแวร์เคลฟเวอร์ทำงานในเบราเซอร์และโหลดเฉพาะกระเบื้องที่ตรงกับพื้นที่ของภาพที่ผู้ใช้ต้องการดู มีห้องสมุดซอฟต์แวร์โอเพนซอร์สจำนวนมากที่สร้างขึ้นมาเพื่อทำและแสดงผลกระเบื้องดังกล่าว (เราใช้ GDAL สำหรับการผลิตกระเบื้องและ leaflet.js สำหรับการแสดงผล) สิ่งที่เราต้องทำคือปรับห้องสมุดเหล่านี้ให้แสดงหนังสือพิมพ์ เมื่อต้องการทำเช่นนี้เราได้สร้างกระบวนการผลิตที่เรียกว่า TimesMachine Publisher นี่คือวิธีการทำงาน สำหรับปัญหาที่กำหนดท่อจะใช้เวลา 3 ปัจจัยการผลิต ได้แก่ การสแกนหน้าเว็บจากไมโครฟิล์มไฟล์ XML ข้อมูลเมตาของบทความและไฟล์ INI ที่อธิบายขอบเขตทางเรขาคณิตของทุกบทความในทุกๆหน้า ท่อส่งเย็บหน้าแรกเข้าด้วยกันเป็นภาพเสมือนจริงขนาดใหญ่ พิกัดของทุกบทความในทุกหน้าจะถูกฉายจากพิกัดคาร์ทีเซียน (x, y) ลงในพิกัดทางภูมิศาสตร์ (ละติจูดและลองจิจูด) พิกัดที่คาดการณ์ไว้เหล่านี้จะถูกรวมเข้ากับ metadata ของบทความเป็นอ็อบเจ็กต์ JavaScript ขนาดใหญ่ที่อธิบายเนื้อหาของปัญหาที่สมบูรณ์ ภาพเสมือนจริงขนาดใหญ่ถูกตัดออกเป็นพัน ๆ ครั้งที่ 256 และครั้ง 256 พิกเซลที่คำนวณในหลายระดับการซูม ข้อมูลทั้งหมดนี้ถูกอัปโหลดไปยังเครือข่ายการกระจายเนื้อหา (CDN) เมื่อใดก็ตามที่ผู้ใช้ร้องขอกระดาษวันใน TimesMachine ซอฟต์แวร์ฝั่งไคลเอ็นต์จะดาวน์โหลดวัตถุ JSON ที่อธิบายเนื้อหาของกระดาษและร้องขอเฉพาะกระเบื้องที่จำเป็นเพื่อแสดงส่วนของกระดาษที่พอดีกับวิวพอร์ตของผู้ใช้ ข้อมูลเพิ่มเติมจะถูกโหลดเฉพาะเมื่อผู้ใช้เลื่อนหรือซูม ด้วยวิธีนี้ TimesMachine จะส่งหนังสือพิมพ์ให้กับลูกค้าได้อย่างรวดเร็วและมีประสิทธิภาพ การขยายเนื้อหา เราพบปัญหาที่น่าสนใจในความพยายามของเราในการขยายจำนวนปัญหา s ใน TimesMachine ในตอนต้น TimesMachine มีเฉพาะบทความที่ตีพิมพ์ระหว่างปีพ. ศ. 2394 และ 2523 การยกเว้นข้อมูลหลังจาก 1980 เกิดจากมุมแหลมที่น่าสนใจในประวัติศาสตร์ของที่เก็บถาวรของเรา เริ่มตั้งแต่ พ.ศ. 2524 เดอะไทม์ได้เริ่มเก็บรักษาข้อความดิจิทัลฉบับสมบูรณ์ของทุกบทความที่ตีพิมพ์เผยแพร่ เพื่อที่จะขยาย TimesMachine ปีพ. ศ. 2523 และรวมลิงก์ไปยังข้อความฉบับเต็มเราจำเป็นต้องทราบว่าที่เก็บข้อมูลการพิมพ์ที่สแกนของเราและที่จัดเก็บเอกสารดิจิทัลของเราสอดคล้องกันอย่างไร นี่เป็นวิธีที่เราคิดออกขั้นตอนแรกคือการเรียกใช้การจดจำอักขระออปติคัล (OCR) เกี่ยวกับบทความในที่จัดเก็บข้อมูลการสแกนที่สแกนเพื่อแปลงข้อความให้มีความชัดเจนที่สุดเท่าที่จะเป็นไปได้ เราใช้ tesseract-ocr สำหรับข้อมูลนี้ นี่เป็นตัวอย่างของข้อความ OCRed บางอย่าง: หลังจากทำเช่นนี้สำหรับทุกบทความในหนึ่งวันของปัญหาเราสิ้นสุดกับถังของสแกนบทความ OCRed กับ tesseract และถังของบทความจากที่เก็บข้อความแบบเต็ม จากนั้นเราก็ต้องหาว่าบทความไหนที่จับคู่ระหว่างถังทั้งสองซึ่งเป็นกระบวนการที่น่าสนใจ เนื่องจากบทความเกี่ยวกับ OCRed ไม่ค่อยมีการจับคู่ที่ตรงกันทั้งหมดสำหรับข้อความเต็มรูปแบบเราจึงไม่สามารถจัดเรียงบทความโดยเพียงแค่ทดสอบความเท่าเทียมกันของสตริง แต่เราใช้การจับคู่แบบฟัซซี่ วิธีการของเราใช้ปัญหาหนึ่งครั้งและพึ่งพาเทคนิคที่เรียกว่า "shingling" การใช้ shingling เราได้แปลงข้อความของบทความในชุดข้อมูลทั้งสองให้เป็นรายการโทเค็นแล้วเปลี่ยนรายการโทเค็นลงในรายการ < em> n - ลำดับเรียกว่า "งูสวัด" เราจะอธิบายด้วยคำพูดนี้โดยอับราฮัมลินคอล์น: 8 * "> นี่คือข้อความฉบับเต็มของเรา เราสร้างโทเค็นโดยแยกออกเป็นรายการคำที่คั่นด้วยช่องว่าง สตริง "ความลับ" ถือว่าเป็นโทเค็นในข้อความฉบับเต็ม ตอนนี้เราแปลงรายการโทเค็นลงในรายการ "งูสวัด" ซึ่งเป็นลำดับของโทเค็น ถ้าเราใช้ไม้เกลียวขนาด 4 ชิ้นเราจะจบด้วยสิ่งต่อไปนี้: 5 รายการของโทเค็น (ดังที่คุณเห็นเนื้อหาของรายการซ้อนทับกันเช่นงูสวัดบนหลังคา) เมื่อเราสร้างรายการโรคงูสวัดสำหรับทุกบทความในที่เก็บข้อมูลดิจิทัลแบบเต็มรูปแบบเราจะได้รับสิ่งที่ดูเหมือนดังนี้: เป็นสมมติฐานที่สมเหตุสมผลว่าลำดับของคำจากบทความ OCRed จะทับซ้อนกันจำนวนเงินที่ยุติธรรมกับลำดับของคำในบทความเดียวกันในที่เก็บข้อมูลแบบเต็ม เราต้องการรายชื่อบทความที่มีกรวดแต่ละแบบเพื่อให้เราสามารถ จำกัด ตัวเลือกของเราให้แคบลง Iterating ผ่านรายการข้างต้นเราสามารถแปลงข้อมูลของเราลงในตารางแฮชต่อไปนี้: ตอนนี้เรามีการทำแผนที่ของงูสวัดทั้งหมดที่ปรากฏในประเด็นที่กำหนดให้กับบทความเต็มรูปแบบจากฉบับที่มีแผ่นไม้มุงหลังคาแต่ละชิ้นเราจะทำซ้ำส่วนแรกของกระบวนการด้วยข้อความ OCRed และได้รับรายชื่องูสวัดสำหรับแต่ละบทความ . สมมติว่า OCRed article_A ประกอบด้วย shingle_2 และ shingle_5 เราสามารถใช้ตารางด้านบนเพื่อสร้างรายชื่อผู้สมัครบทความที่อาจเป็น "ตรงกัน" กับ article_A ด้วยการมองขึ้นไปบนเกล็ดเกล็ด 2 และเกล็ดเถื่อน 5 ในตารางเราสรุปได้ว่าบทความ 1 บทความ 2 บทความ 2 และบทความ 5 เป็นคำที่มีโอกาสตรงกับบทความ _A นี้ช่วยลดพื้นที่ปัญหา ตอนนี้แทนที่จะต้องเปรียบเทียบบทความ OCRed ทุกฉบับในบทความทุกฉบับในฉบับที่เกี่ยวข้องกับการเปรียบเทียบที่มีราคาแพงนับหมื่นเราจำเป็นต้องเปรียบเทียบรายการสั้น ๆ เท่านั้น ซึ่งจะลดจำนวนการเปรียบเทียบลงได้หลายระดับ เพื่อหาจำนวนความแตกต่างระหว่างข้อมูล OCRed กับบทความเต็มรูปแบบเราใช้ Python difflib library มันทำให้เราดีผลสะอาด: จากตัวอย่างเฉพาะนี้เป็นที่ชัดเจนว่าบทความ OCRed อาจเป็นบทความเดียวกับบทความฉบับเต็มฉบับที่ 1 ใช้กระบวนการนี้เราสามารถจับคู่ได้ประมาณ 80 เปอร์เซ็นต์ของบทความ ส่วนที่เหลืออีก 20 เปอร์เซ็นต์ไม่ได้มีคะแนนที่ชัดเจนพอสมควรซึ่งทำให้เราต้องฉลาดขึ้นนิดหน่อย ในโลกที่สมบูรณ์แบบความสัมพันธ์ระหว่างเรา ทั้งสองถังของเราบทความจะได้รับแบบหนึ่งต่อหนึ่ง แต่ในโลกนี้ก็เป็นจริงหลายต่อหลาย บทความข้อความเต็มรูปแบบบางส่วนถูกแสดงเป็นหลายพื้นที่ในที่เก็บถาวรที่สแกนแล้วและบางพื้นที่ในที่เก็บถาวรที่สแกนถูกส่งไปยังหลายรายการในที่จัดเก็บข้อมูลแบบเต็ม เราปรับความเหลื่อมล้ำด้วยการแยกข้อมูลออกเป็นย่อหน้าและดำเนินการตามขั้นตอนที่คล้ายคลึงกันกับขั้นตอนที่อธิบายไว้ข้างต้นในระดับย่อหน้า เราลงเอยด้วยการจับคู่โซนที่สมบูรณ์แบบใกล้เคียงกับที่เก็บถาวรแบบเต็มรูปแบบซึ่งสามารถค้นหาได้อย่างน่าพิศวง คุณสามารถตรวจสอบได้โดยการสำรวจคลังข้อมูลทั้งหมดของ Times ที่ timesmachine.nytimes.com เรามีความยินดีเป็นอย่างยิ่งที่ได้นำเสนอตัวอย่างการออกแบบใหม่ของ TimesMachine สมาชิกของเราสามารถอ่านฉบับสมบูรณ์ของเดอะนิวยอร์กไทม์สเป็นครั้งแรกในบริบทเดิม สำหรับแต่ละฉบับที่มีอยู่ใน TimesMachine ฉบับใหม่ทุกบทความทุกตัวอักษรและทุกโฆษณาจะรวมอยู่ในรูปแบบที่สามารถอ่านได้ซึ่งสามารถเชื่อมโยงและแบ่งปันได้ ก่อนที่เราจะเปลี่ยน TimesMachine เดิมใหม่เราหวังว่าจะได้รับการตอบรับโดยการเผยแพร่ต้นแบบของประสบการณ์ใหม่ เราได้รวมหกประเด็นต่อไปนี้ไว้ในต้นแบบ:
  • 25 พฤษภาคม 1883: การเปิดสะพาน Brooklyn Bridge
  • 29 มิถุนายน 1914: การลอบสังหารคุณหญิง Franz Ferdinand
  • สิงหาคม 7, 1945: การทิ้งระเบิดปรมาณูบนฮิโรชิมา
  • ตุลาคม 5, 1957: การเปิดตัว Sputnik
  • 20 กรกฎาคม 1969 : วันก่อนที่ดวงจันทร์จะลงจอด
  • 1 กรกฎาคม 1971: คำตัดสินของศาลฎีกาที่อนุญาตให้ The Times ดำเนินการต่อในหนังสือพิมพ์ The Pentagon Papers
  • นี่เป็นงานที่กำลังดำเนินการอยู่และเราต้องการทราบว่าคุณคิดอย่างไร หากคุณสังเกตเห็นข้อบกพร่องคุณรู้สึกว่าซอฟต์แวร์ไม่มีคุณลักษณะหรือคิดว่าควรปรับปรุงอะไรโปรดฝากความคิดเห็นไว้ด้านล่างหรือส่งจดหมายมาที่ timesmachine @ nytimes ดอทคอม โปรดทราบว่า Chrome, Safari, Firefox และ Internet Explorer เวอร์ชันล่าสุดได้รับการสนับสนุน แต่เบราว์เซอร์รุ่นเก่าจะมีปัญหาในการแสดงต้นแบบ พื้นหลังและรายละเอียดทางเทคนิค
    TimesMachine ได้ให้บริการสมาชิกของเราด้วยความสามารถในการเรียกดูหน้าเว็บที่สแกนได้จากหนังสือพิมพ์ New York Times ทุกฉบับที่ตีพิมพ์ระหว่างปีพ. ศ. 2394 และ 2465 ไทม์แมชยังเป็นหนึ่งใน บริษัท ที่เร็วที่สุดของเรา จู่โจมเข้าสู่คลาวด์คอมพิวติ้ง อย่างไรก็ตาม TimesMachine สร้างขึ้นในปี 2008 และมีการเปลี่ยนแปลงมากในช่วงห้าปีที่ผ่านมา พื้นที่เก็บข้อมูลมีราคาถูกคอมพิวเตอร์คลาวด์สามารถเข้าถึงได้ง่ายและเว็บเบราเซอร์สมัยใหม่ช่วยให้เราสามารถสร้างแอพพลิเคชันที่มีความซับซ้อนมากขึ้น ดังนั้นก่อนหน้านี้ในปีนี้ทีมงานนักพัฒนาซอฟต์แวร์และนักออกแบบรายเล็ก ๆ ได้ตั้งค่าประสบการณ์การท่องเว็บเก็บถาวรบน NYTimes.com เป้าหมายของเราคือการขจัดอุปสรรคระหว่างผู้ใช้และหนังสือพิมพ์ & mdash; เพื่อสร้างประสบการณ์ที่ช่วยยกระดับภาพลักษณ์และเมตาดาต้าที่กว้างใหญ่ของเรา แต่ให้ความรู้สึกใกล้เคียงกับการถือครองหนังสือพิมพ์ในรูปแบบเว็บอนุญาตเพื่อสร้าง TimesMachine ใหม่เรานำเทคโนโลยีและเทคนิคใหม่มาใช้ใหม่ตั้งแต่ไตรมาสที่ไม่น่าจะเป็นไปได้: ระบบสารสนเทศภูมิศาสตร์ ทุกปัญหาที่ได้รับการสแกนของไทม์สเป็นภาพดิจิทัลที่มีขนาดใหญ่มาก ตัวอย่างเช่นการสแกนฉบับวันที่ 20 มิถุนายน 1969 เป็นภาพขนาด 13.2 กิกะพิกเซลที่มีน้ำหนักมากกว่า 200 เมกะไบต์ เนื่องจากการส่งภาพดังกล่าวไปให้ผู้ใช้ที่สนใจทุกคนจึงจำเป็นต้องหาวิธีการส่งเฉพาะส่วนของเอกสารที่สแกนซึ่งผู้ใช้กำลังสนใจในการดู เพื่อแก้ปริศนานี้เราหันไปหา Tilin g ซึ่งเป็นโซลูชันที่มักใช้ในการแสดงแผนที่ออนไลน์ ด้วยการปูกระเบื้องภาพขนาดใหญ่จะถูกแบ่งออกเป็นกระเบื้องขนาดเล็กที่คำนวณได้ในระดับการซูมหลายระดับ เมื่อผู้ใช้ต้องการดูภาพกระเบื้องในเบราว์เซอร์จะมีการดาวน์โหลดเฉพาะกระเบื้องที่ต้องการเพื่อแสดงส่วนที่มองเห็นเท่านั้น วิธีนี้ช่วยลดความต้องการแบนด์วิธได้อย่างมากและมีข้อดีอีกประการคือทำให้ผู้ใช้สามารถซูมและลากภาพขนาดใหญ่ได้เนื่องจากระบบการพัฒนาสำหรับการสร้างและแสดงภาพกระเบื้องจากรอยขีดข่วนจะทำให้เราต้องเสียค่าใช้จ่ายเราจึงโชคดีมากที่มีห้องสมุดโอเพนซอร์สที่ยอดเยี่ยมมากมายสำหรับวัตถุประสงค์เหล่านี้ สำหรับการประมวลผลและการปูกระเบื้องหนังสือพิมพ์ที่เรานำมาใช้กับ
    GDAL และ ImageMagick สำหรับการแสดงผลภาพแบบเรียงต่อกันของเบราว์เซอร์เราอาศัย ไลบรารีการทำแผนที่แผ่นปลิว นอกเหนือจากซอฟต์แวร์ที่ยอดเยี่ยมแล้วเรายังได้รับคำแนะนำที่มีค่าจากคนสำคัญของทั้ง Geo NYC และ
    1
    แสดงความคิดเห็นที่ 0-0 จากทั้งหมด 0 ความคิดเห็น
    ข้อความ
    ชื่อผู้โพส
    ข้อมูลสำหรับการติดต่อกลับ (ไม่เปิดเผย เห็นเฉพาะเจ้าของร้าน)
    อีเมล
    เบอร์มือถือ
    • ตอบกระทู้

    MEMBER

    เข้าสู่ระบบด้วย
    เข้าสู่ระบบ
    สมัครสมาชิก

    ยังไม่มีบัญชีเทพ สร้างบัญชีใหม่ ไม่เกิน 5 นาที
    สมัครสมาชิก (ฟรี)

    STATISTICS

    หน้าที่เข้าชม119,851 ครั้ง
    ผู้ชมทั้งหมด39,433 ครั้ง
    เปิดร้าน16 ม.ค. 2557
    ร้านค้าอัพเดท22 ส.ค. 2560

    CONTACT US

    0855992944
    facebooktwitter

    BEST SELLER

    369.00 บาท
    314.00 บาท
    • สั่งซื้อ

    SALE

    319.00 บาท
    99.00 บาท
    สินค้าหมด
    299.00 บาท
    99.00 บาท
    สินค้าหมด
    Go to Top