आर में लेवेनशेटिन दूरी की गणना कैसे करें (उदाहरण के साथ)


दो तारों के बीच लेवेनशेटिन की दूरी एक शब्द को दूसरे में बदलने के लिए आवश्यक एकल-वर्ण परिवर्तनों की न्यूनतम संख्या है।

“संशोधन” शब्द में प्रतिस्थापन, सम्मिलन और विलोपन शामिल हैं।

उदाहरण के लिए, मान लीजिए हमारे पास निम्नलिखित दो शब्द हैं:

  • पार्टी को
  • पार्क

दो शब्दों के बीच लेवेनशेटिन की दूरी (यानी एक शब्द को दूसरे शब्द में बदलने के लिए हमें जितने बदलाव करने होंगे) 2 होगी:

लेवेनशेटिन दूरी का उदाहरण

व्यवहार में, लेवेनशेटिन दूरी का उपयोग कई अलग-अलग अनुप्रयोगों में किया जाता है, जिसमें फ़ज़ी स्ट्रिंग मिलान, वर्तनी जाँच और प्राकृतिक भाषा प्रसंस्करण शामिल हैं।

यह ट्यूटोरियल बताता है कि आर में स्ट्रिंगडिस्ट पैकेज के स्ट्रिंगडिस्ट() फ़ंक्शन का उपयोग करके आर में स्ट्रिंग्स के बीच लेवेनशेटिन दूरी की गणना कैसे करें।

यह फ़ंक्शन निम्नलिखित मूल सिंटैक्स का उपयोग करता है:

 #load stringdist package
library(stringdist)

#calculate Levenshtein distance between two strings
stringdist(" string1 ", " string2 ", method = " lv ")

ध्यान दें कि यह फ़ंक्शन कई अलग-अलग दूरी मापों की गणना कर सकता है। विधि = “एलवी” निर्दिष्ट करके, हम फ़ंक्शन को लेवेनशेटिन दूरी की गणना करने के लिए कहते हैं।

उदाहरण 1: दो तारों के बीच लेवेनशेटिन की दूरी

निम्नलिखित कोड दिखाता है कि स्ट्रिंगडिस्ट() फ़ंक्शन का उपयोग करके दो स्ट्रिंग “पार्टी” और “पार्क” के बीच लेवेनशेटिन दूरी की गणना कैसे करें:

 #load stringdist package
library(stringdist)

#calculate Levenshtein distance between two strings
stringdist(' party ', ' park ', method = ' lv ')

[1] 2

लेवेनशेटिन की दूरी 2 हो गई।

उदाहरण 2: दो सदिशों के बीच लेवेनशेटिन दूरी

निम्नलिखित कोड दिखाता है कि दो अलग-अलग वैक्टरों में स्ट्रिंग के प्रत्येक जोड़ीदार संयोजन के बीच लेवेनशेटिन दूरी की गणना कैसे करें:

 #load stringdist package
library(stringdist)

#definevectors
a <- c('Mavs', 'Spurs', 'Lakers', 'Cavs')
b <- c('Rockets', 'Pacers', 'Warriors', 'Celtics')

#calculate Levenshtein distance between two vectors
stringdist(a, b, method=' lv ')

[1] 6 4 5 5

परिणाम की व्याख्या करने का तरीका इस प्रकार है:

  • “माव्स” और “रॉकेट्स” के बीच लेवेनशेटिन की दूरी 6 है।
  • “स्पर्स” और “पेसर्स” के बीच लेवेनशेटिन की दूरी 4 है।
  • “लेकर्स” और “वॉरियर्स” के बीच लेवेनशेटिन की दूरी 5 है।
  • “कैव्स” और “सेल्टिक्स” के बीच लेवेनशेटिन की दूरी 5 है।

उदाहरण 3: डेटा फ़्रेम के स्तंभों के बीच लेवेनशेटिन की दूरी

निम्नलिखित कोड दिखाता है कि डेटा फ्रेम के दो अलग-अलग कॉलमों में स्ट्रिंग्स के प्रत्येक जोड़ीदार संयोजन के बीच लेवेनशेटिन दूरी की गणना कैसे करें:

 #load stringdist package
library(stringdist)

#define data
data <- data.frame(a = c('Mavs', 'Spurs', 'Lakers', 'Cavs'),
                   b = c('Rockets', 'Pacers', 'Warriors', 'Celtics'))

#calculate Levenshtein distance
stringdist(data$a, data$b, method=' lv ')

[1] 6 4 5 5

यदि हम चाहें तो हम लेवेनशेटिन दूरी को डेटा फ्रेम में एक नए कॉलम के रूप में जोड़ सकते हैं:

 #save Levenshtein distance as vector
lev <- stringdist(data$a, data$b, method=' lv ')

#append Levenshtein distance as new column
data$lev <- lev

#view data frame
data

       ab lev
1 Mavs Rockets 6
2 Spurs Pacers 4
3 Lakers Warriors 5
4 Cavs Celtics 5

अतिरिक्त संसाधन

आर में हैमिंग दूरी की गणना कैसे करें
आर में यूक्लिडियन दूरी की गणना कैसे करें
आर में मैनहट्टन से दूरी की गणना कैसे करें

एक टिप्पणी जोड़ने

आपका ईमेल पता प्रकाशित नहीं किया जाएगा. आवश्यक फ़ील्ड चिह्नित हैं *