ছোট টেক্সট ফাইলগুলিতে word2vec প্রয়োগ করা হচ্ছে


11

আমি word2vec এ সম্পূর্ণ নতুন তাই আমার সাথে এটি সহ্য করুন। আমার কাছে প্রতিটি টেক্সট ফাইলের একটি সেট রয়েছে যা 1000-3000 এর মধ্যে একটি টুইটের সেট রয়েছে। আমি একটি সাধারণ কীওয়ার্ড ("kw1") বেছে নিয়েছি এবং ওয়ার্ড 2vec ব্যবহার করে "kw1" এর জন্য শব্দার্থগতভাবে প্রাসঙ্গিক পদগুলি খুঁজতে চাই। উদাহরণস্বরূপ কীওয়ার্ডটি যদি "অ্যাপল" হয় তবে আমি ইনপুট ফাইলের উপর ভিত্তি করে "আইপ্যাড" "ওএস" "ম্যাক" ... এর মতো সম্পর্কিত পদগুলি দেখতে আশা করব। সুতরাং "kw1" এর সাথে সম্পর্কিত পদগুলির এই সেট প্রতিটি ইনপুট ফাইলের জন্য আলাদা হবে কারণ ওয়ার্ড 2vec পৃথক ফাইলগুলিতে প্রশিক্ষিত হবে (উদাহরণস্বরূপ, 5 ইনপুট ফাইল, ওয়ার্ড 2vec প্রতিটি ফাইলের উপর 5 বার চালানো)।

আমার লক্ষ্যটি হ'ল সাধারণ কীওয়ার্ড ("কেডাব্লু 1") প্রদান করে প্রতিটি ইনপুট ফাইলের জন্য সম্পর্কিত পদগুলির সেটগুলি সন্ধান করা যা অন্য কিছু উদ্দেশ্যে ব্যবহৃত হবে।

আমার প্রশ্ন / সন্দেহগুলি হ'ল:

  • এই জাতীয় কাজের জন্য word2vec ব্যবহার করা কি বোধগম্য? কোনও ইনপুট ফাইলের ছোট আকার বিবেচনা করে কি প্রযুক্তিগতভাবে ব্যবহার করা সঠিক?

আমি কোড.google.com.com থেকে কোডটি ডাউনলোড করেছি: https://code.google.com/p/word2vec/ এবং নীচে এটি একটি শুকনো রান দিয়েছি :

 time ./word2vec -train $file -output vectors.bin -cbow 1 -size 200 -window 10 -negative 25 -hs 1 -sample 1e-3 -threads 12 -binary 1 -iter 50

./distance vectors.bin 
  • আমার ফলাফলগুলি থেকে আমি দেখেছি যখন আমি "কেডাব্লু 1" এর সাথে সম্পর্কিত পদগুলি পেতে 'দূরত্ব' সরঞ্জামটি ব্যবহার করছি তখন আমি অনেক শোরগোল শব্দ (স্টপওয়ার্ড) পাচ্ছি। সুতরাং আমি স্টপওয়ার্ড এবং অন্যান্য গোলমাল পদগুলি যেমন ব্যবহারকারীর উল্লেখ মুছে ফেলেছি remove তবে আমি কোথাও দেখিনি যে ওয়ার্ড টুভেকের জন্য সাফ ইনপুট ডেটা প্রয়োজন ...?

  • আপনি সঠিক পরামিতিগুলি কীভাবে চয়ন করবেন? আমি দেখতে পাচ্ছি ফলাফলগুলি (দূরত্বের সরঞ্জামটি চালানো থেকে) খুব বেশি পরিবর্তিত হয় যখন আমি 'উইন্ডো', '-iter' এর মতো পরামিতিগুলি পরিবর্তন করি। পরামিতিগুলির জন্য সঠিক মানগুলি খুঁজে পেতে আমার কোন কৌশলটি ব্যবহার করা উচিত। (ম্যানুয়াল ট্রায়াল এবং ত্রুটি আমার পক্ষে সম্ভব নয় কারণ আমি ডেটাসেটটি বাড়িয়ে তুলব)।

উত্তর:


9

ওয়ার্ড 2Vec এই জাতীয় আকারের ডেটাসেটের জন্য ভাল পছন্দ নয়। আমি যে গবেষণাগুলি দেখেছি তা থেকে জানা যায় যে আপনি যদি কমপক্ষে কয়েক মিলিয়ন শব্দ খাওয়ান তবে 3 কে টুইটগুলি সংক্ষিপ্ত শব্দের মিলের জন্য যথেষ্ট হবে না।


আমাদের কি ডেটা পূর্ব প্রক্রিয়াজাতকরণ পদক্ষেপ হিসাবে স্টপওয়ার্ডগুলি সরানোর দরকার?
সংসার

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

কিন্তু যখন আমি কোনও প্রদত্ত শব্দের সাথে সাদৃশ্যপূর্ণ শব্দগুলি খুঁজে পেতে দূরত্বের সরঞ্জামটি ব্যবহার করছিলাম তখন স্টপওয়ার্ডস সহ সংস্করণটি আমাকে সংস্করণ ছাড়াই বোধগম্য শব্দ দিয়েছিল। আপনি কি অনুমান করতে পারবেন এর অর্থ কি?
সমসমার

সম্ভবত, আপনি খুব সংকীর্ণ প্রসঙ্গটি ব্যবহার করছেন: যদি আপনার মডেলটি পিছনে পিছনে দুটি শব্দের সন্ধান করে, বলে, আপনার প্রসঙ্গে দুটি স্টপওয়ার্ড থাকবে এবং এটি খারাপ ফলাফল দিতে পারে। আপনি যদি প্রসঙ্গটি প্রসারিত করেন (যা মডেলটি আরও দীর্ঘতর এবং প্রশিক্ষণের সময়কে আরও বেশি করে দেবে), স্টপওয়ার্ডস মডেল আপনাকে আরও ভাল ফলাফল দেবে, আমি ধরে নিই।
চিবপাকব্র

ইনপুট জন্য ধন্যবাদ, এখন আরও বুদ্ধিমান। শব্দ 2vec বাক্য অনুসারে ইনপুট বাক্যটি প্রক্রিয়াজাতকরণের পরে, আমি যদি ইনপুট নথিতে বাক্যগুলি মিশ্রিত করি তবে কী হবে? যে পুরোপুরি সঠিক আউটপুট ভেক্টর পরিবর্তন করা উচিত? আবারও, প্রেরণের মাধ্যমে প্রসেসিং প্রেরণ করা হলেও, ওয়ার্ড 2vec কীভাবে ডক 2vec থেকে আলাদা? আবার ধন্যবাদ.
সংসার
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.