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

वर्ड-एम्बेडिंग-विद-पायथन: वर्डसी

2024-11-08 को प्रकाशित
ब्राउज़ करें:234

Word-embedding-with-Python: Wordc

Python (& Gensim) के साथ Word2vec कार्यान्वयन

  • नोट: यह कोड पायथन 3.6.1 (जेनसिम 2.3.0) में लिखा गया है

  • जेनसिम के साथ वर्ड2वेक का पायथन कार्यान्वयन और अनुप्रयोग

  • मूल पेपर: मिकोलोव, टी., चेन, के., कोराडो, जी., और डीन, जे. (2013)। वेक्टर स्पेस में शब्द प्रतिनिधित्व का कुशल अनुमान। arXiv प्रीप्रिंट arXiv:1301.3781.

import re
import numpy as np

from gensim.models import Word2Vec
from nltk.corpus import gutenberg
from multiprocessing import Pool
from scipy import spatial
  • प्रशिक्षण डेटासेट आयात करें
  • एनएलटीके लाइब्रेरी से शेक्सपियर के हेमलेट कॉर्पस को आयात करें
sentences = list(gutenberg.sents('shakespeare-hamlet.txt'))   # import the corpus and convert into a list

print('Type of corpus: ', type(sentences))
print('Length of corpus: ', len(sentences))

कोश का प्रकार: वर्ग 'सूची'
कोष की लंबाई: 3106

print(sentences[0])    # title, author, and year
print(sentences[1])
print(sentences[10])

['[', 'द', 'ट्रेजेडी', 'ऑफ़', 'हैमलेट', 'बाय', 'विलियम', 'शेक्सपियर', '1599', ']']
['एक्टस', 'प्राइमस', '.']
['फ्रैन', '.']

प्रीप्रोसेस डेटा

  • डेटा को प्रीप्रोसेस करने के लिए पुनः मॉड्यूल का उपयोग करें
  • सभी अक्षरों को छोटे अक्षरों में बदलें
  • विराम चिह्न, संख्याएं आदि हटाएं।
for i in range(len(sentences)):
    sentences[i] = [word.lower() for word in sentences[i] if re.match('^[a-zA-Z] ', word)]  
print(sentences[0])    # title, author, and year
print(sentences[1])
print(sentences[10])

['द', 'ट्रेजेडी', 'ऑफ़', 'हैमलेट', 'बाय', 'विलियम', 'शेक्सपियर']
['एक्टस', 'प्राइमस']
['फ्रैन']

मॉडल बनाएं और प्रशिक्षित करें

  • एक Word2vec मॉडल बनाएं और इसे हेमलेट कॉर्पस के साथ प्रशिक्षित करें
  • मुख्य पैरामीटर विवरण (https://radimrehurek.com/gensim/models/word2vec.html)
    • वाक्य: प्रशिक्षण डेटा (टोकनयुक्त वाक्यों के साथ एक सूची होनी चाहिए)
    • आकार: एम्बेडिंग स्थान का आयाम
    • sg: CBOW यदि 0, स्किप-ग्राम यदि 1
    • विंडो: प्रत्येक संदर्भ के लिए शब्दों की संख्या (यदि विंडो
    • आकार 3 है, बाएं पड़ोस में 3 शब्द और दाएं पड़ोस में 3 शब्द माने गए हैं)
    • min_count: शब्दावली में शामिल किए जाने वाले शब्दों की न्यूनतम संख्या
    • इटर: प्रशिक्षण पुनरावृत्तियों की संख्या
    • श्रमिक: प्रशिक्षित करने के लिए कार्यकर्ता थ्रेड की संख्या
model = Word2Vec(sentences = sentences, size = 100, sg = 1, window = 3, min_count = 1, iter = 10, workers = Pool()._processes)

model.init_sims(replace = True)

मॉडल सहेजें और लोड करें

  • word2vec मॉडल को स्थानीय रूप से सहेजा और लोड किया जा सकता है
  • ऐसा करने से मॉडल को दोबारा प्रशिक्षित करने में लगने वाला समय कम हो सकता है
model.save('word2vec_model')
model = Word2Vec.load('word2vec_model')

समानता गणना

  • एम्बेडेड शब्दों (यानी, वैक्टर) के बीच समानता की गणना कोसाइन समानता जैसे मैट्रिक्स का उपयोग करके की जा सकती है
model.most_similar('hamlet')

[('होरेशियो', 0.9978846311569214),
('क्वीन', 0.9971947073936462),
('लैर्टेस', 0.9971820116043091),
('राजा', 0.9968599081039429),
('माँ', 0.9966716170310974),
('कहां', 0.9966292381286621),
('डीरे', 0.9965540170669556),
('ओफेलिया', 0.9964221715927124),
('बहुत', 0.9963752627372742),
('ओह', 0.9963476657867432)]

v1 = model['king']
v2 = model['queen']

# define a function that computes cosine similarity between two words
def cosine_similarity(v1, v2):
    return 1 - spatial.distance.cosine(v1, v2)

cosine_similarity(v1, v2)

0.99437165260314941

विज्ञप्ति वक्तव्य यह आलेख यहां पुन: प्रस्तुत किया गया है: https://dev.to/ragoli86/word-embedding-with-python-word2vec-540c?1 यदि कोई उल्लंघन है, तो कृपया इसे हटाने के लिए स्टडी_गोलंग@163.com से संपर्क करें।
नवीनतम ट्यूटोरियल अधिक>

चीनी भाषा का अध्ययन करें

अस्वीकरण: उपलब्ध कराए गए सभी संसाधन आंशिक रूप से इंटरनेट से हैं। यदि आपके कॉपीराइट या अन्य अधिकारों और हितों का कोई उल्लंघन होता है, तो कृपया विस्तृत कारण बताएं और कॉपीराइट या अधिकारों और हितों का प्रमाण प्रदान करें और फिर इसे ईमेल पर भेजें: [email protected] हम इसे आपके लिए यथाशीघ्र संभालेंगे।

Copyright© 2022 湘ICP备2022001581号-3