আপনি যদি লেভেনস্টেইন এবং ডিফ্লিবের সাদৃশ্যটির সাথে দ্রুত দেখার তুলনা করতে আগ্রহী হন, আমি উভয়কে 3 2.3 মিলিয়ন বইয়ের শিরোনামের জন্য গণনা করেছি:
import codecs, difflib, Levenshtein, distance
with codecs.open("titles.tsv","r","utf-8") as f:
title_list = f.read().split("\n")[:-1]
for row in title_list:
sr = row.lower().split("\t")
diffl = difflib.SequenceMatcher(None, sr[3], sr[4]).ratio()
lev = Levenshtein.ratio(sr[3], sr[4])
sor = 1 - distance.sorensen(sr[3], sr[4])
jac = 1 - distance.jaccard(sr[3], sr[4])
print diffl, lev, sor, jac
আমি তখন আর দিয়ে ফলাফল চক্রান্ত করেছি:
কৌতূহলীদের জন্য কঠোরভাবে, আমি ডিফ্লিব, লেভেনস্টেইন, সেরেনসেন এবং জ্যাকার্ড মিলের মানগুলির সাথেও তুলনা করেছি:
library(ggplot2)
require(GGally)
difflib <- read.table("similarity_measures.txt", sep = " ")
colnames(difflib) <- c("difflib", "levenshtein", "sorensen", "jaccard")
ggpairs(difflib)
ফলাফল:
ডিফ্লিব / লেভেনস্টেইনের মিলটি সত্যিই বেশ আকর্ষণীয়।
2018 সম্পাদনা: আপনি যদি একই ধরণের স্ট্রিং সনাক্ত করতে কাজ করে থাকেন তবে আপনি মিনহ্যাশিংও পরীক্ষা করে দেখতে পারেন - এখানে দুর্দান্ত একটি ওভারভিউ রয়েছে । মিনহাশিং লিনিয়ার সময়ে বড় পাঠ্য সংগ্রহের মধ্যে সাদৃশ্য খুঁজে পেয়ে আশ্চর্যজনক। আমার ল্যাব এখানে এমন অ্যাপ্লিকেশন রেখেছিল যা এখানে মিনহ্যাশিং ব্যবহার করে পাঠ্য পুনঃব্যবহার সনাক্তকরণ এবং ভিজ্যুয়ালাইজ করে: https://github.com/YaleDHLab/intertext