7

यहां समस्या है - मेरे पास कुछ हज़ार छोटे टेक्स्ट स्निपेट हैं, कुछ शब्दों से कुछ वाक्यों तक कहीं भी - डिस्क पर सबसे बड़ा स्निपेट लगभग 2k है। मैं प्रत्येक को प्रत्येक की तुलना करने में सक्षम होना चाहता हूं, और एक संबंधित कारक की गणना करना चाहता हूं ताकि मैं उपयोगकर्ता से संबंधित जानकारी दिखा सकूं।पाठ के दो निकायों की "संबंधितता" को खोजने के लिए कुछ अच्छे तरीके क्या हैं?

ऐसा करने के कुछ अच्छे तरीके क्या हैं? क्या ऐसा करने के लिए एल्गोरिदम ज्ञात हैं जो कि अच्छे हैं, क्या कोई जीपीएल समाधान है, आदि?

मुझे रीयलटाइम में चलाने के लिए इसकी आवश्यकता नहीं है, क्योंकि मैं सबकुछ सटीक कर सकता हूं। मैं रनटाइम से अच्छे परिणाम प्राप्त करने के लिए अधिक चिंतित हूं।

मैंने सोचा कि मैं अपनी खुद की चीज लिखने और लिखने से पहले स्टैक ओवरफ्लो समुदाय से पूछूंगा। वहां लोगों को वहां होना है जिन्होंने पहले इसके लिए अच्छे समाधान प्राप्त किए हैं।

+1

बहुत अपरिचित प्रश्न। आप किस पर दो ग्रंथों को एक दूसरे से संबंधित मानते हैं? आम विषय? दोहराए गए वाक्यांश? लंबाई? जटिलता? पत्र आवृत्ति? –

उत्तर

2

ये लेख है। और यह SO प्रश्न Latent Semantic Analysis के बारे में है।

आप उन शब्दों के लिए Soundex भी देख सकते हैं जो ध्वन्यात्मक रूप से "ध्वनि समान" होते हैं।

+0

धन्यवाद। लेटेन्ट अर्थात् विश्लेषण वादा करता है, मुझे इसे लागू करने और इसे लागू करने के बारे में देखना होगा। – Matt

2

मैं इसे इस्तेमाल कभी नहीं किया है, लेकिन आप में Levenshtein distance

+0

कई परिदृश्यों में अच्छी तरह से काम करता है –

+0

लेवेनशेटिन संपादन दूरी प्रदान करता है, अर्थपूर्ण मतभेद नहीं। – Bob

1

जेफ फली यहाँ सही पक्ष पर सूचीबद्ध संबंधित सवालों को खोजने के लिए डाली पर कुछ इस तरह के बारे में बात देखने के लिए चाहते हो सकता है। (in podcast 32)

एक बड़ी युक्ति सभी common words को "द" और "" यह "आदि को हटाने के लिए थी। यह आपको तुलना करने के लिए और अधिक सार्थक शब्दों के साथ छोड़ देगा।

और यहाँ एक ऐसी ही सवाल Is there an algorithm that tells the semantic similarity of two phrases

0

यह book प्रासंगिक हो सकता है है।

संपादित करें: यहाँ सहायक हो सकता है semantic relatedness और semantic similarity पर संबंधित SO question

+0

धन्यवाद। सूचना पुनर्प्राप्ति सामान्य विषय है, और इस पुस्तक में शायद इसकी अच्छी जानकारी है। – Matt

0

यह बड़े बड़े ग्रंथों के लिए काफी कठिन है, हालांकि छोटे ग्रंथों के लिए कठिन है।

मैं इस तरह एक बार यह किया है, और यह बहुत अच्छी तरह से काम किया:

  • फ़िल्टर सभी "सामान्य" शब्द (एक तरह, एक,,, आदि ... में) (के बारे में 10-30 फिल्टर शब्दों का%)
  • शेष शब्दों की आवृत्तियों की गणना करें, सबसे लगातार शब्दों के शीर्ष एक्स को स्टोर करें, ये आपके विषय हैं।
  • एक अतिरिक्त चरण के रूप में आप 2/3/4 के बाद के शब्दों के समूह बना सकते हैं और अन्य ग्रंथों में समूहों के साथ उनकी तुलना कर सकते हैं। मैंने इसे प्लेगेरिज्म के उपाय के रूप में इस्तेमाल किया।
0

मैनिंग और राघवन कोर्स MinHashing के बारे में नोट्स देखें और इसी तरह की वस्तुओं की खोज करें, और C#(?) version देखें। मेरा मानना ​​है कि तकनीक उलमैन और मोटवानी के शोध से आती है।

0

ध्वन्यात्मक एल्गोरिदम

लेख, Beyond SoundEx - Functions for Fuzzy Searching in MS SQL Server, से पता चलता स्थापित करने और एसक्यूएल सर्वर में SimMetrics पुस्तकालय का उपयोग कैसे करें।यह पुस्तकालय आपको तारों के बीच सापेक्ष समानता खोजने देता है और इसमें कई एल्गोरिदम शामिल हैं।

मैं नामों से मेल खाने के लिए अधिकतर Jaro Winkler का उपयोग कर समाप्त हुआ। यहां अधिक जानकारी दी गई है जहां मैंने SO: Matching records based on Person Name

Levenshtein Distance पर आधारित कुछ एल्गोरिदम सिमेट्रिक लाइब्रेरी में भी उपलब्ध हैं और शायद आपके एप्लिकेशन में उपयोगी होंगे।

संबंधित मुद्दे