- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我想了解创建句子的 fastText 向量的方式。根据这个issue 309 ,句子的向量是通过对单词的向量进行平均得到的。
为了证实这一点,我写了下面的脚本:
import numpy as np
import fastText as ft
# Loading model for Finnish.
model = ft.load_model('cc.fi.300.bin')
# Getting word vectors for 'one' and 'two'.
one = model.get_word_vector('yksi')
two = model.get_word_vector('kaksi')
# Getting the sentence vector for the sentence "one two" in Finnish.
one_two = model.get_sentence_vector('yksi kaksi')
one_two_avg = (one + two) / 2
# Checking if the two approaches yield the same result.
is_equal = np.array_equal(one_two, one_two_avg)
# Printing the result.
print(is_equal)
# Result: FALSE
但是,似乎得到的向量并不相似。
为什么两个值不同?这会与我对向量进行平均的方式有关吗?或者,也许我遗漏了什么?
最佳答案
首先,您错过了 get_sentence_vector
不仅仅是简单的“平均”部分。在FastText对每个词向量求和之前,每个向量除以它的范数(L2范数),然后平均过程只涉及具有正L2范数值的向量。
其次,句子总是以 EOS 结尾。因此,如果您尝试手动计算,则需要在计算平均值之前放入 EOS。
试试这个(我假设每个词的 L2 范数是正的):
def l2_norm(x):
return np.sqrt(np.sum(x**2))
def div_norm(x):
norm_value = l2_norm(x)
if norm_value > 0:
return x * ( 1.0 / norm_value)
else:
return x
# Getting word vectors for 'one' and 'two'.
one = model.get_word_vector('yksi')
two = model.get_word_vector('kaksi')
eos = model.get_word_vector('\n')
# Getting the sentence vector for the sentence "one two" in Finnish.
one_two = model.get_sentence_vector('yksi kaksi')
one_two_avg = (div_norm(one) + div_norm(two) + div_norm(eos)) / 3
关于python - fastText 嵌入句向量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54181163/
我尝试在 fasttext 中为 Python 中的英文单行创建句子向量,但我得到的只是与 fasttext 中的 CLI 相关的解决方案。 Link for fast test sentence v
我正在使用预训练的 FastText 模型设置 nlp 预处理来查询和保存词向量。我遇到了 FileNotFoundError: [Errno 2] No such file or directory
请原谅我的新手,但 fasttext 在 python 上不适合我。我正在使用运行 python 3.6 的 anaconda。我的代码如下(只是一个例子): import fasttext mode
我无法运行 FastText 量化,如文档中所示。具体来说,如备忘单页面底部所示: https://fasttext.cc/docs/en/cheatsheet.html 当我尝试在我的训练模型“mo
我正在研究一个文本分类问题,也就是说,给定一些文本,我需要为其分配某些给定的标签。 我曾尝试使用 Facebook 的快速文本库,它有两个我感兴趣的实用程序: A) 带有预训练模型的词向量 B) 文本
我正在尝试使用此命令量化 fasttext 中的无监督模型。 model.quantize(input=train_data, qnorm=True, retrain=True, cutoff=200
目前我正在研究堆栈溢出标签预测,其中使用 fasttext 进行文本分类。 我想知道如果标签多类,标签的正确格式是什么。 1.) __label__toxic__label__racist__lab
我想了解创建句子的 fastText 向量的方式。根据这个issue 309 ,句子的向量是通过对单词的向量进行平均得到的。 为了证实这一点,我写了下面的脚本: import numpy as np
我刚刚开始使用 FastText。我正在通过将数据集的 .csv 文件用作输入来对小型数据集进行交叉验证。要处理我使用此参数的数据集: model = fasttext.train_supervis
我有一个经过训练的自定义 fasttext 模型(fasttext 是 Facebook 开发的词嵌入算法)。我设法在一个函数中获得了预期的结果,但现在我想将它重写成一个定制的转换器,这样我就可以将它
在 FastText 中,我有不平衡的标签。处理它的最佳方法是什么? 最佳答案 Fasttext 似乎可以很好地处理不平衡数据。 根据FAQ Note also that this loss is t
我正在训练一个 fastText模型使用 gensim.models.fasttext .但是,我似乎找不到一种方法来计算迭代损失以进行记录。如果我看 gensim.models.word2vec ,
背景 我想执行代码以使用 fastText 对每个文本的语言进行分类。 我做了什么 下载模型lid.176.bin https://fasttext.cc/docs/en/language-ident
我阅读了这篇论文,并在谷歌上搜索了是否有任何学习方法(或更可能的学习过程)的好例子 对于word2vec,假设有语料库句子 I go to school with lunch box that my
我正在使用 FastText ( fastText_multilingual ) 的修改版本,它可以让我对齐两种语言的单词。 我试图理解他们的 fasttext.py,尤其是 Fast Vector
要获取单词的向量,我可以使用: model["word"] 但是如果我想得到一个句子的向量,我需要对所有单词的向量求和或者对所有向量求平均值。 FastText 是否提供了执行此操作的方法? 最佳答案
我在将快速 FastText 向量转换回单词时遇到问题。这是我的 Python 代码: from gensim.models import KeyedVectors en_model = KeyedV
我正在使用 Gensim 加载我的 fasttext .vec 文件,如下所示。 m=load_word2vec_format(filename, binary=False) 但是,如果我需要加载 .
我已经下载了一个.bin FastText 模型,我将它与gensim 一起使用,如下所示: model = FastText.load_fasttext_format("cc.fr.300.bin"
我正在使用 gensim 加载预训练的 fasttext 模型。我从 fasttext website 下载了英文维基百科训练模型。 这是我为加载预训练模型编写的代码: from gensim.mod
我是一名优秀的程序员,十分优秀!