سؤال

وبلدي هيكل: في كل فئة وهناك نصوص. هذه النصوص هي إدخالات من تلقاء نفسها. لذلك، الجدول 'الفئة' و 'نصوص' الجدول. وهناك حوالي 90 النصوص في كل فئة، كل نص هو حوالي 300 حرفا.

ما أريد القيام به هو جعل العلامات الفوقية (كلمة مرور) للفئات. كيفية> الحصول على كل "النصوص" ذات الصلة وترتيب جميع كلمات واتخاذ أعلى 10 الكلمات. هذه أفضل 10 سيكون علامة تعريف الكلمة فئة ل.

والآن .. خدعة> كيفية استرداد تلك أعلى 10 كلمات. حاليا> أنا عندي أن كل نص (هو النص الكامل) سيتم تقسيمها إلى مجموعة ولكل كلمة. وهذه المجموعة (في بي) أن تكون طويلة جدا. بعد، وأغتنم هذه الترددات من كل كلمة وترتيب ذلك مرة أخرى على تردد. فويلا أعلى 10 كلمات.

وأنا لم تختبر هذا الإجراء ولكن اعتقد ان الامر قد يستغرق بعض الشيء. سوف يكون مؤقتا فإنه لذلك سوف يكون فقط لتشغيل مرة واحدة كل أسبوع أو نحو ذلك، ولكن لا يزال، وأنا لن ترغب في الحصول على مهلة.

هل اللاعبين لديها أي نصائح؟ أي عن تقديره للمساعدة.

شكرا،

وموريس

هل كانت مفيدة؟

المحلول

وطيب، الآن بعد أن قلت سلامي في التعليق أعلاه، سوف تحصل على الخوارزمية الخاصة بك.

وهناك عدة طرق للقيام بذلك، سوف أركز على نهج PHP الثقيلة والسماح SOers أخرى تفعل بعض القضايا الأخرى.

وأنا ذاهب لنفترض أنك الاستعلام بالفعل قاعدة البيانات وتخزينها كل كلمة ضمن قائمة مفصولة الفضاء في النصوص $ متغير

// Sample data in $texts
$texts      = "orange orange apple apple apple banana";
$withCounts = array_count_values( explode( ' ', $texts ) );

asort( $withCounts );
$topTen = array_keys( array_reverse( array_slice( $withCounts, -10 ) ) );

print_r( $topTen );
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top