Полное описание
Я начинаю работать со встраиванием слов и нашел много информации об этом.На данный момент я понимаю, что я могу обучать свои собственные векторы слов или использовать ранее обученные векторы, такие как Google или Wikipedia, которые доступны для английского языка и бесполезны для меня, так как я работаю с текстами в Бразильский португальский .Поэтому я отправился на поиски предварительно обученных векторов слов на португальском языке и в итоге нашел Список предварительно обученных встраиваний слов Хиросана , который привел меня к WordVectors * 1010 Кюбйонга, из которого я узнал о РамиАль-Рфу Полиглот .После загрузки обоих я безуспешно пытался просто загрузить векторы слов.
Краткое описание
Я не могу загрузить предварительно обученные векторы слов;Я пытаюсь WordVectors и Полиглот .
Загрузки
попытки загрузки
Kyubyong's WordVectors Первая попытка: использование Gensim в соответствии с предложением Hirosan ;
from gensim.models import KeyedVectors
kyu_path = '.../pre-trained_word_vectors/kyubyong_pt/pt.bin'
word_vectors = KeyedVectors.load_word2vec_format(kyu_path, binary=True)
И возвращенная ошибка:
[...]
File "/Users/luisflavio/anaconda3/lib/python3.6/site-packages/gensim/utils.py", line 359, in any2unicode
return unicode(text, encoding, errors=errors)
UnicodeDecodeError: 'utf-8' codec can't decode byte 0x80 in position 0: invalid start byte
Загруженный zip-файл также содержит другие файлы, но все они возвращают похожие ошибки.
Polyglot Первая попытка: следуя инструкциям Аль-Рфуса;
import pickle
import numpy
pol_path = '.../pre-trained_word_vectors/polyglot/polyglot-pt.pkl'
words, embeddings = pickle.load(open(pol_path, 'rb'))
И ошибка вернулась:
File "/Users/luisflavio/Desktop/Python/w2v_loading_tries.py", line 14, in <module>
words, embeddings = pickle.load(open(polyglot_path, "rb"))
UnicodeDecodeError: 'ascii' codec can't decode byte 0xd4 in position 1: ordinal not in range(128)
Вторая попытка: использование Функция загрузки вложения слова Полиглота ;
Первая, мы должны установить полиглот через пипс:
pip install polyglot
Теперь мы можем импортировать его:
from polyglot.mapping import Embedding
pol_path = '.../pre-trained_word_vectors/polyglot/polyglot-pt.pkl'
embeddings = Embedding.load(polyglot_path)
И возвращается ошибка:
File "/Users/luisflavio/anaconda3/lib/python3.6/codecs.py", line 321, in decode
(result, consumed) = self._buffer_decode(data, self.errors, final)
UnicodeDecodeError: 'utf-8' codec can't decode byte 0x80 in position 0: invalid start byte
Дополнительная информация
Я использую Python 3 в MacOS High Sierra.
Решения
Kyubyong's WordVectors Как указал Aneesh Joshi , правильный способ загрузить модель Kyubyong - это вызвать встроенную функцию загрузки Word2Vec.
from gensim.models import Word2Vec
kyu_path = '.../pre-trained_word_vectors/kyubyong_pt/pt.bin'
model = Word2Vec.load(kyu_path)
Даже если я болееблагодарный за решение Aneesh Joshi, polyglot кажется лучшей моделью для работы с португальским языком.Есть идеи по этому поводу?