» پنج شنبه 27 آذر 1393 |   ورود or عضویت flags/iran.gif flags/usa.gif flags/saudiarabia.gif flags/sweden.gif flags/france.gif
Show me the SUN
درياره‌ آفتابگردان

« آفتابگردان » به عنوان یک كانون مجازی با هدف فراهم كردن ‎محیطی لذت‌بخش، علمی و مفید و همچنین در دسترس قرار دادن آن‌چه یك كاربر رایانه ‎نیاز دارد، اعم از نرم‌افزارها، آموزش‌های كاربردی، اخبار، نقد و بررسی‌ها، راهنمایی‌ها و ‎...؛ ایجاد شده است.
‎شما می‌توانید، با ‎ثبت نام در سایت عضو خانواده بزرگ و باصفای آفتابگردان شوید و در ‎انجمن‌های گفتگو با دیگر اعضای سایت به بحث و تبادل نظر بنشینید.
‎آفتابگردانی‌ها هدفشان همیاری یکدیگر در زمینه‌های مختلفِ شغلی، درسی، ‎كامپیوتری و ... است و در این راه تا حد توان، از هیچ اقدامی دریغ ‎نمی‌ورزند.
‎امیدواریم شما نیز با حضور در این جمع و اشتراک دانسته‌هایتان با دیگران، آن‌ها را در رسیدن به اهدافشان یاری دهید...

تمامي كالاها و خدمات اين سایت، حسب مورد داراي مجوزهاي لازم از مراجع مربوطه مي‌باشند و فعاليت‌هاي اين سايت تابع قوانين و مقررات جمهوري اسلامي ايران است.
محصولات و خدمات آفتابگردان:

[ URLهای خود را کوتاه‌تر کنید، روی آن‌ها پسورد بگذارید و آمار بگیرید!]
[تستا؛ سیستم مدیریت آزمون آنلاین]
[پارس‌خوان؛ نرم افزار خوانای متن فارسی]

[بوکفا؛ سیستم مدیریت آنلاین کتابخانه]
[سیستم مدیریت کتابخانه]
[تیکفا؛ سیستم مدیریت پشتیبانی آنلاین مشتریان]


[نُمْرا؛ سیستم مدیریت آموزشگاه]

[بازی آنلاین نیکا]

طراحی و میزبانی سایت خود را
به تیم آفتابگردان بسپارید!



کلیپ ویدئویی معرفی آفتابگردان
‎با وارد کردن ایمیل خود در کادر زیر می‌توانید از ارسال اخبار جدید در سایت از طریق ایمیل، مطلع شوید:

اخبار کوتاه سایت:


بلوک کاربری
 
عضویت
کلمه عبور را فراموش کرده ام

 
کاربران سایت:
مجموع: 18,696
آخرین: tajadod

کاربران حاضر درسایت:
مهمان: 142
عضو: 2
مخفی: 1
مجموع: 144

Last Seen Users:
Hamid  |  rosva  |  ghodrat  |  bidak  |  tajadod  |  imanmoodi  |  mahnazSALAS  |  fereshteh71  |  vahipars  |  malihe70  |  rezasystem  |  mrsmhn  |  sima_vafa  |  meisam72  |  mvsoft  |  hamid_reza_m  |  bandar53  |  Sogol20  |  monireh  |  rayant  |  shahedtest  | 


موضوعات اخبار
معرفي سايت
اطلاعیه‌های آفتابگردان
ياهو
مايكروسافت
گرافيك
اخبار ميكس و مونتاژ
بازي‌هاي كامپيوتري
اخبار عمومي
اخبار IT
سخت افزار
نرم افزار
گوگل
سيستم‌هاي مديريت محتوا
اخبار موبايل
دانستني‌هاي IT
برنامه‌ نويسي
Mozilla & Firefox
از همه جا
اخبار شرکت Adobe
ابزار فارسي
کلیپ‌ها و ویدئوهای مفید انگلیسی
برای جوانان
مطالب مذهبی، قرآنی و فرهنگی
لینوکس
شرکت Apple
فیلم‌های مستند
دنياي نرم​افزارهاي رايگان
اخبار تستا
این کلمه یعنی چی؟
بخریم یا نخریم
تجارت الکترونیک
بازی آنلاین نیکا

مطالب پیشنهادی

آرشیو اخبار به صورت موضوعی




تعداد آموزش‌ها: 557         تعداد شاخه ها: 65         كل بازدیدها: 4774785
    


آخرين ارسال‌ها به تالار گفتمان

یک نکته: بر روي زمين چيزي بزرگتر از انسان نيست و در انسان چيزي بزرگتر از فكر او... (هميلتون)
ذکر روز پنج‌شنبه: لا اِلهَ اِلَّا الله المَلک الحقُّ المُبین

راهنما: برای رفتن به آخرین پست هر تاپیک، روی کلیک کنید. لیست آخرین تاپیک‌های انجمن‌ها:
موضوعات  پاسخها   نویسنده   بازدید   آخرین ارسال 
 ساخت آزمون کلی 5 ahmansoori 97 Hamid 
 ساخت اسلاید شو 2 malihe70 68 malihe70 
 سوال در موردsql 2 malihe70 47 mahnazSALAS 
 :::...اولین باران پاییزی...::: 2 mahnazSALAS 54 mahnazSALAS 
 انجمن ماژول‌های تستا 10 Gytyonline 2898 shahedtest 
 درخواست 4 aliazghandi 1516 shahedtest 
 عذاب لقمه های زوری در زندگی.... 0 mahnazSALAS 41 mahnazSALAS 
 اساتید راهنمایی کنند، راهنمایی برای قراردادن بنرهای تبلیغاتی در وردپرس ؟ 10 hamidbn 171 mahnazSALAS 
 غذاهاى سريع و آسان پخت و البته سالم 8 Hamid 1774 fereshteh71 
 ترکاندن یک هاردلپ تاپ ومصرف بهینه از آن..! 6 mahnazSALAS 119 mahnazSALAS 
 نقطه چینو پر کن!!!!!!!!!!! 6 ----Ali---- 579 mahnazSALAS 
 ساده ترین روش تبدیل فیلم 0 mahnazSALAS 43 mahnazSALAS 
 مهندسی تولید نفت 0 yalda190 41 yalda190 
 به اسمت قسم آقا, جاموندم ازکربلا... 0 mahnazSALAS 47 mahnazSALAS 
 اعمال روز اربعین (روزشمارعاشقان) 0 mahnazSALAS 47 mahnazSALAS 
موضوعات:5512 | ارسالها: 29984 | بازدیدها: 10137477 | پاسخها: 24465 | کاربران:  18696
[ تالار گفتمان ]   [ ارسال‌هاي بعد از آخرين بازديد شما ]   [ 50 پست آخر انجمن‌ها ]   [ جستجو ]

لينك‌هاي روزانه

کلمات کلیدی رشته کامپیوتر و دیگر رشته ها
هفت سایت (انگلیسی) که به شما برنامه‌ نویسی و کدنویسی را آموزش می‌دهند
مستند جالب و کوتاهی در مورد ارتباط سمت راست و سمت چپ مغز! (عالی اما انگلیسی)
آغاز پیش‌ثبت‌نام حوزه علوم اسلامی دانشگاهیان (ویژه دانشجویانی که می‌خواهند دروس حوزه را بخوانند)
مقاله دانشگاهی مؤسسان گوگل که در آن ایده Page Rank را توضیح دادند و گوگل شکل گرفت
دانلود نسخه نهایی یوسمیتی برای کاربران مک (Download Yosemite)
در مسابقه برنامه نویسی بیان شرکت کنید
آهنگ ماندگار «رفتم سوی گلستان...»
بهترین زبان‌های برنامه نویسی برای یادگیری در سال ۲۰۱۴
شاهکار معراجی های واقعی در 4 دقیقه (ایران در گذر زمان)
اسکریپت تشخیص صحت کد ملی به زبان PHP
مناطقی که در خاک سوریه و عراق تحت کنترل داعش است
پلاگ‌اینی برای متحرک کردن PNG با jQuery
سایتی برای دانلود افکت‌های صوتی (Free sound effects)
قدرت jQuery و CSS3 در تولید انیمیشن‌های تحت وب را در این داستان مصور ببینید

مستند معبر عظمت امام حسین را به زیبایی به تصویر کشید

اکنون که می‌نویسم شب اربعین است و سعادتی نصیبم شد که مستند «معبر» را از شبکه ۳ ببینم.

باید آفرین گفت به سازندگان این مستند و این نوع مستندها. خداوند بهترین‌ها را نصیبشان کند.

مستند، به زیبایی شور عظیمی که در پیاده‌روی اربعین در قلب مردم ایجاد شده است را به تصویر می‌کشد. شور و اشتیاقی که می‌رود در سال‌های آینده همه‌ی مردم ایران و شیعیان جهان را پیاده راهی کربلا کند!

اگر ندیده‌اید، پیشنهاد می‌کنم از دست ندهید:

لینک دانلود با کیفیت‌های مختلف در اینترنت وجود دارد: اینجا کلیک کنید

از طریق آپارات هم می‌توانید ببینید:

با دیدن مستند، انسان بیش از همه، خود را مدیون شهدا می‌داند... برخی جملات فیلم، انسان را آتش می‌زند: «می‌رویم که راه کربلا باز شود»

موفق باشید؛
حمید رضا نیرومند


[مطالب مذهبی، قرآنی و فرهنگی]
3 نظر| لينك ثابت

ارسال شده بوسیله Hamid در مورخه : جمعه، 21 آذر، 1393 (224 مشاهده)

چگونه بفهمیم یک کلمه در یک سایت کلمه کلیدی است؟ (معرفی الگوریتم «فراوانی وزنی»)

در مطلب قبل (یعنی الگوریتمِ پیدا کردن مطالب مرتبط با یک مقاله از بین صدها مقاله) در بخشی از مطلب به این موضوع اشاره کردم که برای اینکه ما مطالب مرتبط با یک مطلب را از دیتابیس پیدا کنیم، نیاز داریم که کلمات کلیدی مطلب فعلی را به دست آوریم و اشاره کردم که برای این کار نیاز به دیتابیسی داریم به نام Go List و گفتم که چنین دیتابیسی فعلاً برای رشته کامپیوتر وجود ندارد.

اما بعد از آن مطلب، دنبال راه حلی گشتم که بشود بدون داشتن هر نوع دیتابیسی (حتی اگر دیتابیس Stop Words یا کلمات بازدارنده مثل «از» و «به» و ...) را نداشته باشیم، بتوانیم کلمات کلیدی را از داخل یک متن استخراج کنیم.

دقت کنید که اگر حتی دیتابیس Go List موجود می‌بود، ممکن بود کلماتی که در آن دیتابیس است برای یک سایت خاص کلمه کلیدی به حساب نیاید. به طور مثال فرض کنید دیتابیس کلمات کلیدی بگوید که کلمه «چاپ» در رشته کامپیوتر یک کلمه کلیدی است اما این کلمه در سایتی مانند سایت ما واقعاً کلمه کلیدی نیست! ما اصلاً در مورد چاپ صحبت خاصی نداشته‌ایم! این موضوع نشان می‌دهد که کلمات کلیدی یک مطلب یا سایت باید از طریق خود آن مقاله یا مقالات آن سایت به دست آید.

در این مطلب قصد دارم روشی را معرفی کنم که با استفاده از آن می‌توان تا حد زیادی کلمات بازدارنده (Stop Words) و کلمات نیمه بازدارنده (یا Semi-Stop Words: کلماتی مانند «ترمیم» و «قدیمی» در عنوان «آموزش ترمیم عکس قدیمی در فتوشاپ») و کلمات کلیدی (یا Go List یا Keywords: کلماتی مانند «آموزش» و «عکس» و «فتوشاپ» در عنوان «آموزش ترمیم عکس قدیمی در فتوشاپ») را از طریق مطالب سایت به دست آورد.

این روش «فراوانی وزنی» یا TF-IDF نام دارد:

TF-IDF مخفف Term Frequency - Inverse Document Frequecy و به معنی «فراوانی کلمه-عکسِ فراوانی سند» است.

در مورد این روش به خوبی در این مقاله انگلیسی و ترجمه‌ی آن توضیح داده شده است:

در این شیوه به لغات یک وزن بر اساس فراوانی آن در سند داده می شود. در واقع این سیستم وزن‌دهی نشان می‌دهد چقدر یک کلمه برای یک سند (مدرک) مهم است. این مساله کاربردهای بسیاری در بازیابی اطلاعات دارد. وزن کلمه با افزایش تعداد تکرار آن در متن افزایش می‌یابد، اما توسط تعداد کلمات در متن کنترل می‌شود، چرا که می‌دانیم در صورت زیاد بودن طول متن، بعضی از کلمات به طول طبیعی بیشتر از دیگران تکرار خواهند شد، اگرچه چندان اهمیتی در معنی نداشته باشند.

نتیجه محاسباتی که خواهم گفت، عددی می‌شود که tfidf نامیده می‌شود. با تغییر رنج این tfidf آن سه دیتابیس به دست خواهند آمد. به طور مثال اگر tfidf را نزدیک به 0 بگیریم، کلمات
Stop Words به دست می‌آیند. اگر این عدد را نزدیک‌ترین مقدار به بالاترین عددی که به دست می‌آید بگیریم، کلمات کلیدی به دست می‌آید و بقیه هم که کلمات نیمه-بازدارنده می‌شوند.

tfidf چطور به دست می‌آید؟

برای به دست آوردن این عدد در مورد یک کلمه، به مواد زیر نیاز دارید:

Tf : برای به دست آوردن Tf مربوط به یک کلمه در یک دیتابیس باید ببینید کدام سندها حاوی آن کلمه هستند و در هر سند آن کلمه چند بار تکرار شده است؟ ماکزیمم تعدادی که این کلمه در یک سند تکرار شده را Tf بگیرید. به مثال زیر دقت کنید:

http://img.aftab.cc/news/93/tfidf-1.png

در این مثال دو سند داریم. که تعداد تکرار کلمات آن سند مقابل هر کلمه نوشته شده. اگر شما Tf مربوط به کلمه example را بخواهید، پاسخ، ۳ خواهد بود. چون این کلمه در سند دوم بیشترین تکرار را داشته که ۳ بار بوده. Tf کلمه a برابر با ۲ می‌شود چون ۲ بار در سند اول تکرار شده.


idf: کمی سخت‌تر به دست می‌آید:

http://img.aftab.cc/news/93/tfidf-2.png

این فرمول یعنی idf به این صورت محاسبه می‌شود: لگاریتمِ [تعداد کل مقالات تقسیم بر (تعداد مقالاتی که شامل این کلمه می‌شوند+1)]

این معیار به تنهایی برای یافتن کلمات بازدارنده کافی است! فرض کنید کل مقالات شما ۱۰۰ تا باشد و کلمه‌ی «در» در همه مقالات تکرار شده باشد. در این صورت لگاریتم ۱۰۰ تقسیم بر ۱۰۰ (یعنی لگاریتم ۱) می‌شود: 0
هر گاه این معیار 0 یا خیلی نزدیک به 0 شد یعنی آن کلمه جزء کلمات بازدارنده است.

tfidf: این معیار که پارامتر تصمیم‌گیری در مورد کلیدی بودن یا نبودن یک کلمه است از طریق ضرب دو پارامتر بالا به دست می‌آید:

http://img.aftab.cc/news/93/tfidf-3.png

شما با کنترل tfidf می‌توانید انواع کلمه (کلیدی، غیرکلیدی و بازدارنده) را به دست آورید...

 

دقت کنید که به جای متن مقالات می‌توانید عنوان مقالات را هم ملاک قرار دهید. اما با توجه به اینکه تعداد تکرار یک کلمه در عنوان، معمولاً ۱ است پس Tf را 1 در نظر می‌گیریم و یعنی می‌توان آن‌را حذف کرد و فقط idf را ملاک قرار داد.

به طور مثال اگر ما بخواهیم مقالات مرتبط با همین مقاله (چگونه بفهمیم یک کلمه در یک سایت کلمه کلیدی است؟ (معرفی الگوریتم «فراوانی وزنی») را از بین حدود ۱۲۰۰ مقاله سایت به دست آوریم باید این روال را طی کنیم:

- اولاً تعداد کل مقالات را به دست می‌آوریم. (فرض کنید ۱۲۰۰ مقاله)

- تک تک کلمات عنوان را در دیتابیس جستجو کنیم. (مثلاً کلمه «چگونه» را)

- تعداد مقالاتی که هر کلمه را شامل می‌شود محاسبه می‌کنیم. (مثلاً الان کلمه «چگونه» در ۴۲ مقاله تکرار شده و کلمه «در» در ۳۱۳ مقاله)

- لگاریتم تعداد کل مقالات تقسیم بر تعداد مقالاتی که هر کلمه تکرار شده را محاسبه می‌کنیم. (مثلاً در مورد کلمه «چگونه» لگاریتم ۱۲۰۰ تقسیم بر ۴۲ می‌شود: ۱.۴ و لگاریتم «در» می‌شود: 0.5)

- هر کلمه‌ای که نتیجه‌اش نزدیک‌تر به 0 باشد یعنی کمتر کلیدی است...

 

این الگوریتم را در بخش «آموزش‌های آفتابگردان» به کار گرفتم. در پایین آموزش‌ها به مطالب مرتبط نگاه کنید... به نظر می‌رسد دقیق‌تر عمل می‌کند...

موفق باشید؛
حمید رضا نیرومند


[دانستني‌هاي IT]
4 نظر| لينك ثابت

ارسال شده بوسیله Hamid در مورخه : شنبه، 24 آبان، 1393 (433 مشاهده)

الگوریتمِ پیدا کردن مطالب مرتبط با یک مقاله از بین صدها مقاله

همانطور که در مطلب «لیستی از کلمات بازدارنده در زبان فارسی - Stop Words in Persian» گفته بودم، می‌خواهم بخشی از یکی از درس‌های جالب دانشجویان رشته کامپیوتر (در دانشگاه علمی-کاربردی، رشته فناوری، مقطع کارشناسی) به نام «نمایه‌سازی» را اینجا توضیح دهم.

نمایه‌سازی همان کلمه Indexing است که موتورهای جستجو مانند گوگل از آن برای یافتن صفحات مرتبط با عبارتی که جستجو کرده‌اید از بین ۶۰ تریلیون صفحه روی اینترنت، استفاده می‌کنند. (شما وقتی یک عبارت را روی هارد خود جستجو می‌کنید می‌بینید حداقل چند ثانیه و گاهی چند دقیقه طول می‌کشد که بگوید این عبارت روی هاردی که در نیم‌متری شما است وجود دارد یا خیر. اما فقط کافی‌ست یک کلمه را در گوگل جستجو کنید تا میلیون‌ها نتیجه را در کمتر از نیم‌ثانیه به شما نشان دهد! این عظمت و اهمیت نمایه‌سازی را می‌رساند! مثال دیگر برای نمایه، نمایه‌های انتهای کتاب است. قدیم‌ترها وقتی می‌خواستند ببینند در چه آیاتی یک کلمه خاص بیان شده، چطور می‌فهمیدند؟ از نمایه‌ی قرآن استفاده می‌کردند. یک خاطره: یادم هست که من اول راهنمایی بودم که یکی از معلم‌ها یکی از آن‌ها با نام «المُعجَم المُفَهرَس» را معرفی کرد! همان روز راه افتادم در بازار، کلی گشتم اما هیچ کس نداشت... و جالب است که نهایتاً مدیر مدرسه‌مان در همین حین بنده را دید و پرسید در بازار چه می‌کنی؟... خلاصه دستم را گرفت و برد پیش یک پیرمرد کتاب‌فروش که کسی فکرش را نمی‌کرد که بین کتاب‌های محدودش این را هم داشته باشد اما داشت و خریدم و هنوز هم استفاده می‌کنم)

به هر حال، یکی از کاربردهای نمایه‌سازی، یافتن مطالب مرتبط با یک موضوع در دیتابیس است. (دقیقاً مانند موتور جستجو که صفحات مرتبط با عبارتی که جستجو می‌کنید را می‌یابد...)

روش‌های مختلفی برای یافتن مطالب مرتبط وجود دارد. مثلاً یک راه ساده که اکثر CMSها و افزونه‌های مربوط به مطالب مرتبط استفاده می‌کنند این است که شما هنگام افزودن مطلب، آن‌را نمایه‌گذاری کنید یعنی بگویید که این مطلب در زیرمجموعه‌ی چه موضوعی قرار دارد؟ مثلاً در مورد «نجوم» است؟ یا یک «مطلب فرهنگی» است؟ ... بعد، بیایید در زیر هر مطلب، مثلاً پنج مطلب آخر که موضوع مشابه با این مطلب را دارند لیست کنید.

مثلاً دیدم که سایت p30download از این روش استفاده می‌کند:

http://img.aftab.cc/news/93/indexing1.png

این روش، روش خوبی است و ممکن است حتی گاهی اوقات برای سایت‌ها بهترین حالت باشد، اما نقاط ضعفی دارد؛ از جمله:

- باید از همان ابتدا که مقالات را می‌نوشتید به فکر برچسب‌گذاری یا انتخاب موضوع می‌بودید. یعنی اگر از اول موضوع‌بندی نکرده باشید یا بعداً بخواهید موضوعات را خاص‌تر کنید (مثلاً به جای بحث کلی نجوم، بخواهید مطالب مربوط به خورشید را جدا کنید) باید همه مطالب را ویرایش کنید و موضوع جدید را تعیین کنید و طبیعتاً این کار وقت‌گیر است.

- مطالبی که لیست می‌شوند، فقط از یک لحاظ با هم مرتبط هستند: موضوع! مثلاً این تصویر را ببینید:

http://img.aftab.cc/news/93/indexing2.png

در حالی که اسم این مطلب «بازی میکی فوق العاده...» بوده اما هیچ کدام از مطالب مرتبط که لیست شده هیچ ربطی به میکی ندارد! تنها اشتراک آن‌ها بازی بودن آن‌هاست.

 

به هر حال، روش دقیق‌تر و علمی‌تری نیز وجود دارد اما ابتدا نکاتی در مورد این روش:

- این روش نسبتاً پیچیده است و پیاده‌سازی آن زحمت بیشتری می‌طلبد.
- در زبان‌های مختلف بستگی به کلمات کلیدی و غیرکلیدی آن زبان دارد. یعنی نمی‌شود یک افزونه توسط افراد خارجی نوشته شود و در فارسی درست عمل کند! برای هر زبانی دیتابیس‌های خاص آن زبان نیاز است.
- در تعداد مطلب کم ممکن است هیچ نتیجه‌ای را برنگرداند اما در تعداد مطلب زیاد احتمالاً بهتر عمل می‌کند.
- برای دقیق‌تر شدن الگوریتم نیاز به الگوریتم‌های دیگری نیز هست و در مجموع شما باید یک «گوگل» را طراحی کنید تا دقیق‌تر عمل کند!! مثلاً شاید لازم باشد شما مانند گوگل که تازه بعد از ۲۰ سال این کار را کرده، به الگوریتمتان بفهمانید که «فتوشاپ» همان Photoshop است وگرنه اگر در عنوان یک مطلب «فتوشاپ» نوشته شده باشد، مطالب مرتبطی که در عنوانشان Photoshop نوشته شده یافت نمی‌شوند!

مزایای این روش، برعکس معایب روش قبلی است؛ یعنی:
- نیازی نیست نگران برچسب‌ها و موضوعاتی که هنگام درج مطلب انتخاب کرده‌اید باشید. الگوریتم خودش مقالات مرتبط را پیدا می‌کند.
- مطالبی که یافت می‌شوند احتمالاً از لحاظ‌های مختلف با مطلب فعلی ارتباط خواهند داشت.

و اما الگوریتم:

۱- ابتدا باید عنوان مطلب فعلی را با معیار فاصله (Space) تکه‌تکه کنید. مثلاً فرض کنید یک مطلب داریم با عنوان «آموزش ترمیم عکس قدیمی در فتوشاپ». باید با توابعی که در اختیار دارید (مانند تابع explode در زبان PHP و Split در زبان‌های دات‌نت) عنوان را با معیار فاصله در اصطلاح منفجر کنید تا هر کلمه در یک خانه از یک آرایه قرار گیرد. در انتهای این مرحله یک آرایه خواهید داشت که در هر خانه یک کلمه از کلمات عنوان مطلب وجود دارد.

۲- باید کلمات غیرکلیدی از آرایه حذف شوند و نهایتاً فقط کلمات کلیدی باقی بمانند. برای اینکه این کار دقیق‌تر صورت گیرد شما به سه مجموعه داده (دیتابیس) نیاز دارید:

-- دیتابیسی به نام Stop Words یا کلمات بازدارنده: در مورد این دیتابیس در مطلب «لیستی از کلمات بازدارنده در زبان فارسی - Stop Words in Persian» توضیح دادم و لیستی از مهم‌ترین کلمات را قرار دادم. به طور خلاصه، حروف اضافه (مانند «به»، «از» و ...) و حروف ربط (مانند «که»، «پس» و ...) و ضمایر (مانند «من»، ««او» و...) جزء این لیست خواهند بود. افعال عمومی مثل «باش، کن و ...» هم هستند که البته بحث صرف کردن افعال خودش یک مبحث مفصل است. بنابراین در حالت ساده، اگر خواستید می‌توانید با توابع مربوط به عبارات منظم (مثل preg_match در PHP) هر کلمه‌ای که شامل آن افعال بود را حذف کنید و یا مثل من آن‌ها را فعلاً در این مرحله حذف نکنید.

-- دیتابیسی به نام Go List یا Keywords یا کلمات کلیدی: این دیتابیس حاوی کلماتی خواهد بود که در یک زمینه خاص، کلمه کلیدی هستند.  مثلاً اگر مطالب شما کامپیوتری است، کلمات کلیدی شما با کسی که سایت خبری سیاسی دارد متفاوت است. شما باید هر کلمه‌ای که در این دیتابیس نیست را هم حذف کنید. به طور مثال در مطلب «آموزش ترمیم عکس قدیمی در فتوشاپ» کلماتی مثل «ترمیم» و «قدیمی» کلمه کلیدی نیستند و باید با توجه به دیتابیس کلمات کلیدی رشته کامپیوتر حذف شوند. (درد دل: متأسفانه طبق جستجوهای من، ما هنوز دیتابیس‌هایی که کلمات کلیدی هر زبان را جدا کرده باشد نداریم. اینقدر پروژه و کارآموزی در دوران کاردانی و کارشناسی به خاطر سخت بودن موضوع از روی اینترنت کپی می‌شوند و تحویل استاد داده می‌شوند اما آن استاد محترم نمی‌آید یک موضوع مثل این موضوعات ارائه کند که هم برای یک زبان در طول تاریخ خیر داشته باشد و هم آن دانشجو بداند که یک کار مفید انجام داده و انرژی بگیرد... ما دکترهایی داریم که رساله دکترای خود را روی جمع‌آوری بسامد کلمات فارسی قرار داده‌اند. این قضیه نه تنها برای آن دکتر کسر شأن نیست، بلکه یک افتخار هم هست. حالا ما فکر می‌کنیم دانشجوی کاردانی و کارشناسی ما باید حتماً روی یک موضوع کار کند که در کره زمین کار نشده باشد یا حتی به عقل زمینی‌ها نرسیده باشد! گاهی می‌بینم اساتید موضوعات مسخره‌ای به دانشجویان مظلوم می‌دهند که آن دانشجو اصلاً نمی‌فهمد این موضوع یعنی چی!؟ و نهایتاً بعد از کلی جستجو و تحقیق، می‌رود پول می‌دهد بیرون برایش انجام دهند! ای کاش یک روز اساتید ما موضوعات پروژه و کارآموزی را مثلاً جمع آوری کلمات کلیدی رشته دانشجو قرار دهند. مثلاً کلمات کلیدی رشته کامپیوتر. کلمات کلیدی رشته عمران و ... هر چقدر که در توان دانشجو است این دیتابیس را کامل کند و دانشجوی ترم‌های بعد، آن‌را کامل‌تر و به‌روزتر کند... این دیتابیس‌ها در یک وبلاگ برای استفاده‌ی عموم به کار گرفته شوند. من خودم چند دانشجو را برای رشته کامپیوتر به کار گرفته‌ام و قرار است بیشتر در این زمینه کار کنیم...)
به هر حال، شما برای کار دقیق‌تر به این دیتابیس نیاز دارید اما اگر گیر نیامد، مجبورید این مرحله را انجام ندهید. (مطالبی که یافت می‌شوند طبیعتاً کمی نامرتبطتر خواهند بود)

-- دیتابیسی به نام Semi-Stop Words یا کلمات نیمه‌بازدارنده: کلماتی که جزء دیتابیس کلمات بازدارنده و کلمات کلیدی نباشند، کلمات نیمه‌بازدارنده به حساب می‌آیند و آن‌ها نیز باید حذف شوند. مانند «ترمیم» و «قدیمی» در عنوان مثالی ما. در حقیقت شما به یکی از دیتابیس‌های Go List و Semi-Stop Words نیاز دارید و دومی می‌تواند از روی تفریق به دست آید. یعنی بعد از اینکه شما کلمات بازدارنده را حذف کردید و از روی دیتابیس کلمات کلیدی، کلمات کلیدی را مشخص کردید، هر چه باقی می‌ماند می‌شود کلمات نیمه‌بازدارنده که باید آن‌ها نیز حذف شوند.

۳- در انتهای مرحه‌ی ۲ شما یک آرایه دارید که در آن کلمات کلیدی که در عنوان مطلب فعلی بوده، قرار دارد. مثلاً در عنوان فرضی ما کلمه «در» با استفاده از Stop Words حذف می‌شود، کلمات «ترمیم» و «قدیمی» هم با توجه به دیتابیس Semi-Stop Words حذف می‌شوند و نهایتاً کلمات «آموزش» و «عکس» و «فتوشاپ» در آرایه می‌ماند.
حالا باید این کلمات را با استفاده از عملگر LIKE، جدا-جدا در دیتابیسِ مقالات، جستجو کنید. (مثلاً یک بار «آموزش» را... یک بار «عکس» را...) نتیجه این جستجو لیستی از مقالاتی خواهد بود که مرتبط با هر کلمه هستند. مثلاً چیزی شبیه به تصویر زیر خواهیم داشت:

http://img.aftab.cc/news/93/indexing3.png

حالا فرض کنید قرار است نهایتاً ۵ مقاله مرتبط را لیست کنیم. این سؤال پیش می‌آید که کدام مقالات را بالاتر بیاوریم. (دقیقاً همان قضیه‌ای که گوگل هنگام یافتن هزاران نتیجه در قبال جستجوی شما نیاز دارد که فکری در موردش کند. یعنی کدام سایت را بالاتر بیاورد؟)

باز، همین موضوع خودش کلی بحث دارد. مثلاً گوگل برای مرتب کردن این لیست از ۲۰۰ معیار مختلف کمک می‌گیرد!!!

اما فعلاً ما اولین گامی که گوگل برمی‌دارد را برمی‌داریم: گوگل ابتدا مقالاتی را می‌آورد که تعداد بیشتری از کلمات کلیدی‌ای که در مرحله قبل به دست آمد را شامل شوند. مثلاً در تصویر بالا، مقالات شماره 2 و 8 هر سه کلمه را شامل می‌شوند، پس ابتدای لیست می‌آیند. سپس از راست به چپ (و اگر زبان جستجو انگلیسی بود، از چپ به راست) اولویت کلمات را بالاتر فرض می‌کنیم و هر مقاله‌ای که تعداد بیشتری کلمه کلیدی را دارد لیست می‌کنیم. مثلاً مقاله شماره 7 که کلمات «آموزش» و «عکس» را دارد در جایگاه بعدی قرار می‌گیرد و مقاله شماره 10 در جایگاه بعد و در نهایت مقاله شماره 5 که فقط یک کلمه کلیدی را دارد در لیست قرار می‌گیرد:
2
8
7
10
5

من شکل ساده‌ای از این الگوریتم را در بخش مقالات سایت پیاده‌سازی کردم:

http://img.aftab.cc/news/93/indexing4.png
برای دیدن تصویر در ابعاد واقعی روی آن کلیک کنید...

با توجه به اینکه فعلاً دیتابیس کلمات کلیدی رشته کامپیوتر را ندارم الگوریتم در اکثر موارد شاید خیلی دقیق عمل نکند و نیاز به بهبود دارد اما برای شروع بد نیست... مثلاً به انتهای برخی از مقالات (بخش مطالب مرتبط) دقت کنید: (مثلاً اینجا و اینجا ... عدد انتهای آدرس را می‌توانید به هر عددی تغییر دهید و بررسی کنید)

در این الگوریتم موارد زیر باید مد نظر قرار گیرد:

- مشکل عمده‌ی زبان فارسی: حرف «ی» و «ک» فارسی و «ي» و «ك» عربی! ممکن است مقالات شما با ي عربی (که دو نقطه زیر آن دارد) نوشته شده باشد و مقاله فعلی با ی فارسی باشد و این‌ها کلاً با هم فرق می‌کنند! پس باید عنوان مقالات دیتابیس یک‌دست شوند...

- علاماتی مانند : ، ! () و ... باید حذف شوند. شاید بهتر باشد کلمات یک کاراکتری را از آرایه حذف کنید.

- کلماتی مانند «می» یا «ها» و «اند» و ... کار را خیلی خراب می‌کنند. این‌ها هم باید از آرایه حذف شوند.

- نکات مختلفی وجود دارد که در حین پیاده‌سازی به آن‌ها برمی‌خورید. احتمالاً به مرور این مقاله کامل‌تر شود.

 

موفق باشید؛
حمید رضا نیرومند


[دانستني‌هاي IT]
2 نظر| لينك ثابت

ارسال شده بوسیله Hamid در مورخه : سه شنبه، 13 آبان، 1393 (540 مشاهده)

مجموع خبرها 1219 (407 صفحه | درهر صفحه 3)
[ 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |

  حسن امامی:
سلام
من دبیر ریاضیم
الانم کارشناسی ارشد تفسیر می خونم یعنی رشته غیر مرتبط با درسام
با تفسیر المیزان یا نوارهای تفسیر آیت الله جوادی کار کن
ربط های منطقی ...
در مطلب: یک روش ساده برای حفظ قرآن

  ساناز:
سلام یه سوال ایپد من قفل کرده روشن میشه ولی لمسش کار نمیکنه هر کاری هم کردم باز نشد میشه لطفا راهنماییم کنید
در مطلب: اگر آی.پد یا آیفون یا آی.پاد شما به هیچ وجه روشن نشد باید چه کار کنید

  طراحی انیمیشن:
سلام.

من شنیدم که با این نرم افزار انیمیشن هم میشه درست کرد. درسته؟

و شنیدم که با این نرم افزار بدون کد نویسی میشه نرم افزار طراحی کرد.

این یکی چی این ...
در مطلب: یک خواهش از مدرسین زبان C : با نرم افزار Scratch آشنا شوید

  فرشید:
با سلام و خسته نباشید...ممنون از وقتی که برای نوشتن این مطلب گذاشتین...با سپاس فراوان از شما دوست خوش قلب عزیز
در مطلب: نکاتی که باید درباره دوره آموزشی سربازی بدانید

  :
دقیقا مثل من ولی من تهران قبول شدم ولی بهت توصیه می کنم این کار احمقانه رو نکن هر جور شده برو
در مطلب: کدام دانشگاه بروم؟ دولتی؟ آزاد؟ علمی-کاربردی؟ غیرانتفاعی؟

  zamani:
سلام
خیلی جالب و البته کاربردی بود ممنون
اما من با یه مشکل روبرو شدم اونم با دراپ باکس بعضی سایتا به این ترتیب که مثلا در ثبت نام نوشته استان و بعد شهر زیر مجموع...
در مطلب: وقتی یک سایت باز نمی‌شود باید چه کار کنم؟

  مهران:
واقعاً عالی بود ممنون از اینکه وقت گذاشتید و اطلاعاتتون رو در اختیار ما قرار دادید.
در مطلب: کدام زبان برنامه‌ نویسی را یاد بگیریم؟ (راهنمای انتخاب زبان برنامه نویسی)

  arefe:
Sohbatatun ali budan mn k vaqean khosham oomaD
در مطلب: خانم ها در چه رشته هایی موفق تر هستند؟ آقایان در چه رشته‌هایی؟ (به ویژه در زمینه کامپیوتر)

  لادن:
من می خواهم عینکی بشم غیر از این کار چی کار کنم؟
در مطلب: عینک بزنیم یا نزنیم؟ (+چه شد که من عینکی شدم)

  علی:
با تشکر. آیا لفظ برنامه ی سوم به عملکرد برنامه هم بستگی دارد؟ یعنی بطور مثال یک برنامه ی ماشین حساب معمولی که برنامه نویس دیگری آنرا مثلا در سی شارپ ایجاد کرده نیز شخص ...
در مطلب: Third Party یعنی چه؟

با وارد کردن ايميل خود در کادر زير مي‌توانيد از ارسال اخبار جديد در سايت از طريق ايميل، مطلع شويد:


و يا مي‌توانيد اخبار را از طريق RSS دنبال کنيد:
http://feed.aftab.cc/Aftabgardan-cc

RSS چيست و چه كاربردي دارد؟
آدرس RSS مربوط به آفتابگردان



Home | Forums | Download | Learning | Music | Gallery | Search | Site Map | About Us | Contact Us

Copyright 2004-2009. All rights reserved.
© by Aftabgardan Cultural Center : Aftab.cc : Aftab.cc