【发布时间】:2021-03-25 18:26:04
【问题描述】:
我有一个训练有素的自定义 fasttext 模型(fasttext 是 Facebook 开发的词嵌入算法)。我设法在一个函数中得到了预期的结果,但现在我想将它重写为一个自定义的转换器,以便我可以将它添加到我的 sklearn 管道中,因为它只接受转换器。
该函数接受一个单词并返回该单词的向量:
def name2vector(name=None):
vec = [np.array(model.get_word_vector(w)) for w in name.lower().split(' ')]
name_vec = np.sum(vec, axis=0) # If "name" is multiple words, sum the vectors
return (name_vec)
返回值:
array([-0.01087821, 0.01030535, -0.01402427, 0.0310982 , 0.08786983,
-0.00404521, -0.03286128, -0.00842709, 0.03934859, -0.02717219,
0.01151722, -0.03253938, -0.02435859, 0.03330994, -0.03696496], dtype=float32))
我希望变压器做与函数相同的事情。
我知道我可以使用BaseEstimator 和TransformerMixin 通过阅读tutorial 将其重写为变压器,但我仍然坚持这一点。一些建议会很好,谢谢。
【问题讨论】:
-
请更好地解释您的意图。显示所需的输出...
-
我更新了问题@StefanoFiorucci-anakin87
标签: python scikit-learn nlp fasttext