सबसे पहले, शुरू करने से पहले मैं आपको सलाह देता हूं कि आप नेटवर्क पर इसी तरह के सवालों का संदर्भ लें जैसे कि /datascience/25053/best-practical-al एल्गोरिदम-for - sentence - slilarity और https: // stackoverflow। com / प्रश्न / 62,328 / है-वहाँ-एक-कलन विधि-कि-बताता है-अर्थ-समानता के-दो वाक्यांशों
वाक्यों की समानता का निर्धारण करने के लिए हमें विचार करना होगा कि हमारे पास किस प्रकार का डेटा है। उदाहरण के लिए, यदि आपके पास एक लेबल डेटासेट यानी समान वाक्य और डिस्मिलर वाक्य हैं, तो वाक्यों को वर्गीकृत करने के लिए एक पर्यवेक्षित एल्गोरिथ्म का उपयोग करने के लिए एक सीधा आगे का दृष्टिकोण हो सकता है।
एक दृष्टिकोण जो वाक्य संरचनात्मक समानता को निर्धारित कर सकता है वह शब्द एम्बेडिंग एल्गोरिदम द्वारा उत्पन्न शब्द वैक्टर को औसत करना होगा। ये एल्गोरिदम प्रत्येक शब्द के लिए एक सदिश का निर्माण करते हैं और उनके बीच की ब्रह्मांडीय समानता शब्दों के बीच शब्दार्थ समानता का प्रतिनिधित्व करती है। (डैनियल एल 2017)
शब्द वैक्टर का उपयोग करके हम शब्दों की समानता निर्धारित करने के लिए निम्नलिखित मैट्रिक्स का उपयोग कर सकते हैं।
- शब्दों के शब्द एम्बेडिंग के बीच कॉशन दूरी
- शब्दों के शब्द एम्बेडिंग के बीच यूक्लिडियन दूरी
कॉसीन समानता एक आंतरिक उत्पाद अंतरिक्ष के दो गैर-शून्य वैक्टर के बीच समानता का एक उपाय है जो उनके लिए कोण के कोसाइन को मापता है। कोसाइन कोण उनकी सामग्री के संदर्भ में वाक्यों के बीच ओवरलैप का माप है।
दो शब्द वैक्टर के बीच यूक्लिडियन दूरी, संबंधित शब्दों की भाषाई या अर्थ समानता को मापने के लिए एक प्रभावी तरीका प्रदान करता है। (फ्रैंक डी 2015)
वैकल्पिक रूप से आप वाक्य समानता को निर्धारित करने के लिए वाक्यों के आइजनवेक्टर की गणना कर सकते हैं।
Eigenvectors समीकरणों के एक रैखिक प्रणाली (यानी मैट्रिक्स समीकरण) से जुड़े वैक्टर का एक विशेष सेट है। यहां प्रत्येक क्लस्टर के लिए एक वाक्य समानता मैट्रिक्स उत्पन्न होती है और मैट्रिक्स के लिए आइजनवेक्टर की गणना की जाती है। आप इस पेपर पर वाक्य रैंकिंग के लिए Eigenvector आधारित दृष्टिकोण पर अधिक पढ़ सकते हैं https://pdfs.semanticscholar.org/ca73/bbc99be157074d8aad17ca8535e2cd956815.pdf
स्रोत कोड के लिए सिराज रावल के पास शब्द वैक्टर का एक सेट बनाने के लिए पायथन नोटबुक है। शब्द वैक्टर का उपयोग तब शब्दों के बीच समानता खोजने के लिए किया जा सकता है। स्रोत कोड यहां उपलब्ध है https://github.com/llSourcell/word_vectors_game_of_thrones-LIVE
एक अन्य विकल्प ऑरेली से एक ट्यूटोरियल है जो दस्तावेजों के बीच समानता को निर्धारित करने के लिए जेनसिन पायथन लाइब्रेरी का उपयोग करता है। यह ट्यूटोरियल NLTK का उपयोग टोकन के लिए करता है, फिर कॉर्पस से एक tf-idf (शब्द आवृत्ति-व्युत्क्रम दस्तावेज़ आवृत्ति) मॉडल बनाता है। Tf-idf का उपयोग तब दस्तावेजों की समानता को निर्धारित करने के लिए किया जाता है। ट्यूटोरियल यहां उपलब्ध है https://www.oreilly.com/learning/how-do-i-compare-document-similarity-use-python