怎么将Bert生成的词向量和手动计算的种子词向量都进行归一化处理
时间: 2023-07-16 10:11:53 浏览: 46
可以使用sklearn库中的MinMaxScaler类对词向量进行归一化处理。具体实现步骤如下:
1. 导入MinMaxScaler类和numpy库。
```python
from sklearn.preprocessing import MinMaxScaler
import numpy as np
```
2. 将Bert生成的词向量和手动计算的种子词向量合并到一个numpy数组中,假设该数组为embeddings。
```python
bert_embeddings = np.array([[0.1, 0.2, 0.3], [0.2, 0.3, 0.4], [0.3, 0.4, 0.5]])
seed_embeddings = np.array([[0.4, 0.5, 0.6], [0.5, 0.6, 0.7], [0.6, 0.7, 0.8]])
embeddings = np.concatenate((bert_embeddings, seed_embeddings), axis=0)
```
3. 创建一个MinMaxScaler对象,并使用fit_transform方法对embeddings进行归一化处理。
```python
scaler = MinMaxScaler()
embeddings_normalized = scaler.fit_transform(embeddings)
```
4. 将归一化后的embeddings_normalized数组按照原来的维度进行拆分,得到归一化后的Bert生成的词向量和手动计算的种子词向量。
```python
bert_embeddings_normalized = embeddings_normalized[:len(bert_embeddings)]
seed_embeddings_normalized = embeddings_normalized[len(bert_embeddings):]
```
这样就完成了Bert生成的词向量和手动计算的种子词向量的归一化处理。