无法加载韩语的预训练word2vec
Can't load the pre-trained word2vec of korean language
我想下载并加载用于分析韩文文本的预训练 word2vec。
我在这里下载预训练的word2vec:https://drive.google.com/file/d/0B0ZXk88koS2KbDhXdWg1Q2RydlU/view?resourcekey=0-Dq9yyzwZxAqT3J02qvnFwg
来自 Github 30 多种语言的预训练词向量:https://github.com/Kyubyong/wordvectors
我的gensim版本是4.1.0,所以我使用:
KeyedVectors.load_word2vec_format('./ko.bin', binary=False)
加载模型。但是有一个错误:
UnicodeDecodeError: 'utf-8' codec can't decode byte 0x80 in position 0: invalid start byte
我已经尝试了很多选项,包括 Whosebug 和 Github,但仍然效果不佳。
你介意给我合适的解决方案吗?
谢谢,
虽然 https://github.com/Kyubyong/wordvectors 的页面不清楚作者选择的格式,但通过查看他们的源代码...
https://github.com/Kyubyong/wordvectors/blob/master/make_wordvectors.py#L61
...使用 Gensim 模型 .save()
方法显示它。
应使用相同模型 class 的 .load()
class 方法重新加载此类保存的模型。例如,如果 Word2Vec
模型保存为...
model.save('language.bin')
...然后可以重新加载...
loaded_model = Word2Vec.load('language.bin')
请注意:
- 以这种方式保存的模型通常会分成多个文件,这些文件应该放在一起(并且所有文件都以相同的根名称开头)- 但我在这里看不到这些文件。
- 这项工作似乎有大约 5 年的历史,基于 Gensim 1.0 之前的版本——因此将模型直接加载到最新的 Gensim 中可能会出现问题。如果您 运行 遇到此类问题,并且绝对需要使这些向量起作用,您可能需要暂时使用先前版本的 Gensim 来
.load()
模型。然后,您可以使用 .save_word2vec_format()
保存普通向量,以便以后在任何版本中重新加载。 (或者,使用最新的可以加载模型的临时版本,将模型重新保存为.save()
,然后用可以读取那个模型的最新版本重复这个过程,直到你到达当前的 Gensim。)
但是,您可能还想找到一组更新和记录更完备的预训练词向量。
例如,Facebook 在 https://fasttext.cc/docs/en/pretrained-vectors.html (trained on Wikipedia only) or https://fasttext.cc/docs/en/crawl-vectors.html 上以 'text' 格式和 'bin' 格式为多种语言提供 FastText 预训练向量(在维基百科和网络抓取数据上训练)。
'text' 格式实际上应该可以用 KeyedVectors.load_word2vec_format(filename, binary=False)
加载,但只会包含全词向量。 (它也将相对容易地以文本形式查看,或者编写简单的代码以转换为其他格式。)
'bin' 格式是 Facebook 自己的原生 FastText 模型格式,应该可以使用 load_facebook_model()
or load_facebook_vectors()
实用程序方法加载。然后,加载的模型(或向量)将能够创建 FastText 算法的基于子字符串的估计向量,即使对于许多不在模型或训练数据中的词也是如此。
我想下载并加载用于分析韩文文本的预训练 word2vec。
我在这里下载预训练的word2vec:https://drive.google.com/file/d/0B0ZXk88koS2KbDhXdWg1Q2RydlU/view?resourcekey=0-Dq9yyzwZxAqT3J02qvnFwg 来自 Github 30 多种语言的预训练词向量:https://github.com/Kyubyong/wordvectors
我的gensim版本是4.1.0,所以我使用:
KeyedVectors.load_word2vec_format('./ko.bin', binary=False)
加载模型。但是有一个错误:
UnicodeDecodeError: 'utf-8' codec can't decode byte 0x80 in position 0: invalid start byte
我已经尝试了很多选项,包括 Whosebug 和 Github,但仍然效果不佳。 你介意给我合适的解决方案吗?
谢谢,
虽然 https://github.com/Kyubyong/wordvectors 的页面不清楚作者选择的格式,但通过查看他们的源代码...
https://github.com/Kyubyong/wordvectors/blob/master/make_wordvectors.py#L61
...使用 Gensim 模型 .save()
方法显示它。
应使用相同模型 class 的 .load()
class 方法重新加载此类保存的模型。例如,如果 Word2Vec
模型保存为...
model.save('language.bin')
...然后可以重新加载...
loaded_model = Word2Vec.load('language.bin')
请注意:
- 以这种方式保存的模型通常会分成多个文件,这些文件应该放在一起(并且所有文件都以相同的根名称开头)- 但我在这里看不到这些文件。
- 这项工作似乎有大约 5 年的历史,基于 Gensim 1.0 之前的版本——因此将模型直接加载到最新的 Gensim 中可能会出现问题。如果您 运行 遇到此类问题,并且绝对需要使这些向量起作用,您可能需要暂时使用先前版本的 Gensim 来
.load()
模型。然后,您可以使用.save_word2vec_format()
保存普通向量,以便以后在任何版本中重新加载。 (或者,使用最新的可以加载模型的临时版本,将模型重新保存为.save()
,然后用可以读取那个模型的最新版本重复这个过程,直到你到达当前的 Gensim。)
但是,您可能还想找到一组更新和记录更完备的预训练词向量。
例如,Facebook 在 https://fasttext.cc/docs/en/pretrained-vectors.html (trained on Wikipedia only) or https://fasttext.cc/docs/en/crawl-vectors.html 上以 'text' 格式和 'bin' 格式为多种语言提供 FastText 预训练向量(在维基百科和网络抓取数据上训练)。
'text' 格式实际上应该可以用 KeyedVectors.load_word2vec_format(filename, binary=False)
加载,但只会包含全词向量。 (它也将相对容易地以文本形式查看,或者编写简单的代码以转换为其他格式。)
'bin' 格式是 Facebook 自己的原生 FastText 模型格式,应该可以使用 load_facebook_model()
or load_facebook_vectors()
实用程序方法加载。然后,加载的模型(或向量)将能够创建 FastText 算法的基于子字符串的估计向量,即使对于许多不在模型或训练数据中的词也是如此。