
نوشته شده توسط
mazoolagh
اگر بخواهیم ببینیم چه واژه هایی در یک عبارت تکرار شدن چه پترنی باید استفاده کنیم؟

نوشته شده توسط
eb_1345
من چند مورد رو امتحان کردم واژه های تکراری رو نمایش میده ولی بعضی از اونها سلکت نمیشن
البته فکر کنم بشه که با همین پترن اول موارد تکراری ( همون هائی که سلکت میشن) پشت سر هم بصورت یک رشته تبدیل کرد و بعد موارد تکراری این رشته رو حذف کرد . که در نهایت در رشته واژه هائی که تکرار شده اند بدست بیاد.

نوشته شده توسط
mazoolagh
سلام دوباره
گویا این کد برای پاک کردن موارد تکراری هست - که از پرسش اصلی پست 68 سختتره (فقط پیدا کردن تکراری ها)!
در نگاه اول کد زیر حالت خاص هست:
strText = " " & strText & " "
با عرض سلام متقابل
تابع اول برای حذف موارد تکراری لیست واژ های که بوسیله پترن استخراج شده میباشه
فرض می کنیم در متن زیر میخواهیم لیست واژه ها یا کلماتی که تکرار شده اند بدست بیاریم:
Secure, smart, and easy to use email Get more done with Gmail. Now integrated Google with google Chat Google Meet and more all in one Google all and all all All meet all
با استفاده از پترن (\b\w+\b)(?=.*\b\1\b) لیست کلمات تکراری بصورت زیر استخراج میشه:
and more with Google google Google Meet and all all all all All
در لیست فوق می بینیم که مثلاً واژه all (با در نظر گرفتن حساسیت به بزرگی و کوچکی حروف) در متن 6 مرتبه تکرار شده ولی پترن تعداد 5 تای اون رو انتخاب میکنه و دلیلش فعلاً برای بنده معلوم نیست
ولی صرفنظر از اینکه از تعداد واژهای تکرار شده چه واژه هائی انتخاب میشن یا نمیشن پترن فوق در تشخیص واژه های تکراری درست عمل میکنه
حالا اگه ما فقط بخواهیم بدونیم که چه واژه هائی در متن بیشتر از یکبار تکرار شده اند بدون اینکه همه واژه های تکراری در لیست درج بشه با استفاده از تابعی که برای حذف موارد تکراری ایجاد کرده ام موارد تکراری لیست واژه های تکراری اسخراج شده بوسیله پترن رو حذف می کنیم .
که در نهایت با استفاده از تابع حذف واژه های تکراری خروجی لیست استخراج شده بوسیله پترن بصورت زیر نمایش داده میشه:
and more with Google Meet all
یعنی در متن 6 تا کلمه فوق (بیشتر از یکبار) تکرار شده اند.
لطفا فایل نمونه رو بررسی بفرمائین !