2010-08-24 19 views
12

हर कोई जानता है, अगर आप थ्रेड ईमेल चाहते हैं तो आप Jamie Zawinski's algorithm का उपयोग करें। लेकिन यह एक नई शताब्दी है, और नई संदेश सेवा है।थ्रेडिंग ट्वीट्स के लिए हेरिस्टिक का एक अच्छा सेट क्या है?

ट्विटर पर पोस्ट किए गए थ्रेडिंग स्थिति अपडेट के लिए सबसे अच्छा एल्गोरिदम क्या है?

  • आसान हिस्सा: in_reply_to_status_id, in_reply_to_user_id और in_reply_to_screen_name का उपयोग कर

    चीजें मैं इसे से निपटने के लिए निश्चित रूप से चाहते हैं।

  • अच्छा heuristics से एक "उत्तर" संबंध का निष्कर्ष निकालते के लिए (संयोग से, इन मूल्यों का उचित प्रलेखन खोजने अपने आप में उपयोगी होगा! इस तरह के प्रलेखन जाहिर here, उदाहरण के लिए से से जुड़ा हुआ नहीं है।) संदेश जो @ सम्मेलन वाले उपयोगकर्ता का उल्लेख करते हैं लेकिन स्पष्ट रूप से किसी विशेष संदेश के उत्तर में नहीं हैं। यदि आप अनुरोध करते हैं तो ये "उल्लेख" are provided in the "entities" element of statuses now है। ये हेरिस्टिक्स खाता (ए) में दो स्थिति अपडेट के बीच का समय ले सकता है, (बी) दो उपयोगकर्ताओं के बीच कमजोर उत्तरों हैं, (उत्तर जिसमें अतिरिक्त टिप्पणी के साथ पुरानी शैली के रिटविट शामिल हैं, mentioned by user85509 below सिर्फ उत्तर की इस शैली का एक उदाहरण है।)

  • दो से अधिक उपयोगकर्ताओं के बीच होने वाली बातचीत।

  • एल्गोरिदम को दिए गए ट्वीट्स के सेट के साथ काम करना, या सभी ट्विटर पर ट्वीट्स।

... लेकिन शायद आप और अधिक सोच सकते हैं।

उत्तर

5

चूंकि केवल एक ही जवाब रहा है, और बक्षीस की समय सीमा जल्द ही आ रही है, मैंने सोचा कि मुझे आधारभूत उत्तर जोड़ना चाहिए ताकि बक्षीस को उस उत्तर में स्वचालित रूप से सम्मानित न किया जाए जो प्रश्न में क्या नहीं है।

स्पष्ट पहला कदम है कि आप अपने मूल सेटों को सेट करें और कई निर्देशित विश्वकोश ग्राफ बनाने के लिए सभी in_reply_to_status_id लिंक का पालन करें। ये संबंध आप लगभग 100% निश्चित हो सकते हैं। (आपको उन ट्वीट्स के माध्यम से भी लिंक का पालन करना चाहिए जो मूल सेट में नहीं हैं, जो आप विचार कर रहे स्टेटस अपडेट्स के सेट में जोड़ रहे हैं।)

उस आसान कदम से परे, किसी को " उल्लेख है "। ईमेल थ्रेडिंग के विपरीत, कोई भी विषय पंक्ति जैसी सहायक नहीं है जिस पर कोई मिलान कर सकता है - यह अनिवार्य रूप से बहुत त्रुटि प्रवण होने जा रहा है। मैं जो दृष्टिकोण लेता हूं वह उस स्थिति आईडी के बीच हर संभव रिश्ते के लिए एक फीचर वेक्टर बनाना है जिसे उस ट्वीट में उल्लेख किया जा सकता है, और उसके बाद "नो उत्तर" विकल्प सहित सर्वोत्तम विकल्प का अनुमान लगाने के लिए क्लासिफायर को प्रशिक्षित करना है।

"हर संभव रिश्ते" बिट को काम करने के लिए, प्रत्येक स्थिति अद्यतन पर विचार करके शुरू करें जो एक या अधिक अन्य उपयोगकर्ताओं का उल्लेख करता है और इसमें in_reply_to_status_id नहीं है। मान लीजिए इन ट्वीट्स की एक का एक उदाहरण है:

@a @b no it isn't lol RT @c Yes, absolutely. /cc @stephenfry 

... आप @a, @b की समयसीमा में पहले के एक तारीख के साथ इस अद्यतन और हर अद्यतन के बीच के रिश्ते के लिए एक सुविधा वेक्टर बनाना होगा, पिछले सप्ताह (कहें) और उस अपडेट के बीच @c, और @stephenfry और एक विशेष "कोई जवाब नहीं" अपडेट। तो फिर तुम एक फीचर वेक्टर बनाने के लिए - आप इस आप चाहते हैं जो कुछ भी करने के लिए जोड़ सकते हैं, लेकिन मैं कम से कम जोड़ने का सुझाव होगा:

  • बार हुआ है कि दो अद्यतन के बीच गुजरे - शायद उत्तर अधिक करने के लिए होने की संभावना है हाल के अद्यतन।
  • उल्लेख के अनुसार शब्दों के संदर्भ में ट्वीट के माध्यम से मार्ग का अनुपात। जैसे यदि यह पहला शब्द है, तो यह 0 का स्कोर होगा और संभवतः अद्यतन में उल्लेखों के मुकाबले उत्तर देने का अधिक संभावना है।
  • उल्लिखित उपयोगकर्ता के अनुयायियों की संख्या - हस्तियां संभावित रूप से स्पैम-उल्लिखित होने की अधिक संभावना है।
  • अद्यतनों के बीच सबसे लंबे समय तक सामान्य सबस्ट्रिंग की लंबाई, जो प्रत्यक्ष उद्धरण इंगित कर सकती है।
  • क्या "/ सीसी" या अन्य संकेतक से पहले उल्लेख किया गया है जो इंगित करता है कि यह सीधे उस व्यक्ति का उत्तर नहीं है?
  • मूल अद्यतन के लेखक के लिए following/followed अनुपात।
  • आदि
  • आदि

इन एक, बेहतर के साथ आ सकता है, क्योंकि वर्गीकारक केवल उन है कि बाहर बारी उपयोगी होने के लिए प्रयोग करेंगे के और अधिक। मैं random forest वर्गीकरण की कोशिश करने का सुझाव दूंगा, जिसे आसानी से Weka में कार्यान्वित किया गया है।

अगला व्यक्ति को प्रशिक्षण सेट की आवश्यकता है। यह पहले छोटा हो सकता है - बस ऐसी सेवा प्राप्त करने के लिए पर्याप्त है जो बातचीत को ऊपर और चलने की पहचान करता है। इस मूल सेवा के लिए, किसी को बेमेल या झूठे लिंक वाले अपडेट को सही करने के लिए एक अच्छा इंटरफ़ेस जोड़ना होगा, ताकि उपयोगकर्ता उन्हें सही कर सकें। इस डेटा का उपयोग करने से कोई बड़ा प्रशिक्षण सेट और एक और सटीक वर्गीकृत बना सकता है।

... जो ट्विटर पर प्रवचन के स्तर के विशिष्ट हो सकता है;)

0

ट्विटर पर, लोग अक्सर संदेश के सामने "आरटी" लिखते हैं जिसका वे जवाब दे रहे हैं।

+3

एक आर टी है नहीं एक उत्तर है, यह एक "रीट्वीट।" है इसका मतलब यह है कि आप किसी और ने कहा है कि एक एट्रिब्यूशन के बाद दोहराया जा रहा है। –

+1

मेरे अनुभव में, यह दोनों के लिए उपयोग किया जाता है। लोग अक्सर अपने जवाब के लिए " आरटी <@name><उद्धरण संदेश जहां तक ​​स्थान अनुमति देता है" प्रारूप का उपयोग करते हैं। – user85509