خوارزمية لجهات الاتصال الحديثة/المتكررة للإكمال التلقائي؟

StackOverflow https://stackoverflow.com/questions/209725

سؤال

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

كنت أفكر في أنه يجب إضافة بعض المنطق بحيث يتم فرز نتائج الإكمال التلقائي حسب بعض الوظائف التي تم الاتصال بها مؤخرًا أو التي تم الاتصال بها في أغلب الأحيان بدلاً من الترتيب الأبجدي فقط.

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

كنت أفكر فقط في نظام النقاط، مع شيء مثل نفس اليوم هو 5 نقاط، وآخر ثلاثة أيام هو 4 نقاط، والأسبوع الماضي هو 3 نقاط، والشهر الماضي هو نقطتان، وآخر 6 أشهر هو نقطة واحدة.ثم في أغلب الأحيان، 25+ هي 5 نقاط، 15+ هي 4، 10+ هي 3، 5+ هي 2، 2+ هي 1.لا يوجد منطق حقيقي غير تلك الأرقام التي "تشعر" بأنها صحيحة.

بخلاف مجرد أرقام تم اختيارها بشكل تعسفي، هل لدى أي شخص أي مدخلات؟نرحب أيضًا بالأرقام الأخرى إذا كان بإمكانك تقديم سبب يجعلك تعتقد أنها أفضل من أرقامي

يحرر:سيكون هذا في المقام الأول في بيئة الأعمال حيث الحداثة (يعني تكوين الكلمات) غالباً ما تكون بنفس أهمية التكرار.أيضًا، بعد نقطة معينة، لا يوجد فرق كبير بين شخص تحدثت إليه 80 مرة على سبيل المثال، مقابل 30 مرة على سبيل المثال.

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

المحلول

وهذا النوع من شيء يبدو على غرار ما يقوم به فايرفوكس عندما ملمحا ما هو الموقع الذي تكتب عنه.

للأسف أنا لا أعرف بالضبط كيف فايرفوكس يفعل ذلك، نقطة نظام يبدو جيدا كذلك، ربما ستحتاج إلى تحقيق التوازن بين النقاط الخاصة بك:)

وكنت اذهب لشيء مماثل ل:

وحركيا = عدد من البريد

و(NOM إرسالها إلى X اليوم) + 1/2 * (NOM إرسالها إلى X خلال الأسبوع الماضي) / 7 + 1/3 * (NOM إرسالها إلى X خلال الشهر الماضي) / 30

وجهات الاتصال التي لم يكتب خلال الشهر الماضي (يمكن أن تتغير) سيكون لها 0 نقطة. هل يمكن أن تبدأ فرزها لجنة الترشيح أرسلت في المجموع (لأنه على قائمة الاتصال :). سوف تظهر هذه <م> بعد اتصالات مع نقاط> 0

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

نصائح أخرى

ونلقي نظرة على قوائم تنظيم الذاتي.

ونظرة سريعة وقذرة:

ونقل إلى الجبهة ارشادي: قائمة مرتبط، مثل أنه كلما يتم تحديد عقدة، يتم نقله إلى مقدمة القائمة.

والتردد ارشادي: قائمة مرتبط، بحيث كلما يتم تحديد عقدة يتزايد عدد ترددها، ومن ثم انفجر العقدة نحو الجزء الأمامي من القائمة، بحيث الأكثر الوصول إليها بشكل متكرر هو على رأس القائمة.

ويبدو أن التحرك لتنفيذ الأمامي من شأنها أن تناسب احتياجاتك.

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

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

وهذه القضية هي أننا نريد لتنفيذ العمليات الحسابية (غير البحث) على عقدة فقط عندما يتم الوصول إليه فعلا - وهذا يعطينا أدائنا الجيد الإحصائي

إذا كنت تريد أن تصاب بالجنون، ضع علامة على رسائل البريد الإلكتروني الأكثر "نشاطًا" بإحدى الطرق العديدة:

  • آخر ولوج
  • تردد الاستخدام
  • اتصالات مع المبيعات المعلقة
  • الرؤساء المباشرون
  • إلخ

ثم قم بتقديم رسائل البريد الإلكتروني النشطة في أعلى القائمة.انتبه إلى "المجموعة" التي يستخدمها المستخدم أكثر من غيرها.قم بالتبديل إلى استراتيجية الفرز هذه حصريًا بعد جمع بيانات كافية.

إنه عمل كثير ولكنه نوع من المرح.

وربما تعول على عدد من رسائل البريد الإلكتروني المرسلة إلى كل عنوان. ثم:

وORDER BY EmailCount DESC، اسم العائلة، الاسم الأول

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

وأنا أحب فكرة وجود نظام قائم على النقطة، مع نقاط لاستخدامها في الآونة الأخيرة، وتواتر الاستخدام، وعوامل أخرى يحتمل أن تكون (تفضل الاتصالات في المجال المحلي؟).

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

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

هذه الورقة يصف عائلة من معلمة واحدة سياسات الطرد ذاكرة التخزين المؤقت التي تشمل سياسات الأقل المستخدمة مؤخرا والأقل استخداما كحالات خاصة.

والمعلمة، لامدا، تتراوح من 0 إلى 1. عند امدا هو 0 ينفذ تماما مثل مخبأ LFU، عندما امدا هو 1 ينفذ تماما مثل مخبأ LRU. بين 0 و 1 أنه يجمع بين المعلومات حداثة وتردد بطريقة طبيعية.

في بعد أن تم اختياره الرغم من إجابة، وأنا أريد أن تقدم وجهة نظري للنظر فيها، وردود الفعل.

وأود أن يعلل تردد عن طريق زيادة عداد كل استخدام، ولكن من قبل بعض قيمة أكبر من واحد، مثل 10 (لإضافة الدقة إلى النقطة الثانية).

وأود أن تشكل حداثة بضرب <م> جميع عدادات على فترات منتظمة (مثلا، 24 ساعة) من قبل بعض diminisher (مثلا، 0.9).

وكل الاستخدام:

UPDATE `addresslist` SET `favor` = `favor` + 10 WHERE `address` = 'foo@bar.com'

وكل فترة:

UPDATE `addresslist` SET `favor` = FLOOR(`favor` * 0.9)

في هذه الطريقة وأنا تنهار كل من التردد وحداثة في حقل واحد، وتجنب الحاجة إلى الحفاظ على التاريخ المفصل لاستخلاص {اليوم الأخير، الأسبوع الماضي، الشهر الماضي} والحفاظ على الرياضيات (في الغالب) صحيح.

ووزيادة وdiminisher سيتعين تعديل لتفضيل، بطبيعة الحال.

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