ระยะทางจาโร-วิงเคลอร์

ระยะทางจาโร-วิงเคลอร์ (Jaro–Winkler distance)  คือวิธีการแบบหนึ่งที่ใช้วัดความเหมือนกันระหว่างสองสายอักขระจากจำนวนตัวอักษรร่วม โดย วิลเลียมส วิงเคลอร์ (William Winkler) ได้นำวิธีการเปรียบเทียบสายอักขระแบบระยะทางจาโร ที่ แมททิว จาโร (Matthew Jaro) ได้นำเสนอขึ้น มาปรับปรุงเพิ่มเติม จึงเรียกว่าระยะทางจาโร-วิงเคลอร์ โดยค่าที่ได้จากวิธีวัดแบบระยะทางจาโร-วิงเคลอร์ จะมีค่าตั้งแต่ 0 (สายอักขระทั้งสองไม่มีตัวใดตรงกันเลย) ถึง 1 (สายอักขระทั้งสองตรงกันทุกตัว)
ระยะทางจาโร-วิงเคลอร์ ถูกออกแบบมาเพื่อใช้กับชุดของสายอักขระสั้นๆ เช่นชื่อคน โดยถูกพัฒนาเพื่อใช้เปรียบเทียบชื่อ ในการสำรวจสำมะโนประชากรของประเทศสหรัฐอเมริกา โดยระยะทางจาโรจะใช้หลักการวัดความต่างกัน ของสายอักขระจากจำนวนตัวอักษรที่เหมือนกัน และอยู่ในตำแหน่งใกล้เคียงกัน คือตำแหน่งห่างกันไม่เกินครึ่งหนึ่งของความยาวอักขระสายที่สั้น จากผลวิจัยของวิงเคลอร์พบว่า ความคลาดเคลื่อนโดยบังเอิญ มักเกิดกับตัวอักษรที่อยู่ตอนปลายของสายอักขระหลังจากตัวอักษรที่สี่เป็นต้นไป และพบว่าหากสายอักขระยิ่งยาวขึ้น ความคลาดเคลื่อนจะมากตามไปด้วย ระยะทางจาโร-วิงเคลอร์จึงนำค่าที่ได้จากระยะทางจาโร มาให้น้ำหนักความต่างกันของสายอักขระเพิ่ม โดยพิจารณาจากตำแหน่งของตัวอักษรและความยาวของสายอักขระ

**นิยาม**
ให้  คือระยะทางจาโร ของสายอักขระสองสาย จะได้
-  คือความยาวของสายอักขระสายแรก-  คือความยาวของสายอักขระสายที่สอง-  คือจำนวนคู่ของตัวอักษรที่ตรงกัน-  คือจำนวนเต็มครึ่งหนึ่ง ของคู่อักษรที่ตรงกันที่ต้องเปลี่ยนลำดับ
หากสายอักขระสองสาย มีตัวอักษรที่เหมือนกันแต่ตำแหน่งไม่ตรงกัน จะถือว่าอักษรนั้นตรงกัน ถ้าระยะห่างระหว่างอักษรที่เหมือนกันของอักขระสองสาย มีค่าไม่เกิน r โดยที่   
ตัวอย่างเช่น การเทียบ CRATE กับ TRACE ระยะห่างระหว่างตัวอักษรสูงสุดที่ยังถือว่าตรงกันคือ (5/2)-1 = 1.5 จะเห็นว่ามีเพียงตัวอักษร ‘R’ ‘A’ ‘E’ เท่านั้นที่อักษรตรงกัน ถึงแม้ว่า ‘C’ และ ‘T’ จะปรากฏที่สายอักขระทั้งสอง แต่ระยะห่างของ ‘C’ ระหว่างสายอักขระสองสายมีค่าเกิน 1 (สายอักขระแรก C อยู่ตำแหน่งที่ 1 สายอักขระที่สอง C อยู่ที่ตำแหน่งที่ 4 ดังนั้นห่างกัน 4 – 1 = 3 ซึ่งเกิน r) จึงไม่ถือว่าตรงกัน สำหรับอักษร ‘T’ ก็เช่นเดียวกัน ดังนั้น c จึงมีค่าเท่ากับ 3 และ t = 0 (จำนวนอักษรที่ตรงกันคือ 3 ซึ่งอักษรที่ตรงกันทั้งสามนี้ ไม่มีการสลับตำแหน่งกัน) กรณี DwAyNE เทียบกับ DuANE จะเห็นว่าคู่ของอักษรที่ตรงกันมีตำแหน่งเรียงกันตามลำดับเหมือนกันทั้งสองสายคือ D-A-N-E ดังนั้นจึงไม่มีตำแหน่งที่ต้องต้องเปลี่ยนลำดับ t จึงเท่ากับ 0
ให้  คือระยะทางจาโร-วิงเคลอร์
-  คือระยะทางจาโร สำหรับสายอักขระสองสาย-  คือความยาวของอักขระด้านหน้าที่ตรงกัน เริ่มจากตำแหน่งแรกจนถึงตำแหน่งสุดท้ายที่ตรงกัน โดยค่าที่ได้จะต้องไม่เกิน 4

**ตัวอย่าง**
ให้  แทนความยาวของสายอักขระ MARTHA และ  แทนความยาวของสายอักขระ MARHTA จะได้- คู่ของตัวอักษรที่ตรงกัน (M, A, R, T, H, A) (M, A, R, H, T, A) 
อักษรที่ตรงกัน 6 ตัว มีอักษรสองตัวที่ไม่ได้เรียงกันตามลำดับ คืออักษรตำแหน่งที่ 4 และ 5 ดังนั้น 
จะได้ค่าระยะทางจาโร
มี 3 อักขระแรกที่เข้ากันคือ (M, A, R) ดังนั้น  
จะได้ค่าระยะทางจาโร-วิงเคลอร์

ให้  แทนความยาวของสายอักขระ JONES และ  แทนความยาวของสายอักขระ JOHNSON จะได้- คู่ของตัวอักษรที่ตรงกัน (J, O, N, S) (J, O, N, S) 
อักษรที่ตรงกันทั้ง 4 ตัว มีตำแหน่งเรียงกันตามลำดับเหมือนกันทั้งสองสายอักขระ ดังนั้น  
จะได้ค่าระยะทางจาโร
มี 2 อักขระแรกที่เข้ากันคือ (J, O) ดังนั้น  
จะได้ค่าระยะทางจาโร-วิงเคลอร์

ให้  แทนความยาวของสายอักขระ DWAYNE และ  แทนความยาวของสายอักขระ DUANE จะได้- คู่ของตัวอักษรที่ตรงกัน (D, A, N, E) (D, A, N, E) 
อักษรที่ตรงกันทั้ง 4 ตัว มีตำแหน่งเรียงกันตามลำดับเหมือนกันทั้งสองสายอักขระ ดังนั้น  
จะได้ค่าระยะทางจาโร
มีเพียงอักขระแรกที่เข้ากัน คือ (D) ดังนั้น  
จะได้ค่าระยะทางจาโร-วิงเคลอร์

ให้  แทนความยาวของสายอักขระ DIXON และ  แทนความยาวของสายอักขระ DICKSONX จะได้- คู่ของตัวอักษรที่ตรงกัน (D, I, O, N) (D, I, O, N) 
อักษรที่ตรงกันทั้ง 4 ตัว มีตำแหน่งเรียงกันตามลำดับเหมือนกันทั้งสองสายอักขระ ดังนั้น 
สำหรับอักษร X ในสายอักขระไม่นำมาพิจาณา เนื่องจากระยะห่างของ X ระหว่างสายอักขระสองสายมีค่าเกิน r 
จะได้ค่าระยะทางจาโร
มี 2 อักขระแรกที่เข้ากันคือ (D, I) ดังนั้น  
จะได้ค่าระยะทางจาโร-วิงเคลอร์


**ดูเพิ่ม**
ระยะทางแฮมมิง
*การตรวจจับและแก้ไขความผิดพลาด- ขั้นตอนวิธีสายอักขระ (:en:String algorithms)

**อ้างอิง**
 cite journal | author = Jaro, M. A. | title = Advances in record linkage methodology as applied to the 1985 census of Tampa Florida | journal = Journal of the American Statistical Society | year = 1989 | volume = 84 | issue = 406 |pages=414–20| url = - doi=10.1002/sim.4780140510- cite journal | author = Winkler, W. E. | title = Overview of Record Linkage and Current Research Directions | journal = Research Report Series, RRS | year = 2006 | volume = | issue = | url = http://www.census.gov/srd/papers/pdf/rrs2006-02.pdf

**แหล่งข้อมูลอื่น**
  Implementation & documentation in Java   LingPipe.  Features extensive comparison with the original strcmp.c implementation.-  PHP implementation released under GPLv3.0 date=2013-01-03 
หมวดหมู่:การวัดความคล้ายกันของสายอักขระ
หมวดหมู่:ทฤษฎีสารสนเทศ