เมนู

การจับคู่ชื่อประเทศกับชื่อเรียกอื่น: นิยามชื่อหลักก่อนจึงค่อยจับคู่

การจับคู่ชื่อประเทศต้องเริ่มจากนิยามชื่อหลักที่ชัดเจน แล้วจึงจัดการรูปเขียน ชื่อเรียกอื่น และขีดจำกัดของการจับคู่แบบคลาดเคลื่อน

เผยแพร่เมื่อ

  • การจับคู่ชื่อ
  • ชื่อเรียกอื่น

การจับคู่ชื่อประเทศกับชื่อเรียกอื่นเป็นปัญหาที่ดูเหมือนแก้ได้ด้วยการเทียบข้อความ แต่ความจริงคือเป็นปัญหาของการตกลงความหมายก่อน แล้วจึงเป็นการเทียบข้อความ บทความนี้จึงไล่ลำดับตั้งแต่การกำหนดชื่อหลัก ไปจนถึงขีดจำกัดที่ควรยอมรับว่าจับคู่ไม่ได้

ทำไมชื่อประเทศหนึ่งจึงมีได้หลายแบบ?

เพราะชื่อประเทศถูกใช้ในบริบทที่ต่างกัน แต่ละบริบทต้องการความยาวและระดับความเป็นทางการต่างกัน ชื่อที่ใช้ในเอกสารราชการจึงยาวและเป็นทางการกว่าชื่อที่ใช้ในชีวิตประจำวัน

เพราะภาษาที่ใช้เขียนชื่อนั้นมีหลายภาษา และแต่ละภาษามีธรรมเนียมการทับศัพท์ของตัวเอง ซึ่งทำให้ชื่อในภาษาหนึ่งไม่สามารถแปลงเป็นอีกภาษาหนึ่งได้อย่างตรงตัวเสมอ

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

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

ทั้งสี่เหตุผลนี้ทำให้การมีชื่อเดียวต่อหนึ่งประเทศไม่เพียงพอ และการมีหลายชื่อก็ต้องมีกฎว่าชื่อใดเป็นชื่อหลัก

ชื่อหลักควรถูกกำหนดอย่างไร?

ชื่อหลักควรเลือกจากแหล่งอ้างอิงที่นิยามไว้ชัดเจนและมีการเผยแพร่การเปลี่ยนแปลง ไม่ใช่เลือกจากความคุ้นเคยของทีม

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

การมีชื่อหลักเพียงหนึ่งเดียวยังทำให้การตรวจความซ้ำซ้อนทำได้จริง เพราะถ้าไม่มีชื่อหลัก จะไม่มีเกณฑ์ว่าสองรายการที่ชื่อต่างกันเป็นรายการเดียวกันหรือไม่

สิ่งที่ต้องระวังคือการเปลี่ยนชื่อหลักบ่อย เพราะการเปลี่ยนจะกระทบข้อมูลย้อนหลังจำนวนมาก ชื่อหลักจึงควรเปลี่ยนเฉพาะเมื่อมีการเปลี่ยนแปลงอย่างเป็นทางการ ไม่ใช่เมื่อมีทีมใหม่เข้ามาและชอบชื่ออื่นมากกว่า

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

สิ่งที่มองไม่เห็นในข้อความมีผลต่อการเทียบอย่างไร?

ข้อความที่ดูเหมือนเหมือนกันบนหน้าจออาจไม่เหมือนกันในระดับข้อมูล เพราะตัวอักษรที่ประกอบเป็นรูปเดียวกันสามารถสร้างได้ด้วยรหัสที่ต่างกัน และบางภาษามีรูปเขียนที่ต้องประกอบจากหลายส่วน

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

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

อีกจุดที่มองไม่เห็นคือช่องว่างและเครื่องหมายวรรคตอนที่ซ่อนอยู่ รวมถึงช่องว่างที่ไม่ใช่ช่องว่างปกติ ซึ่งมักติดมาจากการคัดลอกวาง

สิ่งที่ต้องหลีกเลี่ยงคือการแก้ข้อความที่ผู้ใช้ส่งมาแล้วบันทึกทับ เพราะเมื่อการแก้ผิด จะไม่เหลือข้อมูลต้นฉบับให้ตรวจสอบ

ตารางชื่อเรียกอื่นควรมีอะไรบ้าง?

รายการแรกคือชื่อในแต่ละภาษาที่ระบบรองรับ ซึ่งใช้รองรับการค้นหาของผู้ใช้ที่พิมพ์ด้วยภาษาของตัวเอง

รายการที่สองคือชื่อเรียกอย่างไม่เป็นทางการและคำย่อที่ผู้ใช้ใช้จริง ซึ่งเก็บได้จากการรวบรวมคำค้นและจากรายงานของฝ่ายสนับสนุน

รายการที่สามคือชื่อเดิมที่เลิกใช้แล้ว ซึ่งต้องมีวันที่เริ่มและวันที่สิ้นสุด เพื่อให้รู้ว่าควรใช้กับข้อมูลช่วงใด

รายการที่สี่คือรหัสทุกระบบที่ระบบอื่นอ้างอิง ซึ่งช่วยให้เชื่อมข้อมูลกับระบบภายนอกได้โดยไม่ต้องเทียบชื่อ

ทุกแถวในตารางควรมีที่มาและวันที่กำกับ เพื่อให้ตรวจสอบได้ว่าข้อมูลนี้มาจากที่ใด และควรถูกทบทวนเมื่อใด

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

การจับคู่แบบคลาดเคลื่อนควรไปได้ไกลแค่ไหน?

การจับคู่แบบคลาดเคลื่อนมีประโยชน์เมื่อผู้ใช้พิมพ์ผิดเล็กน้อย และเป็นเรื่องที่ผู้ใช้คาดหวังจากช่องค้นหาในปัจจุบัน

แต่การจับคู่แบบคลาดเคลื่อนมีอันตรายเมื่อชื่อของสองพื้นที่ต่างกันเพียงเล็กน้อย ซึ่งเป็นกรณีที่พบได้จริงในภาษาที่มีรูปเขียนใกล้เคียงกัน

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

สิ่งที่ต้องกำหนดล่วงหน้าคือระดับความคลาดเคลื่อนที่ยอมรับได้ และต้องทดสอบกับคู่ชื่อที่ใกล้เคียงกันมากที่สุดที่หาได้ ไม่ใช่ทดสอบเฉพาะกรณีที่ผิดชัดเจน

ในงานที่มีความเสี่ยงสูง เช่นการบันทึกข้อมูลที่ต้องตรงกับเอกสาร ควรบังคับให้ผู้ใช้ยืนยันเสมอเมื่อเป็นการจับคู่แบบคลาดเคลื่อน

การทดสอบช่องค้นหาด้วยชื่อหลายรูปแบบมีรายละเอียดในบทความประเทศกับภาษาไม่เหมือนกัน

สำหรับนักพัฒนา: เก็บต้นฉบับไว้เสมอ

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

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

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

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

ข้อที่ห้าคือทำให้รายการชื่อเรียกอื่นแก้ไขได้โดยไม่ต้องแก้โค้ด พร้อมบันทึกว่าใครเพิ่มและเมื่อใด

จะเริ่มปรับปรุงการจับคู่ได้จากตรงไหน

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

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

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

อ่านต่อ

บทความเกี่ยวกับ รูปแบบที่อยู่และข้อมูลตัวตนตามประเทศ

บทความเกี่ยวกับ รูปแบบที่อยู่และข้อมูลตัวตนตามประเทศ

รายการนี้แสดงเฉพาะบทความในหัวข้อของหน้านี้