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


11

ฉันกำลังทำงานกับแอปพลิเคชัน OCR ที่ฉันต้องเลือกตัวเลือกตามการป้อนข้อความของผู้ใช้

Ex:
Available Options:
["python", "ruby", "java", "clojure", "haskell"]

Input: kava
Output: java

Input: ruby
Output: ruby

Input: clujuro
Output: clojure

etc.. 

แอปพลิเคชันของฉันใช้ภาษาไพ ธ อนมีขั้นตอนวิธีแก้ไขปัญหานี้อยู่แล้ว


1
อาจไม่คุ้มค่าที่จะแก้ไขในขณะนี้ แต่ IMO ชื่อที่เหมาะสมกว่านั้นคือ "วิธีการกำหนดระยะห่าง (ความแตกต่าง) ระหว่างสตริง"
Jeff Welling

3
@ เจฟฟ์: แล้วฉันจะไม่พบคำถามนี้เพราะฉันไม่มีความคิดว่าสิ่งที่ฉันต้องการอาจจะเรียกว่า "ความแตกต่างของระยะทาง" ... และนั่นไม่ใช่เหตุผลเดียวที่จะไม่แก้ปัญหาที่คุณต้องการใน คำถาม. อาจขัดขวางผู้คนจากการแนะนำวิธีแก้ไขปัญหาอื่นที่คุณกำลังประสบอยู่ ในกรณีที่จุด: คำตอบเสียงดัง
Marjan Venema

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

คำตอบ:


10

สิ่งนี้ทำได้โดยอัลกอริทึมของหมวดหมู่ "การจับคู่สตริงโดยประมาณ " วัดร่วมกันเพื่อเปรียบเทียบสองสายที่เรียกว่าLevenshtein ระยะทาง มีการดำเนินงานที่มีอยู่หลามเป็นที่นี่

คุณเปรียบเทียบอินพุตกับเอาต์พุตที่เป็นไปได้โดยทั่วไปแล้วเลือกอินพุตที่มีระยะทางน้อยที่สุดกับเอาต์พุตที่ต้องการ

บทความวิกิพีเดียยังกล่าวถึงอัลกอริธึมอื่น ๆ อีกมากมายซึ่งคุณสามารถลองได้ในกรณีที่คุณต้องการบางสิ่งที่เฉพาะเจาะจงมากขึ้น


ฉันมีปัญหาที่คล้ายกันในทับทิมและนี่คือวิธีที่ฉันแก้ไขมัน
Jeff Welling

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.