语义类比:国王 - 男人 = 王后 - ?
Word Analogies: Vector Math on Words
Word2Vec 的真正魔法在向量减法 — 著名的例子:king - man + woman ≈ queen。这节我们用中文做这件事。
1. 三元组类比
result = model.wv.most_similar(
positive=['小米', '电视'],
negative=['手机'],
topn=5
)
for word, score in result:
print(f'{word:8s} {score:.4f}')
2. 实用场景:品牌迁移
类比推理的限制:Word2Vec 学到的是统计关联,不是逻辑推理。它能答小米 ≈ 华为(同价位竞品),但不能答小米是谁的子公司这种事实性问题。
3. 相似度计算:成对比较
pairs = [
('小米', '华为'),
('小米', '物流'),
('手机', '相机'),
('价格', '便宜'),
]
for w1, w2 in pairs:
sim = model.wv.similarity(w1, w2)
print(f'{w1} ↔ {w2:8s} {sim:.4f}')
# 小米 ↔ 华为 0.8231
# 小米 ↔ 物流 0.1234
# 手机 ↔ 相机 0.5892
# 价格 ↔ 便宜 0.7431
向量数学用 1 行代码出语义距离,这种能力是文本分析高级玩法的基石。