You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何将含分词句子的Pandas数据集输入Word2Vec生成词嵌入用于SVM情感识别

分词数据转词嵌入并用于SVM情感识别的实现步骤

1. 从Pandas数据框提取Word2Vec训练语料

假设你的数据框中,存储分词句子的列名为tokenized_text(每个单元格是一个分词后的列表,比如['这部', '电影', '很', '精彩']),先把所有句子提取为嵌套列表格式——这是Word2Vec模型要求的输入格式:

corpus = df['tokenized_text'].tolist()

2. 训练Word2Vec词嵌入模型

用gensim库的Word2Vec类训练自定义词向量,参数可根据数据集规模和需求调整:

from gensim.models import Word2Vec

# 初始化并训练模型
w2v_model = Word2Vec(
    sentences=corpus,
    vector_size=128,  # 词向量维度,常用100/128/256
    window=5,         # 上下文窗口大小,即当前词前后各5个词
    min_count=2,      # 忽略出现次数少于2的低频词,减少噪声
    workers=4         # 并行训练的线程数,加快训练速度
)

训练完成后,可通过w2v_model.wv['词']获取单个词的向量。

3. 将分词句子转换为固定维度的句子嵌入

SVM需要固定长度的输入特征,因此要把每个分词句子转换成一个统一维度的向量,最常用的方法是平均词向量:

import numpy as np

def build_sentence_vec(tokens, model):
    # 收集句子中所有在模型词表内的词向量
    valid_vecs = [model.wv[token] for token in tokens if token in model.wv]
    # 若句子无有效词,返回零向量;否则返回平均向量
    return np.mean(valid_vecs, axis=0) if valid_vecs else np.zeros(model.vector_size)

# 给数据框添加句子嵌入列
df['sent_embedding'] = df['tokenized_text'].apply(lambda x: build_sentence_vec(x, w2v_model))

# 转换为SVM可直接使用的特征矩阵和标签数组
X = np.array(df['sent_embedding'].tolist())
y = df['sentiment_label'].values  # 假设情感标签列名为sentiment_label

如果追求更好的效果,也可以用TF-IDF加权平均向量——给重要性高的词赋予更高权重。

4. 用生成的嵌入训练SVM模型

直接使用sklearn的SVM模块训练即可:

from sklearn.svm import SVC
from sklearn.model_selection import train_test_split
from sklearn.metrics import accuracy_score

# 划分训练集和测试集
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)

# 训练SVM分类器
svm_clf = SVC(kernel='rbf')  # 常用RBF核,可根据情况调整为linear
svm_clf.fit(X_train, y_train)

# 评估模型
y_pred = svm_clf.predict(X_test)
print(f"测试集准确率: {accuracy_score(y_test, y_pred):.2f}")

额外建议

  • 若数据集规模较小,不建议自定义训练Word2Vec,可直接使用预训练词嵌入(如中文的腾讯AI Lab词向量、英文的Google News词向量),加载后直接复用上述句子向量生成逻辑即可。
  • 也可以用Doc2Vec模型(Word2Vec的扩展)直接生成句子级嵌入,无需手动计算平均向量,适合长文本场景。

内容的提问来源于stack exchange,提问作者Rodrigo Lemos

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.26 00:12:37