Javad_raouf
چهارشنبه 16 مرداد 1392, 08:08 صبح
با سلام
توضیخ مختصر: در کل هدفم اینه که از روی عنوان مطالب تکراری تشخیص بدم یک چیزی تو مایه های سایت های خبری.
---------------
فرض کنید یک جدول دارم به نام tbl که شامل چندین رکورد است و شامل ستونی است به نام Title
همچنین عبارتی دارم به نام NewTitle
می خوام به ازای هر سطر از جدولم بفهمم فیلد Title چقدر شبیه به NewTitle است
نحوه تشخیص تشابه دو عبارت به این صورت است که باید بررسی کنیم که چند درصد از کلمات NewTitle در Title و چند درصد از کلمات Title در NewTitle وجود دارد. میانگین این دو درصد میشه جواب مورد نظر
مثلا درصد تشابه برای "سلام خوبی" با "خوبی سلام" صد در صد است:لبخندساده:
"سلام عزیزم" با "خوبی سلام" 50 درصد تشابه دارند
"سلام سلام عزیزم" با "سلام عزیزم" 100 درصد تشابه دارند:متفکر:
همانطور که می بینید الگوریتم یکم باگ دارد پس اگر الگوریتم بهتری هم به نظرتون میرسه لطفا دریغ نکنید:لبخندساده:
به نظر خودم باید اول یک تابع بنویسم که دو تا عبارت رو بگیره و درصد تشابه این دو عبارت رو برگردونه و در کوئری خودم از این تابع استفاده کنم مثل این:
Select *,dbo.GetDarsad(Title,@NewTitle) as Darsad From tbl
ولی برای نوشتن تابعش مشکل دارم البته می تونم با While بنویسم ولی در کل فکر می کنم در تعداد رکورد بالا سرعت رو بد جور بیاره پایین:خجالت:
لطفا اگر راه ساده تر یا اصولی تر می شناسید بیان کنید
لینک تاپیک همین سوال برای SQLServer (http://barnamenevis.org/showthread.php?412480-%D9%86%D8%AD%D9%88%D9%87-%D8%AA%D8%B4%D8%AE%DB%8C%D8%B5-%D8%AF%D8%B1%D8%B5%D8%AF-%D8%AA%D8%B4%D8%A7%D8%A8%D9%87-%D8%AF%D9%88-%D8%B9%D8%A8%D8%A7%D8%B1%D8%AA)
توضیخ مختصر: در کل هدفم اینه که از روی عنوان مطالب تکراری تشخیص بدم یک چیزی تو مایه های سایت های خبری.
---------------
فرض کنید یک جدول دارم به نام tbl که شامل چندین رکورد است و شامل ستونی است به نام Title
همچنین عبارتی دارم به نام NewTitle
می خوام به ازای هر سطر از جدولم بفهمم فیلد Title چقدر شبیه به NewTitle است
نحوه تشخیص تشابه دو عبارت به این صورت است که باید بررسی کنیم که چند درصد از کلمات NewTitle در Title و چند درصد از کلمات Title در NewTitle وجود دارد. میانگین این دو درصد میشه جواب مورد نظر
مثلا درصد تشابه برای "سلام خوبی" با "خوبی سلام" صد در صد است:لبخندساده:
"سلام عزیزم" با "خوبی سلام" 50 درصد تشابه دارند
"سلام سلام عزیزم" با "سلام عزیزم" 100 درصد تشابه دارند:متفکر:
همانطور که می بینید الگوریتم یکم باگ دارد پس اگر الگوریتم بهتری هم به نظرتون میرسه لطفا دریغ نکنید:لبخندساده:
به نظر خودم باید اول یک تابع بنویسم که دو تا عبارت رو بگیره و درصد تشابه این دو عبارت رو برگردونه و در کوئری خودم از این تابع استفاده کنم مثل این:
Select *,dbo.GetDarsad(Title,@NewTitle) as Darsad From tbl
ولی برای نوشتن تابعش مشکل دارم البته می تونم با While بنویسم ولی در کل فکر می کنم در تعداد رکورد بالا سرعت رو بد جور بیاره پایین:خجالت:
لطفا اگر راه ساده تر یا اصولی تر می شناسید بیان کنید
لینک تاپیک همین سوال برای SQLServer (http://barnamenevis.org/showthread.php?412480-%D9%86%D8%AD%D9%88%D9%87-%D8%AA%D8%B4%D8%AE%DB%8C%D8%B5-%D8%AF%D8%B1%D8%B5%D8%AF-%D8%AA%D8%B4%D8%A7%D8%A8%D9%87-%D8%AF%D9%88-%D8%B9%D8%A8%D8%A7%D8%B1%D8%AA)