Snowball คือภาษาประมวลผลสตริงขนาดเล็กสำหรับสร้างอัลกอริธึมการสกัดกั้นสำหรับใช้ในการดึงข้อมูล รวมถึงชุดอัลกอริธึมการสกัดกั้นที่นำมาใช้
Snowball เดิมออกแบบและสร้างโดย Martin Porter Martin เกษียณจากการพัฒนาในปี 2014 และขณะนี้ Snowball ได้รับการดูแลให้เป็นโครงการชุมชน เดิมที Martin เลือกชื่อ Snowball เพื่อเป็นเกียรติแก่ SNOBOL ซึ่งเป็นภาษาในการจัดการเครื่องสายที่ยอดเยี่ยมจากทศวรรษ 1960 ตอนนี้ยังทำหน้าที่เป็นอุปมาว่าโครงการเติบโตอย่างไรโดยการรวบรวมการมีส่วนร่วมเมื่อเวลาผ่านไป
คอมไพเลอร์ Snowball แปลโปรแกรม Snowball เป็นซอร์สโค้ดในภาษาอื่น - ปัจจุบันรองรับ Ada, ISO C, C#, Go, Java, Javascript, Object Pascal, Python และ Rust
พื้นที่เก็บข้อมูลนี้มีซอร์สโค้ดสำหรับคอมไพเลอร์สโนว์บอลและอัลกอริทึมการกั้น คอมไพเลอร์สโนว์บอลเขียนด้วย ISO C - คุณจะต้องมีคอมไพเลอร์ C ที่รองรับ C99 เพื่อสร้างมัน (แต่โค้ด C ที่สร้างขึ้นควรทำงานกับคอมไพเลอร์ ISO C ใดก็ได้)
ดู https://snowballstem.org/ สำหรับข้อมูลเพิ่มเติมเกี่ยวกับสโนว์บอล
การสะกดคำจะแมปรูปแบบต่างๆ ของคำเดียวกันกับ "ต้นกำเนิด" ทั่วไป - ตัวอย่างเช่น สเต็มเมอร์ภาษาอังกฤษจะแมป การเชื่อมต่อ , การเชื่อมต่อ , การเชื่อมต่อ , เชื่อมต่อ และ การเชื่อมต่อ เพื่อ เชื่อมต่อ ดังนั้นการค้นหา การเชื่อมต่อ ก็จะค้นหาเอกสารที่มีเพียงแบบฟอร์มอื่นเท่านั้น
รูปแบบต้นกำเนิดนี้มักจะเป็นคำในตัวมันเอง แต่ก็ไม่ได้เป็นเช่นนั้นเสมอไป เนื่องจากนี่ไม่ใช่ข้อกำหนดสำหรับระบบค้นหาข้อความซึ่งเป็นสาขาการใช้งานที่ตั้งใจไว้ นอกจากนี้ เรายังมุ่งหวังที่จะรวมคำที่มีความหมายเหมือนกัน มากกว่าคำทุกคำที่มีรากศัพท์ทางภาษาเหมือนกัน (ดังนั้น ความน่าเกรงขาม และ น่าเกรงขาม ไม่มีต้นกำเนิดเดียวกัน) และการสะกดคำมากเกินไปเป็นปัญหามากกว่าการสะกดคำต่ำเกินไป ดังนั้นเราจึงมักจะไม่ เกิดขึ้นในกรณีที่แก้ไขได้ยาก หากคุณต้องการลดคำให้อยู่ในรูปแบบรากเสมอ และ/หรือรับรูปแบบรากซึ่งเป็นคำนั้นเอง อัลกอริธึมการแยกคำของ Snowball อาจไม่ใช่คำตอบที่ถูกต้อง