当前位置:   article > 正文

使用spark mllib训练中文文本分类器的_mlib 中文 处理

mlib 中文 处理
  1. import org.apache.spark.mllib.classification.NaiveBayes
  2. import org.apache.spark.mllib.feature.HashingTF
  3. import org.apache.spark.mllib.linalg.Vectors
  4. import org.apache.spark.sql.functions._
  5. object ChineseTextClassification {
  6. def main(args: Array[String]): Unit = {
  7. // 读取训练数据
  8. val df = spark.read.format("csv").option("header", "true").load("data/train.csv")
  9. // 中文分词
  10. val stopwords = sc.broadcast(Set("的", "是", "在", "了", "和", "为", "有", "这", "我"))
  11. val tokenizer = new RegexTokenizer().setPattern("\\w+").setInputCol("文本内容").setOutputCol("分词内容")
  12. df = tokenizer.transform(df)
  13. // 将分词结果转换为特征向量
  14. val hashingTF = new HashingTF().setNumFeatures(1000)
  15. val tf = hashingTF.transform(df.select("分词内容"))
  16. // 训练模型
  17. val naiveBayes = new NaiveBayes()
  18. val model = naiveBayes.fit(tf)
  19. // 测试模型
  20. val testData = spark.read.format("csv").option("header", "true").load("data/test.csv")
  21. val testTf = hashingTF.transform(testData.select("分词内容"))
  22. val predictions = model.predict(testTf)
  23. // 计算准确率
  24. val accuracy = predictions.zip(testData.select("文本类别")).map{ case (p, l) => if (p == l) 1 else 0}.sum() / testData.count()
  25. println(s"准确率:${accuracy}")
  26. }
  27. }

该代码首先读取训练数据。训练数据包括文本内容和文本类别两列。

然后,我们使用中文分词器将文本内容转换为分词结果。在本例中,我们使用了 Spark MLlib 提供的 RegexTokenizer 类。

接下来,我们使用 HashingTF 对象将分词结果转换为特征向量。特征向量的维度设置为 1000。

最后,我们使用朴素贝叶斯算法训练模型,并在测试数据上进行测试。

以下是 10 个中文文本分类的 GitHub 资源:

  • 649453932/Chinese-Text-Classification-Pytorch:基于 PyTorch 实现的中文文本分类,包括 TextCNN、TextRNN、FastText、TextRCNN、BiLSTM_Attention、DPCNN、Transformer 等模型。
  • gaussic/text-classification-cnn-rnn:基于 Keras 实现的中文文本分类,包括 TextCNN、TextRNN、BiLSTM 等模型。
  • brightmart/bert_language_understanding:基于 BERT 实现的中文文本分类。
  • brightmart/text_classification:包含各种中文文本分类模型的实现,包括 TextCNN、TextRNN、FastText、TextRCNN、BiLSTM_Attention、DPCNN、Transformer 等模型。
  • chenyuntc/PyTorchText:用于自然语言处理的 PyTorch 工具包,包含中文文本分类模型的实现。
  • thunlp/THUCNews:中文文本分类数据集。
  • wenet-e2e/wenet:中文文本分类模型,基于 CTC 和 Attention 等技术。
  • wenet-e2e/wenet_transformer:中文文本分类模型,基于 Transformer 技术。
  • wenet-e2e/wenet_bert:中文文本分类模型,基于 BERT 技术。

这些资源提供了丰富的中文文本分类模型和数据集,可以帮助您快速入门中文文本分类

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

闽ICP备14008679号