আমি কীভাবে জেনসিমের সাথে ফাস্টটেক্সট প্রিটেইনড মডেলটি লোড করব?


21

আমি এখান থেকে fastText pretrained মডেল লোড করার চেষ্টা Fasttext মডেল । আমি wiki.simple.en ব্যবহার করছি

from gensim.models.keyedvectors import KeyedVectors

word_vectors = KeyedVectors.load_word2vec_format('wiki.simple.bin', binary=True)

কিন্তু, এটি নিম্নলিখিত ত্রুটিগুলি দেখায়

Traceback (most recent call last):
  File "nltk_check.py", line 28, in <module>
    word_vectors = KeyedVectors.load_word2vec_format('wiki.simple.bin', binary=True)
  File "P:\major_project\venv\lib\sitepackages\gensim\models\keyedvectors.py",line 206, in load_word2vec_format
     header = utils.to_unicode(fin.readline(), encoding=encoding)
  File "P:\major_project\venv\lib\site-packages\gensim\utils.py", line 235, in any2unicode
    return unicode(text, encoding, errors=errors)
UnicodeDecodeError: 'utf-8' codec can't decode byte 0xba in position 0: invalid start byte

প্রশ্ন 1 আমি কীভাবে জেনসিমের সাথে ফাস্টটেক্সট মডেলটি লোড করব?

প্রশ্ন 2 এছাড়াও, মডেলটি লোড করার পরে, আমি দুটি শব্দের মধ্যে মিল খুঁজে পেতে চাই

 model.find_similarity('teacher', 'teaches')
 # Something like this
 Output : 0.99

আমি এটা কিভাবে করবো?

উত্তর:


17

জেনসিম ফাস্টটেক্সট.পি -তে ফাস্টটেক্সট প্রয়োগের জন্য উপলব্ধ পদ্ধতির লিঙ্কটি এখানে

from gensim.models.wrappers import FastText

model = FastText.load_fasttext_format('wiki.simple')

print(model.most_similar('teacher'))
# Output = [('headteacher', 0.8075869083404541), ('schoolteacher', 0.7955552339553833), ('teachers', 0.733420729637146), ('teaches', 0.6839243173599243), ('meacher', 0.6825737357139587), ('teach', 0.6285147070884705), ('taught', 0.6244685649871826), ('teaching', 0.6199781894683838), ('schoolmaster', 0.6037642955780029), ('lessons', 0.5812176465988159)]

print(model.similarity('teacher', 'teaches'))
# Output = 0.683924396754

আমি পেতে DeprecationWarning: Call to deprecated `load_fasttext_format` (use load_facebook_vectors। তাই আমি ব্যবহার করছি from gensim.models.fasttext import load_facebook_model
হৃশিকেশ ধুমাল

8

জন্য .bin ব্যবহার: load_fasttext_format()(এই সাধারণত প্যারামিটার, ngrams, ইত্যাদি সঙ্গে পূর্ণ মডেল রয়েছে)।

জন্য .vec ব্যবহার: load_word2vec_format(এটি কেবলমাত্র শব্দ-ভেক্টর রয়েছে -> আপনি + কোন ngrams একটি মডেল আপডেট করতে পারবেন না)।

দ্রষ্টব্য :: আপনি যদি মেমরির সাথে সমস্যার মুখোমুখি হন বা আপনি .bin মডেলগুলি লোড করতে সক্ষম না হন তবে তার জন্য পাইফটেক্সট মডেলটি পরীক্ষা করুন ।

ক্রেডিট: ইভান মেনশিখ (জেনসিম রক্ষণাবেক্ষণকারী)


1
".বিনের জন্য .... আপনি লোড করার পরে প্রশিক্ষণ চালিয়ে যেতে পারেন।" এটি সত্য নয়, যেমন ডকুমেন্টেশনে বলা হয়েছে: "ফাস্টটেক্সট এপিআই-র সীমাবদ্ধতার কারণে আপনি এভাবে লোড হওয়া মডেলের সাথে প্রশিক্ষণ চালিয়ে যেতে পারবেন না।" Radimrehurek.com/gensim/models/…
অ্যান্ড্রি দ্রোজডিয়ুক

এটি আর সত্য নয়: অবচয় সতর্কতা: অবচিত। পরিবর্তে gensim.models.KyeyedVectors.load_word2vec_ formatt ব্যবহার করুন।
মিকিথাম্প

2

ফাস্টটেক্সট বাইনারি ফর্ম্যাট (যা দেখে মনে হচ্ছে আপনি বোঝার চেষ্টা করছেন) জেনসিমের word2vecফর্ম্যাটের সাথে সামঞ্জস্যপূর্ণ নয় ; পূর্ববর্তীটিতে সাব-ওয়ার্ড ইউনিট সম্পর্কিত অতিরিক্ত তথ্য রয়েছে যা word2vecব্যবহার করে না।

ফাস্ট টেক্সট গিথুব পৃষ্ঠায় ইস্যুটি (এবং একটি কার্যতালিকা) নিয়ে কিছু আলোচনা আছে। সংক্ষেপে, আপনাকে পাঠ্য বিন্যাসটি লোড করতে হবে ( https://github.com/facebookresearch/fastText/blob/master/ ব্যাখ্যাrained-vectors.md এ উপলব্ধ )।

একবার আপনি পাঠ্য বিন্যাসটি লোড করার পরে, আপনি বাইনারি ফর্ম্যাটে এটি সংরক্ষণ করার জন্য জেনসিম ব্যবহার করতে পারেন, যা নাটকীয়ভাবে মডেলটির আকার হ্রাস করবে এবং ভবিষ্যতের লোডগতির গতি বাড়িয়ে তুলবে।

https://github.com/facebookresearch/fastText/issues/171#issuecomment-294295302

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