分块平均池化
分块平均池化
import numpy as np
vecs = model.encode(chunks_of_doc, normalize_embeddings=True)
doc_vec = vecs.mean(axis=0) # 平均池化
doc_vec = doc_vec / np.linalg.norm(doc_vec) # 再归一化截断与池化会改变向量语义,两种策略先在评测集上对比再定。
多数 embedding 模型有输入长度上限(常见 512 token 级);超长文本可截断(丢尾部)或分块编码后向量池化(如平均),选择依赖任务并要评测。
import numpy as np
vecs = model.encode(chunks_of_doc, normalize_embeddings=True)
doc_vec = vecs.mean(axis=0) # 平均池化
doc_vec = doc_vec / np.linalg.norm(doc_vec) # 再归一化