首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Gensim sort_by_descending_frequency更改most_similar结果

Gensim sort_by_descending_frequency更改most_similar结果
EN

Stack Overflow用户
提问于 2021-07-20 08:40:25
回答 1查看 210关注 0票数 1

似乎在检索最相似的单词向量时,按单词频率排序会改变Gensim中的结果。

分类前:

代码语言:javascript
复制
from gensim.models import FastText
from gensim.test.utils import common_texts  # some example sentences
print(len(common_texts))
model = FastText(vector_size=4, window=3, min_count=1)  # instantiate
model.build_vocab(corpus_iterable=common_texts)
model.train(corpus_iterable=common_texts, total_examples=len(common_texts), epochs=1)  

model.wv.most_similar(positive=["human"])

(“接口”,0.7432922720909119),(“未成年人”,0.6719315052032471),(“时间”,0.3513716757297516),(“计算机”,0.05815044790506363),(“响应”,-0.11714297533035278),(“图形”,-0.15643596649169922),(“eps”,-0.2679084539413452),(“调查”,-0.34035828709602356),(“树”,-0.63677978515625),(“用户”,-0.6500451564788818)

但是,如果我按照下降的频率对向量进行排序:

代码语言:javascript
复制
model.wv.sort_by_descending_frequency()

model.wv.most_similar(positive=["human"])

(“未成年人”,0.9638221263885498),(“时间”,0.6335864067077637),(“接口”,0.40014874935150146),(“计算机”,0.03224882856011391),(“响应”,-0.14850640296936035),(“图形”,-0.2249641716480255),(“调查”,-0.26847705245018005),(“用户”,-0.45202943682670593),(“eps”,-0.497650682926178),(“树”,-0.6367797255516052)

最相似的单词排名以及单词的相似性都在变化。知道为什么吗?

更新:

在调用排序之前:

代码语言:javascript
复制
model.wv.index_to_key

“系统”、“图形”、“树”、“用户”、“未成年人”、“eps”、“时间”、“响应”、“调查”、“计算机”、“界面”、“人”

代码语言:javascript
复制
model.wv.expandos['count']

阵列(4,3,3,3,2,2,2,2,2,2,2,2,2)

调用排序后:

代码语言:javascript
复制
model.wv.index_to_key

“系统”、“用户”、“树”、“图形”、“人”、“界面”、“计算机”、“调查”、“响应”、“时间”、“eps”、“未成年人”

代码语言:javascript
复制
model.wv.expandos['count']

阵列(4,3,3,3,2,2,2,2,2,2,2,2)

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-07-20 16:08:14

这种据报道的相似之处,绝对不应该发生,所以这里肯定出了问题。(也许,缓存的子字信息并不是重新排序。)

但也请注意:

  • 这种方法并不是特别适合训练后使用的--实际上,如果使用这种方法,你应该看到警告信息。在语音发现阶段的所有2Vec算法中,默认情况下都应该会出现这种情况--这是通常的行为,只是很少被关闭。因此,再次请求最多应该是不操作的.

要深入了解可能出现的错误,可以编辑您的问题来显示两个…的值吗?

  • model.wv.index_to_key
  • model.wv.expandos['count']

…在. sort_by_descending_frequency()电话之前还是之后?

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/68451937

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档