找出与OOV词最相似的词

问题描述 投票:0回答:1

我在用gensim寻找最相近的词汇,寻找词汇外的OOV词汇。类似这样的。

    def get_word_vec(self, model, word):
    try:
        if word not in model.wv.vocab:
            mostSimWord = model.wv.similar_by_word(word)
            print(mostSimWord)
        else:
            print( word )
    except Exception as ex:
        print(ex)

有什么方法可以完成这个任务吗?也欢迎使用gensim以外的其他方法。

python nlp gensim similarity oov
1个回答
0
投票

如果你训练一个 FastText 模型,而非 Word2Vec 模型,除了学习完整的单词外,它还固有地学习单词片段的向量(可配置大小范围)。

在像英语这样的语言中,许多其他语言(但不是所有语言),未知的单词通常是错别字,备用形式,或在根和后缀方面与knowwon单词相关。因此,拥有子词的向量,然后用这些向量来统计一个未知词的好的猜测向量,可以起到很好的作用,值得一试--比忽略这些词,或者使用一个完全随机的或原点的向量要好。

没有内置的方法可以尝试从现有的词向量集合中提取这样的关系,这不是 FastText基于子词--但理论上是可能的。你可以计算所有已知词的编辑距离,或与所有已知词的共享子词计数,&通过N个最接近的词的加权组合创建一个猜测向量。(这可能对错别字& 罕见的交替拼写非常有效,但对真正不存在的新词就不那么有效了。)

© www.soinside.com 2019 - 2024. All rights reserved.