我正在使用一些具有许多OOV单词和拼写错误的领域特定语言。我注意到Spacy会为这些OOV单词分配一个全零向量,所以我想知道正确处理方式是什么。如果可能的话,请对所有这些问题进行澄清:
- pre-train命令具体是做什么的?老实说,我似乎无法正确解释网站上的说明:
使用近似语言建模目标来预训练管道组件的“token to vector”(tok2vec)层。具体而言,我们加载预先训练的向量,并训练像CNN、BiLSTM等组件来预测与预训练向量相匹配的向量
tok2vec不是生成向量的部分吗?这个命令难道不会改变产生的向量吗? 什么意思加载预先训练的向量然后训练一个组件来预测这些向量?这样做的目的是什么?
--use-vectors标志是什么意思? --init-tok2vec标志是什么意思?这在文档中包含错误吗?
似乎pretrain不是我要寻找的,它不会改变给定单词的向量。有什么最简单的方法可以生成一个新的向量集,包括我的OOV单词,但仍包含语言的通用知识?
据我所见,Spacy预训练的模型使用fasttext向量。Fasttext网站提到:
一个很好的特性是,您还可以查询未出现在数据中的单词!事实上,单词由其子字符串的总和表示。只要未知单词由已知子串组成,就存在其表示形式!
但是似乎Spacy没有使用此功能。是否有办法仍然利用这种方法处理OOV单词?
非常感谢。