[英]FastText in Gensim
我正在使用 Gensim 加載我的 fasttext .vec
文件,如下所示。
m=load_word2vec_format(filename, binary=False)
但是,如果我需要加載.bin
文件來執行諸如m.most_similar("dog")
、 m.wv.syn0
、 m.wv.vocab.keys()
等命令,我只是感到困惑? 如果是這樣,該怎么做?
或者.bin
文件對於執行這個余弦相似度匹配並不重要?
請幫我!
gensim-lib 已經發展,所以一些代碼片段被棄用了。 這是一個實際的工作解決方案:
import gensim.models.wrappers.fasttext
model = gensim.models.wrappers.fasttext.FastTextKeyedVectors.load_word2vec_format(Source + '.vec', binary=False, encoding='utf8')
word_vectors = model.wv
# -- this saves space, if you plan to use only, but not to train, the model:
del model
# -- do your work:
word_vectors.most_similar("etc")
可以使用以下內容:
from gensim.models import KeyedVectors
model = KeyedVectors.load_word2vec_format(link to the .vec file)
model.most_similar("summer")
model.similarity("summer", "winter")
現在使用該模型的許多選項。
如果您希望稍后能夠使用其他數據重新訓練 gensim 模型,您應該像這樣保存整個模型: model.save("fasttext.model")
。 如果你只用model.wv.save_word2vec_format(Path("vectors.txt"))
保存詞向量,你仍然可以執行向量提供的任何功能 - 比如相似性,但你將無法重新訓練具有更多數據的模型。
請注意,如果您要保存整個模型,則應將文件名作為字符串傳遞,而不是將其包裝在get_tmpfile
,如文檔here 中所建議。
也許我回答這個問題晚了:但在這里你可以在文檔中找到你的答案: https : //github.com/facebookresearch/fastText/blob/master/README.md#word-representation-learning Example use cases
該庫有兩個主要用例:詞表示學習和文本分類。 這些在兩篇論文 1 和 2 中都有描述。 詞表示學習
為了學習詞向量,如 1 中所述,請執行以下操作:
$ ./fasttext skipgram -輸入數據.txt -輸出模型
其中 data.txt 是包含 UTF-8 編碼文本的訓練文件。 默認情況下,詞向量將考慮 3 到 6 個字符的字符 n-gram。 在優化結束時,程序將保存兩個文件:model.bin 和 model.vec。 model.vec 是一個包含詞向量的文本文件,每行一個。 model.bin 是一個二進制文件,包含模型參數以及字典和所有超參數。 二進制文件可用於稍后計算詞向量或重新開始優化。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.