如何编写函数实现基于GloVe模型的单词转向量功能?
实现单词转GloVe向量的函数
你可以通过以下方式实现目标函数,核心利用gensim加载的GloVe模型的下标访问特性,同时加入异常处理避免单词不在词汇表时引发报错:
基础实现版本
def convert_word_to_vec(word, model): try: # 直接通过模型下标获取单词对应的向量 return model[word] except KeyError: # 处理单词不在词汇表的情况 print(f"警告:单词 '{word}' 不在当前GloVe模型的词汇表中") return None
调用注意事项
调用时要确保传入的单词是字符串类型,正确的调用方式是:
convert_word_to_vec("lol", model)
如果像你示例里那样写convert_word_to_vec(lol, model),Python会把lol当成变量而非字符串,会引发NameError,这点需要注意。
可选:返回零向量替代None
如果希望单词不在词汇表时返回一个和模型向量维度一致的零向量,可以修改函数如下(需要提前导入numpy):
import numpy as np def convert_word_to_vec(word, model): try: return model[word] except KeyError: print(f"警告:单词 '{word}' 不在当前GloVe模型的词汇表中") # 返回与模型向量维度相同的零向量 return np.zeros(model.vector_size)
内容的提问来源于stack exchange,提问作者quickhelp
相关产品推荐
相关产品推荐

