这里举了一个简单的例子,举例说明Word2Vec在文本向量化中的应用,该例子假设已经有训练好的 Word2Vec 模型,或者可以加载预训练的 Word2Vec 模型。关于两种方式是怎么实现的,可以参照这篇文文章:Word2Vec的使用——包括使用预训练Word2Vec模型和自训练Word2Vec模型-CSDN博客
from gensim.models import Word2Vec
from sklearn.linear_model import LogisticRegression
from sklearn.metrics import accuracy_score
import numpy as np
# 假设已经有训练好的 Word2Vec 模型,或者可以加载预训练的 Word2Vec 模型
# 这里假设模型已经训练好,并保存为了 model 变量
# 示例文本数据(假设已经分好词并经过预处理,中文分词可以使用jieba)
sentences = [
["这个", "电影", "非常", "好", "我", "很", "喜欢"],
["这部", "电影", "真的", "很", "差", "客服", "服务态度", "非常", "差"],
["这部", "电影", "速度", "太慢", "了", "等", "了", "好久"],
["这部", "电影", "质量", "不错", "但", "价格", "有点", "贵"],
["售后服务", "很", "好", "很", "满意"]
]
# 获取每个文本的词向量表示(假设每个词的词向量维度为100)
def text_to_vector(text):
vectors = []
for word in text:
if word in model.wv:
vectors.append(model.wv[word])
if vectors:
return np.mean(vectors, axis=0)
else:
return np.zeros(100) # 如果文本为空或没有词在词典中,则返回零向量
# 将文本转换为向量表示
X = np.array([text_to_vector(text) for text in sentences])
# 标签数据(假设对应的分类标签)
y = np.array([1, 0, 0, 1, 1]) # 假设 1 表示积极,0 表示消极
# 训练分类器(这里使用逻辑回归作为示例)
clf = LogisticRegression()
clf.fit(X, y)
# 预测和评估
y_pred = clf.predict(X)
accuracy = accuracy_score(y, y_pred)
print(f"Accuracy: {accuracy}")