- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
根据 https://code.google.com/archive/p/word2vec/ :
It was recently shown that the word vectors capture many linguistic regularities, for example vector operations vector('Paris') - vector('France') + vector('Italy') results in a vector that is very close to vector('Rome'), and vector('king') - vector('man') + vector('woman') is close to vector('queen') [3, 1]. You can try out a simple demo by running demo-analogy.sh.
所以我们可以从提供的演示脚本中尝试:
+ ../bin/word-analogy ../data/text8-vector.bin
Enter three words (EXIT to break): paris france berlin
Word: paris Position in vocabulary: 198365
Word: france Position in vocabulary: 225534
Word: berlin Position in vocabulary: 380477
Word Distance
------------------------------------------------------------------------
germany 0.509434
european 0.486505
请注意,paris france berlin
是演示建议的输入提示。问题是,如果我在 Gensim
中打开相同的词向量并尝试自己计算向量,我将无法重现此行为。例如:
>>> word_vectors = KeyedVectors.load_word2vec_format(BIGDATA, binary=True)
>>> v = word_vectors['paris'] - word_vectors['france'] + word_vectors['berlin']
>>> word_vectors.most_similar(np.array([v]))
[('berlin', 0.7331711649894714), ('paris', 0.6669869422912598), ('kunst', 0.4056406617164612), ('inca', 0.4025722146034241), ('dubai', 0.3934606909751892), ('natalie_portman', 0.3909246325492859), ('joel', 0.3843030333518982), ('lil_kim', 0.3784593939781189), ('heidi', 0.3782389461994171), ('diy', 0.3767407238483429)]
那么,类比这个词到底在做什么?我应该如何复制它?
最佳答案
应该只是向量的逐元素加减。和余弦距离找到最相似的。但是,如果您使用原始的 word2vec 嵌入,则“paris”和“Paris”之间存在差异(字符串未降低或词形还原)。
你也可以试试:
v = word_vectors['France'] - word_vectors['Paris'] + word_vectors['Berlin']
或
v = word_vectors['Paris'] - word_vectors['France'] + word_vectors['Germany']
因为你应该比较相同的概念(城市 - 国家 + 国家 -> 另一个城市)
关于python - Word2vec中类比词背后的操作是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52364632/
我正在寻找匹配 /(?=\W)(gimme)(?=\W)/gi 或类似的东西。 \W 应该是零宽度字符来包围我的实际匹配项。 也许有一些背景。我想用添加的文字填充替换某些单词(总是 \w+),但前提是
如何在不使用 Intent 连接到 VPN 服务的情况下以编程方式检测流量是否正在通过 VPN。有系统调用吗? 最佳答案 这个有效: private boolean checkVPN() {
我是一名优秀的程序员,十分优秀!