当前位置:   article > 正文

(11-8)基于大模型的情感分析系统(Tensorflow+BERT+RoBERTa+Sklearn):基准模型——朴素贝叶斯分类器_reberta模型 分类器

reberta模型 分类器

11.9  基准模型:朴素贝叶斯分类器

在实现BERT大模型微调工作之前,将定义一个简单的朴素贝叶斯基准模型来对微博进行分类。

(1)首先,需要使用CountVectorizer对微博进行标记化。下面代码使用 CountVectorizer 对训练集和测试集的微博进行标记化。fit_transform 方法用于训练并转换训练集,而 transform 方法用于仅对测试集进行转换,保持与训练集相同的标记化方式。这将微博文本转化为词频矩阵,用于朴素贝叶斯分类器的训练和测试。

  1. clf = CountVectorizer()
  2. X_train_cv =  clf.fit_transform(X_train)
  3. X_test_cv = clf.transform(X_test)

(2)然后,创建标记化微博的 TF-IDF(词频-逆文档频率)版本,例如下面代码使用 TfidfTransformer 对标记化后的微博进行 TF-IDF 转换。首先,通过 fit 方法对训练集进行拟合,然后使用 transform 方法分别对训练集和测试集进行转换。TF-IDF转换将词频矩阵转化为重要性加权的矩阵,用于训练和测试朴素贝叶斯分类器。

  1. tf_transformer = TfidfTransformer(use_idf=True).fit(X_train_cv)
  2. X_train_tf = tf_transformer.transform(X_train_cv)
  3. X_test_tf = tf_transformer.transform(X_test_cv)

(3)现在可以定义朴素贝叶斯分类器模型,下面代码创建了一个朴素贝叶斯分类器模型,并使用训练集的 TF-IDF 转换后的特征 X_train_tf 和标签 y_train_le 进行训练。模型学习了训练集中的模式和特征,以便对微博进行情感分类。

  1. nb_clf = MultinomialNB()
  2. nb_clf.fit(X_train_tf, y_train_le)

(4)下面代码使用训练好的朴素贝叶斯分类器模型对测试集进行预测,并打印输出了朴素贝叶斯分类器的分类报告。该报告包括了模型在每个类别(Negative、Neutral、Positive)上的准确率、召回率和 F1 值等评估指标。

  1. nb_pred = nb_clf.predict(X_test_tf)
  2. print('\tClassification Report for Naive Bayes:\n\n',classification_report(y_test_le,nb_pred, target_names=['Negative', 'Neutral', 'Positive']))

执行后打印输出了朴素贝叶斯分类器的分类报告,这有助于了解模型在测试集上的性能。

  1. Classification Report for Naive Bayes:
  2. precision recall f1-score support
  3. Negative 0.70 0.78 0.74 1629
  4. Neutral 0.60 0.47 0.53 614
  5. Positive 0.73 0.72 0.73 1544
  6. accuracy 0.70 3787
  7. macro avg 0.68 0.66 0.66 3787
  8. weighted avg 0.70 0.70 0.70 3787

由此可见,算法的性能还不错。F1 分数在人口更多的类别(Negative 和 Positive 情感)中大约为 70%,而在 Neutral 类别中较低(F1=0.53)。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/在线问答5/article/detail/958443
推荐阅读
相关标签
  

闽ICP备14008679号