टर्मिनल में कई प्रोग्राम इस्तेमाल करते समय अक्सर ऐसा होता है कि हम कोई कमांड गलत टाइप कर देते हैं और प्रोग्राम error दिखा देता है। लेकिन Git या npm जैसे कुछ प्रोग्राम ऐसे भी होते हैं जो हमारे गलत टाइप किए गए कमांड से मिलते-जुलते कमांड सुझा देते हैं, या कभी-कभी टाइपो को खुद ही ठीक करके उचित तरीके से आगे बढ़ जाते हैं। आखिर यह फीचर काम कैसे करता है? मिलते-जुलते कमांड सुझाने वाली इस सुविधा को लगभग वैसा ही implement करके उसके सिद्धांत को समझते हैं.
- समस्या को परिभाषित करना
→ मिलते-जुलते कमांड ढूँढ़ने की समस्या को "दो strings की समानता जाँचने की समस्या" में बदला जा सकता है।
- Edit distance
→ Levenshtein distance
- समस्या का समाधान
5 टिप्पणियां
इस रेपो का ज़िक्र किए बिना रहा नहीं जा सकता।
https://github.com/nvbn/thefuck#how-it-works
ऊपर वाला उदाहरण देखकर मैं काफी देर तक हँसता रहा lol
सिर्फ मैं ही गलत नहीं करता था..
यह एक दिलचस्प कहानी थी। Levenshtein distance......आज कुछ नया सीखने को मिला
पढ़कर अच्छा लगा.
लेकिन यह जानने की जिज्ञासा है कि क्या git वास्तव में इसी तरीके से implement किया गया है.
यह भी संभव लगता है कि statistical तरीके से users के experience को collect करके process किया जाए
git Levenshtein distance का उपयोग करता है। नीचे दिए गए लिंक के git सेक्शन में git के उस हिस्से का source code दिखाया गया है. :)
https://vishnubharathi.codes/blog/levenshtein-distance/
सांख्यिकीय रूप से user के अनुभव का उपयोग करने वाला तरीका भी दिलचस्प हो सकता है, लेकिन a) git commands की लंबाई छोटी होती है, और b) उनकी संख्या सीमित है, इसलिए लगता है कि Levenshtein से ही मनचाहा काम पर्याप्त रूप से किया जा सकता है.