machine-learning - 我想要一台机器学习对短文本进行分类

标签 machine-learning nlp classification

我有大量大约 500 字长的短篇故事,我想将它们分为 20 个类别之一:

  • 娱乐
  • 食物
  • 音乐
  • 等等

我可以对其中的一堆进行手动分类,但我想实现机器学习来最终猜测类别。解决这个问题的最佳方法是什么?我应该使用机器学习的标准方法吗?我认为决策树效果不佳,因为它是文本数据......

最佳答案

一个naive Bayes很可能会为你工作。方法是这样的:

  • 修复多个类别并获取(文档、类别)对的训练数据集。
  • 文档的数据向量就像一个词袋。例如取 100 个最常用的单词,除了“the”、“and”等单词。每个单词都有数据向量的固定组成部分(例如“食物”位于位置 5)。特征向量是一个 bool 值数组,每个 bool 值指示该单词是否出现在相应的文档中。

培训:

  • 对于您的训练集,计算每个特征和每个类别的概率:p(C) = C 类文档数/文档总数。
  • 计算某个类中某个特征的概率:p(F|C) = 具有给定特征的类的文档数量(= 文本中存在单词“food”)/给定类中的文档数量。

决定:

  • 给定一个未分类的文档,它属于 C 类的概率与 P(C|F1, ..., F500) = P(C) * P(F1|C) * P(F2|C) 成正比* ... * P(F500|C)。选择使该项最大化的 C。
  • 由于乘法在数值上很困难,因此您可以使用对数之和,它在相同的 C 处最大化:log P(C|F1, ..., F500) = log P(C) + log P( F1|C) + log P(F2|C) + ... + log P(F500|C)。

关于machine-learning - 我想要一台机器学习对短文本进行分类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2696392/

相关文章:

machine-learning - 为什么这个 tf.placeholder 必须是 float ?

image - 从 Torch Tensor 可视化 CNN 权重

r - 如何从概念上思考标记化词和词嵌入之间的关系?

python - 重新训练和更新现有 Rasa NLU 模型

machine-learning - 无法让简单的二元分类器工作

c# - MLAgents Agent 的训练并没有进步

machine-learning - 概率分布中的 argmax 比 softmax 中的随机采样更好的策略?

machine-learning - kNN 中用于分类的理想 k 值

Python NLTK 最大熵分类器错误

machine-learning - 用于回归(时间序列预测)和分类的神经网络架构有什么区别吗?