ที่เก็บนี้ประกอบด้วยโครงการขนาดเล็กที่ทำขึ้นเป็นส่วนหนึ่งของการดึงข้อมูลหลักสูตรและการสกัด - ฤดูใบไม้ผลิ 2014 หลักสูตรได้รับคำสั่งจากดร. Vasudeva Varma
## ข้อกำหนด Python 2.6 หรือสูงกว่า
Libraries Python:
## ปัญหาโครงการขนาดเล็กเกี่ยวข้องกับการสร้างเครื่องมือค้นหาบนการถ่ายโอนข้อมูล Wikipedia โดยไม่ต้องใช้ดัชนีภายนอกใด ๆ สำหรับโครงการนี้เราใช้ Data Dump of 2013 ขนาด 43 GB ผลการค้นหาจะกลับมาตามเวลาจริง การค้นหาหลายคำและหลายฟิลด์บนคลังข้อมูล Wikipedia ถูกนำมาใช้ Sax Parser ใช้เพื่อแยกวิเคราะห์ XML Corpus หลังจากการแยกวิเคราะห์การดำเนินการทางสัณฐานวิทยาดังต่อไปนี้จะถูกนำไปใช้:
ดัชนีประกอบด้วยคำพูดและรายการโพสต์ถูกสร้างขึ้นสำหรับคลังข้อมูลหลังจากดำเนินการข้างต้นพร้อมกับชื่อเรื่องและการแมปที่ไม่ซ้ำกันที่ฉันใช้สำหรับแต่ละเอกสาร ดังนั้นรหัสเอกสารของหน้า Wikipedia จะถูกละเว้น สิ่งนี้ช่วยในการลดขนาดเนื่องจากรหัสเอกสารไม่ได้เริ่มต้นด้วยตัวเลขหลักเดียวในคลังข้อมูล เนื่องจากขนาดของคลังข้อมูลจะไม่พอดีกับหน่วยความจำหลักไฟล์ดัชนีหลายไฟล์ถูกสร้างขึ้น ถัดไปไฟล์ดัชนีเหล่านี้จะถูกรวมเข้าด้วยกันโดยใช้ K-Way รวมกับการสร้างไฟล์ดัชนีตามฟิลด์
ตัวอย่างเช่น index0.txt, index1.txt, index2.txt ถูกสร้างขึ้น ไฟล์เหล่านี้อาจมีคำเดียวกัน ดังนั้นการผสาน K Way จะถูกนำไปใช้และไฟล์ที่ใช้ฟิลด์ถูกสร้างขึ้นพร้อมกับออฟเซ็ตที่เกี่ยวข้อง ไฟล์ที่ใช้ฟิลด์เหล่านี้ถูกสร้างขึ้นโดยใช้มัลติเธรด สิ่งนี้ช่วยในการทำหลาย I/O พร้อมกัน นอกจากนี้ยังมีการสร้างไฟล์คำศัพท์ด้วย
พร้อมกับสิ่งเหล่านี้ฉันได้เก็บออฟเซ็ตของไฟล์ฟิลด์แต่ละไฟล์ สิ่งนี้จะช่วยลดเวลาการค้นหาเป็น o (logm * logn) โดยที่ m คือจำนวนคำในไฟล์คำศัพท์และ m คือจำนวนคำในไฟล์ฟิลด์ที่ใหญ่ที่สุด
โฟลเดอร์ SRC มีไฟล์ต่อไปนี้:
### ฟังก์ชั่นหลัก:
ในการเรียกใช้รหัสนี้เรียกใช้สิ่งต่อไปนี้: Python Wikiindexer.py ./sampletext ./OutputFolderPath
เพื่อเรียกใช้รหัสนี้เรียกใช้สิ่งต่อไปนี้: python search.py ./OutputFolderPath
### ฟังก์ชั่นผู้ช่วย:
TextProcessing.py ฟังก์ชั่นผู้ช่วยนี้จะทำการประมวลผลล่วงหน้าทั้งหมด มันทำหน้าที่เป็นผู้ช่วยสำหรับ search.py, wikiindexer.py
fileHandler.py ฟังก์ชั่นนี้ทำล่วงหน้าไฟล์ล่วงหน้าทั้งหมด มันทำหน้าที่เป็นผู้ช่วยสำหรับ wikiindexer.py