文本要喂给模型,必须先转成向量。这条路线,基本是绕不开的进化史:
第一代:One-hot
- 词越多维度越高,极其稀疏
- 现在基本不用了,除了作为讲解入门
第二代:TF-IDF
- 经典、稳、可解释
- 缺点:依然是稀疏矩阵,维度 = 词表大小
第三代:Word2Vec / GloVe
- 2013-2014 的明星算法
- 把词压成 100-300 维稠密向量
- 「国王 - 男人 + 女人 ≈ 女王」这种语义关系能算出来
- 中文推荐用腾讯的 800 万词向量,质量很高
第四代:BERT / Sentence-BERT
- 2018 之后的天花板
- 一个词在不同上下文里向量不同(解决一词多义)
- 整句直接出向量,sentence-transformers 包几行搞定
from sentence_transformers import SentenceTransformer
model = SentenceTransformer('paraphrase-multilingual-MiniLM-L12-v2')
embeddings = model.encode(texts)
|
做文本分类、聚类、检索,直接上 sentence-transformers,别从头训练。
本文由 BBZ · 小朵科技工作室 出品。