Doc2vec (gensim) - আমি কীভাবে অদেখা বাক্যগুলির লেবেল অনুমান করতে পারি?


14

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

উদাহরণস্বরূপ, যদি আমরা ডক 2 ওয়েভ দিয়ে প্রশিক্ষিত হয়ে থাকি

"আআআআএএএএএএএএএএএএ" "" লেবেল 1 "

"BbbbbbBBBBBbbbb" - "লেবেল 2"

আমরা "aaaAAAAAaaaaAA" ​​ডক 2vec ব্যবহার করে 1 লেবেলটি নির্ধারণ করতে পারি?

আমি জানি ডক 2vec শব্দ ভেক্টর এবং লেবেল ভেক্টরকে প্রশিক্ষণ দিতে পারে। এই ভেক্টরগুলি ব্যবহার করে, আমরা কোন লেবেলে অদেখা বাক্যগুলি (প্রশিক্ষিত শব্দের সংমিশ্রণ) অনুমান করতে পারি?

উত্তর:


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)

কিভাবে কাজ করে ? মূল কাগজ অনুসারে ( https://cs.stanford.edu/~quocle/paragraph_vector.pdf ) আমাদের দুটি ওজন ম্যাট্রিক শুরু হয়েছে এ র্যান্ডম যা একই is ওয়ার্ড 2Vec থেকে ম্যাট্রিক্স যেখানে প্রতিটি কলাম বা সারি একটি শব্দের ভেক্টর এবং মানচিত্র হয় যা নথির ম্যাট্রিক্স যেখানে প্রতিটি কলাম বা সারি একটি বাক্য / নথিতে মানচিত্র করে। প্রশিক্ষণের সময় ফিক্সের মতো চলমান উইন্ডো আকারের চালগুলি (মাল্টি-ক্লাস ক্রস-এন্ট্রপি) হ্রাস করে একটি সফটম্যাক্স শ্রেণিবদ্ধকারী :WRN×PDRM×Rk

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

যেখানে বাক্যের প্রতিনিধিত্বকারী ভেক্টরের সাথে ,দস্তাবেজটি এবং শব্দের তার সংখ্যা হয় শব্দ নথি। সমস্ত ব্যাক-প্রসারণ স্মরণে রাখা ডকুমেন্টটি হ'ল আমরা বর্তমানে আমাদের উইন্ডোড সফটম্যাক্সের উপরে চলেছি এবং কেবলমাত্র সেই উইন্ডোটির শব্দের সাথে ম্যাট্রিক্স তে সারিটি আপডেট করে updates আই টি এইচ | ডি আই | w i t t t h i t h DDiith|Di|wtitthithD

উপরন্তু যখন আমরা কিছু প্রশিক্ষণ না অনুমান করতে চান সেট আমরা ঠিক যাতে এটি আপডেট এবং নয় বৃদ্ধি ম্যাট্রিক্স নতুন এলোমেলোভাবে ইনিশিয়ালাইজ সারি সঙ্গে এবং মাত্র (নতুন সারি অনুমিত ভেক্টর জন্য এমবেডিং অধিষ্ঠিত সঙ্গে) বিভিন্ন পুনরাবৃত্তিও জন্য প্রশিক্ষণ । এটি প্রশ্ন 2 বাড়ে।ডিWD

  1. আমরা কি অনুমান করতে পারি যে সম্ভবত একটি অদেখা বাক্যটি প্রশিক্ষণের সেটের বাক্যটির সাথে ঠিক মিল রয়েছে?

সংক্ষিপ্ত উত্তরটি হ'ল না এবং এটি ডক 2ভেকের জন্য নয়। কারণ এলোমেলো ইনিশিয়েশন + আপনার রূপান্তরকারী ভেক্টরকে রূপান্তরকরণ এবং প্রশিক্ষণের জটিলতা কখনই এর সাথে সম্পর্কিত ভেক্টর হিসাবে ঠিক একই হবে না, এই কারণেই জেনসিম এটি সমর্থন করার জন্য কোনও ফাংশন তৈরি করেন নি, মডেলটি কতটা ভাল হয়েছে তা কখনই দেওয়া হয়েছে প্রশিক্ষণপ্রাপ্ত এই দুটি ভেক্টরকে একে অপরের নিকটবর্তী হওয়া উচিত যাতে আপনি এই সিদ্ধান্ত নিতে পারেন যে এগুলি অত্যন্ত অনুরূপ similarD

এমনকি এলোমেলো বীজ ঠিক করাও কাজ নাও করতে পারে, এমন আরও অনেকগুলি ভেরিয়েবল রয়েছে যা এর রূপান্তরকে প্রভাবিত করতে পারে দয়া করে প্রথম উত্তরটি https://github.com/RaRe-Technologies/gensim/issues/374 এ দেখুন

যে কোনও ক্ষেত্রে আপনি কেবলমাত্র আপনার প্রশিক্ষণ সেটটির পুনরাবৃত্তি করে এবং ইনফার্ড ভেক্টরের সাথে মিলের তুলনা করে আপনার ডেটাতে সর্বাধিক অনুরূপ লেবেল খুঁজে পেতে পারেন er তবে কেন আপনি প্রশিক্ষণের সেটটিতে কোনও কিছুর সাথে একটি সঠিক মিল করতে চান? এই ডকুমেন্ট এম্বেডিংয়ের উদ্দেশ্যে নিয়মিত প্রকাশগুলি তদারকি করা বা নিরীক্ষণযোগ্য শেখার কাজগুলির (যেমন শ্রেণিবদ্ধকরণ এবং ক্লাস্টারিং) উদ্দেশ্যে করা হয়।


0

আমি আজ এই সমস্যাটি সমাধান করার চেষ্টা করছিলাম, এবং জেনসিম.ডোক 2ভেক দ্বারা প্রদত্ত কোনও মডিউল খুঁজে পেলাম না যা প্রশিক্ষিত মডেলটিতে প্রশিক্ষিত মডেলটিতে নয় অনুমিত নথি ভেক্টরের মধ্যে সাদৃশ্য গণনা করে। সুতরাং মূলত আমি এটি করেছি।

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))

এটি আপনাকে সমস্ত লেবেলের সাথে টিপলগুলির একটি তালিকা এবং প্রতিটি লেবেলের অন্তর্ভুক্ত আপনার নতুন দস্তাবেজের সাথে সম্পর্কিত সম্ভাব্যতার একটি তালিকা দেবে। তারপরে আপনি কেবলমাত্র আপনার লেবেল হিসাবে সর্বাধিক মানটি নিতে পারেন।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.