2 回答
TA贡献1829条经验 获得超9个赞
您可以使用FastText而不是 Word2Vec。FastText 能够通过查看子词信息(字符 ngrams)来嵌入词汇外的词。Gensim还有一个FastText实现,非常好用:
from gensim.models import FastText
model = FastText(sentences=training_data, size=128, ...)
word = 'hello' # can be out of vocabulary
embedding = model[word] # fetches the word embedding
TA贡献1871条经验 获得超8个赞
Doc2Vec与普通的平均词向量相比,通常文本向量的有用性非常相似(或者在调整后更好一些)。(毕竟,算法非常相似,处理相同数据的相同形式,并且创建的模型大小大致相同。)如果出现大幅下降,则您的Doc2Vec过程可能存在错误。
正如@AnnaKrogager 指出的那样,FastText 可以通过使用单词片段合成猜测向量来处理词汇外的单词。(这需要单词具有这种共享词根的语言。)向量可能不是很好,但通常比完全忽略未知单词或使用全零向量或随机插入向量要好。
在进程之间拆分它是否有助于运行时?因为向子进程和从子进程发送批处理工作有很多开销,而 Python 中的子进程会导致内存需求激增——而且这种开销甚至虚拟内存交换都可能超过并行性的任何其他好处.
添加回答
举报
