-
November 21st, 2016, 22:55
#1
عضو انجمن
تابع levenshtein
سلام دوستان میشه درباره این دستور ی توضیحی بدید
levenshtein
تبدیل و طراحی قالب ها وردپرس/ WHMCS / جوملا / دیتالایف انجین / نیوک 8.2 و 8.3 / سیستم ها آپلود سنتر
شماره های تماس : 09398001743 - 09132285902
تلگرام :
https://telegram.me/saeed0pc1
-
تعداد تشکر ها از saeed.spore به دلیل پست مفید
-
November 21st, 2016 22:55
# ADS
-
November 21st, 2016, 23:15
#2
پاسخ : تابع levenshtein
سلام ، همونطور که نوشته فاصله ی بین حروف رشته هارو محاسبه میکنه
فاصله لوناشتاین یا فاصله ویرایش در نظریه داده و علوم کامپیوتر متری برای محاسبه میزان تفاوت میان دو رشته است.
فاصله لوناشتاین بین دو رشته بوسیله کمترین تعداد عملیات مورد نیاز برای تبدیل یک رشته به رشته دیگر معین میشود، که یک عملیات میتواند یک ضمیمه، یا جایگزینی یک کارکتر باشد.تعمیم فاصله لوناشتاین (فاصله دامرا-لوناشتاین) اجازه ترانهش دو کاراکتر را به عنوان یک عملیات میدهد.
ویرایش توسط kavoshco : November 21st, 2016 در ساعت 23:18
-
-
November 21st, 2016, 23:45
#3
عضو انجمن
پاسخ : تابع levenshtein

نوشته اصلی توسط
kavoshco
سلام ، همونطور که نوشته فاصله ی بین حروف رشته هارو محاسبه میکنه
فاصله لوناشتاین یا فاصله ویرایش در نظریه داده و علوم کامپیوتر متری برای محاسبه میزان تفاوت میان دو رشته است.
فاصله لوناشتاین بین دو رشته بوسیله کمترین تعداد عملیات مورد نیاز برای تبدیل یک رشته به رشته دیگر معین میشود، که یک عملیات میتواند یک ضمیمه، یا جایگزینی یک کارکتر باشد.تعمیم فاصله لوناشتاین (فاصله دامرا-لوناشتاین) اجازه ترانهش دو کاراکتر را به عنوان یک عملیات میدهد.
آقا ممنون ولی یک سوال
چرا وقتی این دستور را میزنم echo levenshtein("Hello World","ello World",10,20,30);
30 را نمایشمیده
؟!
اگه 0 هم بزنم 0 را نمیشا میده
این 3 متغیر را میشه ی توضیحی بدید ممنون میشم
تبدیل و طراحی قالب ها وردپرس/ WHMCS / جوملا / دیتالایف انجین / نیوک 8.2 و 8.3 / سیستم ها آپلود سنتر
شماره های تماس : 09398001743 - 09132285902
تلگرام :
https://telegram.me/saeed0pc1
-
-
November 21st, 2016, 23:49
#4
عضو دائم
پاسخ : تابع levenshtein
سلام، تعاریف الگوریتم ـش به زبان فارسی زیاد هست اگر جستجوی کنید، مخصوصا ویکی پدیا با مثال درستی این نظریه هم به فارسی اثبات کرده، بیشترین کاربردش برای پیدا کردن نزدیکترین match بین یک لیست هست، به طور مثال شما یک آرایه دارید با مقدار های wht,ghy,cfv حالا شما از کاربر ورودی whht میگری که اصلا در لیست ما وجود ندارد، اینجا با کمک تابع levenshtein و یک حلقه میتونید نزدیکترین نتیجه رو پیدا کنید که همان wht خانه اول لیست ما هست. از این نظریه در پایگاه ها داده خیلی استفاده میشود.
-
تعداد تشکر ها از T.Toosi به دلیل پست مفید
-
November 22nd, 2016, 00:47
#5
عضو انجمن
پاسخ : تابع levenshtein

نوشته اصلی توسط
T.Toosi
سلام، تعاریف الگوریتم ـش به زبان فارسی زیاد هست اگر جستجوی کنید، مخصوصا ویکی پدیا با مثال درستی این نظریه هم به فارسی اثبات کرده، بیشترین کاربردش برای پیدا کردن نزدیکترین match بین یک لیست هست، به طور مثال شما یک آرایه دارید با مقدار های wht,ghy,cfv حالا شما از کاربر ورودی whht میگری که اصلا در لیست ما وجود ندارد، اینجا با کمک تابع levenshtein و یک حلقه میتونید نزدیکترین نتیجه رو پیدا کنید که همان wht خانه اول لیست ما هست. از این نظریه در پایگاه ها داده خیلی استفاده میشود.
سلام استاد خیلی ممنون ولی من کلا برام ابهامی پیش اومده میدونم ولی این که اون خط دوم مشکل دارم چرا اینطوریه دلیلش چیه ؟!
تبدیل و طراحی قالب ها وردپرس/ WHMCS / جوملا / دیتالایف انجین / نیوک 8.2 و 8.3 / سیستم ها آپلود سنتر
شماره های تماس : 09398001743 - 09132285902
تلگرام :
https://telegram.me/saeed0pc1
-
-
November 22nd, 2016, 01:10
#6
عضو دائم
پاسخ : تابع levenshtein

نوشته اصلی توسط
saeed.spore
سلام استاد خیلی ممنون ولی من کلا برام ابهامی پیش اومده میدونم ولی این که اون خط دوم مشکل دارم چرا اینطوریه دلیلش چیه ؟!
برای اینکه با 3 تا پارامتر آخری تابع بتونید کار کنید باید به الگوریتم اشتاین مسلط باشید، وقتی 2 تا رشته رو با این تابع مقایسه میکنید این تابع بهتون تعداد عملیات هایی که باید بروی رشته اول انجام شود تا شبیه رشته دوم باشد را بازگشت میدهد، insert, replace و delete که سه تا پارامتر آخر تابع هستند میتونید عدد بدید مثلا insert = 2 یعنی فقط تا 2 بار اجازه می دهید چیزی به رشته اول اضافه کند تا شبیه رشته دوم شود. اگر با 2 بار insert رشته اول ساخته و match شد تعداد عملیات هایی که روی رشته اول انجام شده است تا با رشته دوم match شود برمیگردونه.
در مثال hello world بالا شما اجازه دادید 10 بار insert و 20 باز replace و 30 بار delet اتفاق بیوفتد تا رشته اول match رشته دوم شود که مقدار بازگشتی 30 هست یعنی 30 بار باید عملیات (insert or delete or replace) روی رشته اول انجام شود تا شبیه رشته دوم شود.
hello world
ello World
اگر یک عملیات delete بروی کارکتر اول انجام شود 2 رشته match میشوند پس مقدار بازگشتی تابع 1 هست.
ویرایش توسط T.Toosi : November 22nd, 2016 در ساعت 01:22
-
تعداد تشکر ها از T.Toosi به دلیل پست مفید
-
November 22nd, 2016, 22:50
#7
عضو انجمن
پاسخ : تابع levenshtein

نوشته اصلی توسط
T.Toosi
برای اینکه با 3 تا پارامتر آخری تابع بتونید کار کنید باید به الگوریتم اشتاین مسلط باشید، وقتی 2 تا رشته رو با این تابع مقایسه میکنید این تابع بهتون تعداد عملیات هایی که باید بروی رشته اول انجام شود تا شبیه رشته دوم باشد را بازگشت میدهد، insert, replace و delete که سه تا پارامتر آخر تابع هستند میتونید عدد بدید مثلا insert = 2 یعنی فقط تا 2 بار اجازه می دهید چیزی به رشته اول اضافه کند تا شبیه رشته دوم شود. اگر با 2 بار insert رشته اول ساخته و match شد تعداد عملیات هایی که روی رشته اول انجام شده است تا با رشته دوم match شود برمیگردونه.
در مثال hello world بالا شما اجازه دادید 10 بار insert و 20 باز replace و 30 بار delet اتفاق بیوفتد تا رشته اول match رشته دوم شود که مقدار بازگشتی 30 هست یعنی 30 بار باید عملیات (insert or delete or replace) روی رشته اول انجام شود تا شبیه رشته دوم شود.
hello world
ello World
اگر یک عملیات delete بروی کارکتر اول انجام شود 2 رشته match میشوند پس مقدار بازگشتی تابع 1 هست.
خیلی ممنون همیشه کارتون درسته . آقا
منم ی بار دیگه تست کردم ولی حتی داخل این سایت که دیدم
نتیجه را همونی میده که داخل ولیو دلیت میزنیم
مثلا 30
همون 30 را چاپ میکنه
echo levenshtein("Hello World","ello World",0,0,1);
اینطوریزدم
همون 1 را بر میگردونه
تبدیل و طراحی قالب ها وردپرس/ WHMCS / جوملا / دیتالایف انجین / نیوک 8.2 و 8.3 / سیستم ها آپلود سنتر
شماره های تماس : 09398001743 - 09132285902
تلگرام :
https://telegram.me/saeed0pc1
-