Doc2vec (gensim) - मैं अनदेखे वाक्यों के लेबल का पता कैसे लगा सकता हूँ?


14

https://radimrehurek.com/gensim/models/doc2vec.html

उदाहरण के लिए, अगर हमने doc2vec के साथ प्रशिक्षण लिया है

"आआआआआआआआआआआआआआआआ", "लेबल 1"

"BbbbbbBBBBBbbbb" - "लेबल 2"

क्या हम Doc2vec का उपयोग करके "aaaaAAAAaaaaAA" ​​लेबल 1 लगा सकते हैं?

मुझे पता है कि Doc2vec शब्द वैक्टर और लेबल वैक्टर को प्रशिक्षित कर सकता है। इस वैक्टर का उपयोग करके, हम किस लेबल में अनदेखी वाक्य (प्रशिक्षित शब्दों का संयोजन) का अनुमान लगा सकते हैं?

जवाबों:


11

इस प्रश्न का शीर्षक इसके पाठ का एक अलग प्रश्न है, इसलिए मैं दोनों को अलग-अलग उत्तर दूंगा (यह देखते हुए कि एक दूसरे में जाता है)।

  1. मैं अनदेखे वाक्यों का अनुमान कैसे लगा सकता हूं:
# ... trained model stored in var model
list_of_words = ["this", "is", "a", "new","unseen", "sentence"]
inferred_embedding = model.infer_vector(list_of_words)

WRN×PDRM×Rk

1Mi=1M1|Di|t=k|Di1|klog(p(wti|wtki,...,wt+ki,Di))

Diith|Di|wtitthithD

WD

  1. क्या हम अनुमान लगा सकते हैं कि संभवतः एक अनदेखी वाक्य प्रशिक्षण सेट में एक वाक्य से मेल खाता है?

D

यहां तक ​​कि यादृच्छिक बीज को ठीक करने से भी काम नहीं हो सकता है, ऐसे कई अन्य चर हैं जो इसके अभिसरण को प्रभावित कर सकते हैं कृपया https://github.com/RaRe-Technologies/gensim/issues/374 पर पहला उत्तर देखें

किसी भी स्थिति में आप अपने डेटा सेट में सबसे अधिक समान लेबल केवल अपने प्रशिक्षण सेट पर पुनरावृत्ति करके और अनुमानित वेक्टर की समानता की तुलना करके, एक अनुमानित वाक्य पर सेट कर सकते हैं। लेकिन आप प्रशिक्षण सेट में किसी चीज़ का सटीक मिलान क्यों करना चाहेंगे? इन दस्तावेज़ों की निगरानी के लिए नियमित अभिव्यक्तियाँ क्या हैं, यह पर्यवेक्षित या अनुपयोगी शिक्षण कार्यों (अर्थात वर्गीकरण और क्लस्टरिंग) के लिए है।


0

मैं आज इस समस्या को हल करने की कोशिश कर रहा था, और Coudnt gensim.Doc2Vec द्वारा दिए गए किसी भी मॉड्यूल को ढूंढता है जो प्रशिक्षित मॉडल में प्रशिक्षित मॉडल में नहीं, अनुमानित दस्तावेज वेक्टर के बीच समानता की गणना करता है। इसलिए मूल रूप से मैंने ऐसा किया।

from scipy import spatial
inferred_vector=model.infer_vector(sentence.split())
for labels in labelled_documents:
    print (1-  spatial.distance.cosine(inferred_vector,model.docvecs[labels]))

0

Gensim Doc2Vec ट्यूटोरियल के आधार पर , आप ऐसा कुछ कर सकते हैं।

inferred_vector = model_dmm.infer_vector(sentence.split())
sims = model.docvecs.most_similar([inferred_vector], topn=len(model.docvecs))

यह आपको सभी लेबल के साथ ट्यूपल्स की सूची और प्रत्येक लेबल से संबंधित आपके नए दस्तावेज़ से जुड़ी संभावना देगा। तो आप बस अपने लेबल के रूप में सबसे बड़ा मूल्य ले सकते हैं।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.