我正在开发一个嵌入式项目。我正在使用Amazon SageMaker来实现此目的。 Amazon SageMaker中的BlazingText算法产生的结果比其他选项快。但我没有看到任何设施来获得预测模型或权重。输出仅包含我无法生成模型的矢量文件。 有什么方法可以用矢量文件获取模型吗?我需要这个来预测新单词。提前谢谢。
答案 0 :(得分:0)
通过使用KeyedVectors api上传vector.txt / bin文件,您可以再现类似most_similar的结果。
这里是一个示例:
from gensim.models import KeyedVectors
word_vectors = KeyedVectors.load_word2vec_format('vectors.txt', binary=False)
word_vectors = KeyedVectors.load_word2vec_format('vectors.bin', binary=True)
答案 1 :(得分:0)
我认为您正在寻找的是(如果我理解正确的话)如何创建端点以便获取新单词的向量。 在example中查找引人注目的文字。在底部,它们显示了如何创建此类端点。
如果要预测模型不知道的新单词,请使用subwords。
答案 2 :(得分:-1)
如果通过在训练时将“ subwords”参数设置为True启用子词嵌入学习功能,BlazingText模型可以为新词生成矢量。 培训工作完成后,您将需要创建SageMaker端点并部署模型。您可以向该端点发送POST请求以检索单词向量,如this notebook的“托管/推断”部分所示:
bt_endpoint = bt_model.deploy(initial_instance_count = 1,instance_type = 'ml.m4.xlarge') words = ["awesome", "awweeesome"] payload = {"instances" : words} response = bt_endpoint.predict(json.dumps(payload)) vecs = json.loads(response)
有关此功能的更多详细信息,您也可以参考this blog帖子。