预训练的 FastText 如何处理多词查询?
How does pre-trained FastText handle multi-word queries?
使用预训练模型:
import fasttext.util
fasttext.util.download_model('en', if_exists='ignore') # English
ft = fasttext.load_model('cc.en.300.bin')
正在检查 ft.words
中没有包含空格或 _ 的条目,但是如果我用多词查询模型(例如 ft["get up"]
),它 returns 一个没有向量的向量任何错误。
它有什么作用?避免此类查询是正确的还是应该更好?
FastText 可以从单词片段中为任何字符串合成一个猜测向量。
它可以很好地处理在训练中很好地表示的单词的拼写错误或变体单词形式。
对于您的 'word'、'get up'
,它可能效果不佳。在您的 'word' 的子字符串训练集中可能没有或没有有意义的字符 n-gram,例如 'get '
、'et u'
或 't up'
。但是,由于 FastText 使用不存在冲突和不存在的散列 table 来存储 n-gram 向量,因此这些向量仍然 return 本质上是随机向量。
如果你想要基于 'get'
和 'up'
的每个词向量的东西,我想你会想要使用 .get_sentence_vector()
方法,而不是:
https://github.com/facebookresearch/fastText/blob/master/python/README.md#model-object
使用预训练模型:
import fasttext.util
fasttext.util.download_model('en', if_exists='ignore') # English
ft = fasttext.load_model('cc.en.300.bin')
正在检查 ft.words
中没有包含空格或 _ 的条目,但是如果我用多词查询模型(例如 ft["get up"]
),它 returns 一个没有向量的向量任何错误。
它有什么作用?避免此类查询是正确的还是应该更好?
FastText 可以从单词片段中为任何字符串合成一个猜测向量。
它可以很好地处理在训练中很好地表示的单词的拼写错误或变体单词形式。
对于您的 'word'、'get up'
,它可能效果不佳。在您的 'word' 的子字符串训练集中可能没有或没有有意义的字符 n-gram,例如 'get '
、'et u'
或 't up'
。但是,由于 FastText 使用不存在冲突和不存在的散列 table 来存储 n-gram 向量,因此这些向量仍然 return 本质上是随机向量。
如果你想要基于 'get'
和 'up'
的每个词向量的东西,我想你会想要使用 .get_sentence_vector()
方法,而不是:
https://github.com/facebookresearch/fastText/blob/master/python/README.md#model-object