العودة لقائمة المشاريع
تطوير كود برمجي بـ Sql أو بـ C#
الميزانية
$50.00 - $100.00
التصنيف
برمجة، تطوير المواقع والتطبيقات
صاحب المشروع
عبدالعزيز ا.
المهارات المطلوبة
تطوير البرمجيات
هندسة البرمجيات
برمجة قواعد البيانات
SQL
مايكروسوفت إس كيو إل سيرفر
C# Programming
تطوير البرمجيات
هندسة البرمجيات
برمجة قواعد البيانات
SQL
مايكروسوفت إس كيو إل سيرفر
C# Programming
الوصف
السلام عليكم،،
احتاج تطوير كود برمجي مكتوب بـ SQL أوC# لحساب قانون Cosine similarity for Vector Space Model ( الصورة مرفقة)
هذا القانون يستخدم دائماً في محركات البحث لإظهار النتائج الأكثر صلة لإستعلام المستخدم فكرته باختصار هو حساب الإستعلام المدخل من قبل المستخدم مع كل Documents موجودة في نظام البحث ومن ثم يرتب الـ Documents على أكثر صلة لكلمة البحث. مثال على ذلك على برنامجي ( محرك بحث على القرآن الكريم ) :
مستخدم أدخل كلمة ( الرحمن ) ، الآن محرك البحث يأخذ هذه الكلمة ومن ثم يبدأ البحث من أول آية إلى آخر آية لكي يحدد الآية التي تعتبر أكثر صلة لكلمة الرحمن وذلك عن طريق قانون Cosine similarity.
حالياً هذا الكود متواجد لدي ويعمل والنتائج سليمة لكنه يعمل على كلمة بحث واحدة فقط أي مثلاً ( الرحمن) وهو كالتالي:
(SELECT (Value -for document tf-idf-* -for query tf-idf-((1+(Log(1,2))) * (dbo.Get_IDF2(Vocabulary_ID))))
/
(SQRT (dbo.PowerDoc(Document_ID)) * SQRT (POWER(((1+(Log(1,2))) * (dbo.Get_IDF2(Vocabulary_ID))),2))) FROM [dbo].[TF_IDF] -For Document- WHERE Document_ID=@p_DocID AND Vocabulary_ID=@p_VocID)
لذا آمل تطويره ليستقبل استعلام المستخدم ويكون (Dynamic) أي على أكثر من كلمة مثلاً ( رب السموات ) أو ( بسم الله الرحمن الرحيم ) وهلم جرا وبالتالي لابد عمل مايسمى Split للكلمات ومن وضعها مرة أخرى في القانون لتطبيقه.
مثال للتوضيح لشرح كود (WHERE Document_ID=@p_DocID AND Vocabulary_ID=@p_VocID):
مثل هذا الكود المستخدم عن كلمة استعلام واحدة:
SELECT [dbo].[GetValue](13440 for a query,650 for a document)
RETURN (SELECT (Value -for document tf-idf-* -for query tf-idf-((1+(Log(1,2))) * (dbo.Get_IDF2(Vocabulary_ID))))
/
(SQRT (dbo.PowerDoc(Document_ID)) * SQRT (POWER(((1+(Log(1,2))) * (dbo.Get_IDF2(Vocabulary_ID))),2))) FROM [dbo].[TF_IDF] -For Document- WHERE Document_ID=@p_DocID AND Vocabulary_ID=@p_VocID)
مستخدم بحث عن ( ملك) - فالآية التي تحتوي مثلاً (ملك الناس) فسيضرب كلمة (ملك) الموجودة في الإستعلام بشبيهتها فقط في الآية وهي كلمة (ملك) و (الناس) سيكون صفر لأنه لازجود لها في الإستعلام
في الكود البرمجي المطور أن لو مستخدم بحث عن ( ملك الناس ) -- فقط مثال -- فالآية التي تحتوي مثلاً (ملك الناس) فسيضرب كلمة (ملك) الموجودة في الإستعلام بشبيهتها فقط في الآية وهي كلمة (ملك) و (الناس) في كلمة (الناس) . لكن فرضاً بحث عن ( ملك الناس ) في آية ( إله الناس ) هنا كلمة (ملك) في الإستعلام شبيهتها غير موجودة وبالتالي الناتج سيكون صفر بينما كلمة (الناس) تضرب شبيهتها وهي كلمة ( الناس ) . أخير لو بحث عن ( ملك الناس ) فالآية التي تحتوي مثلاً (الرحمن) سيكون صفر، لأن لا تشابه في الكلمات. فإذا لابد من ضرب كلمة الإستعلام بنفسها الموجودة في الآية نفسها.
ملحوظة هامة:
- اظهار النتائج لابد أن تكون سريعة قدر الإمكان