【问题标题】:Machine Learning Text Classification technique机器学习文本分类技术
【发布时间】:2015-01-16 02:57:51
【问题描述】:

我是机器学习的新手。我正在做一个需要应用机器学习概念的项目。

问题陈述:

我有大量(比如3000个)关键字。这些需要分为七个固定类别。每个类别都有训练数据(样本关键字)。我需要一个算法,当一个新的关键字被传递给也就是说,它应该预测这个关键词属于哪个类别。

我不知道需要为此应用哪种文本分类技术。我们是否有任何工具可以使用。

请帮忙。

提前致谢。

【问题讨论】:

标签: machine-learning text-classification supervised-learning


【解决方案1】:

使用分类器,构建和验证一个实用的分类器仍然是一些操作。挑战之一是混合

  • 离散的(布尔型和可枚举)
  • 连续(“数字”)

预测变量无缝衔接。通常需要一些算法预处理。

神经网络确实提供了使用这两种变量的可能性。但是,它们需要熟练的数据科学家才能产生良好的结果。一个直接的选择是使用像Insight Classifiers 这样的在线分类器Web 服务来一次性构建和验证分类器。那里正在使用 N 折交叉验证。

您可以在单独的列中表示每个单词的存在或不存在。结果变量是期望的类别。

【讨论】:

    【解决方案2】:

    有很多分类算法。您的示例看起来是一个文本分类问题 - 一些可以尝试的好的分类器是 SVM 和朴素贝叶斯。对于 SVM,liblinear 和 libshorttext 分类器是不错的选择(并且已在许多工业应用中使用):

    liblinear:https://www.csie.ntu.edu.tw/~cjlin/liblinear/ libshorttext:https://www.csie.ntu.edu.tw/~cjlin/libshorttext/

    它们还包含在 scikit-learna 和 WEKA 等 ML 工具中。

    【讨论】:

      【解决方案3】:

      您可以在每个类别的描述和数据集中的关键字之间使用 Word2Vec Word Cosine 距离,然后简单地将每个关键字与距离最近的类别进行匹配

      或者,您可以根据已匹配的类别、关键字创建训练数据集,并使用任何 ML 分类器,例如,基于人工神经网络,使用关键字向量到每个类别的余弦距离作为模型的输入。但它可能需要大量数据进行训练才能达到良好的准确性。例如,MNIST 数据集包含 70000 个样本,它允许我使用简单的 CNN 达到 99.62% 的模型交叉验证准确率,对于另一个只有 2000 个样本的数据集,我只能达到大约 90% 的准确率

      【讨论】:

        【解决方案4】:

        是的,我还建议使用朴素贝叶斯,这或多或少是这里的基线分类算法。另一方面,显然还有许多其他算法。我想到了随机森林和支持向量机。请参阅http://machinelearningmastery.com/use-random-forest-testing-179-classifiers-121-datasets/ 如果您使用标准工具包,例如 Weka、Rapidminer 等,这些算法应该是可用的。还有用于 Java 的 OpenNLP,它带有一个最大熵分类器。

        【讨论】:

          【解决方案5】:

          这属于线性分类。您可以为此使用朴素贝叶斯分类器。大多数机器学习框架都会有一个朴素贝叶斯的实现。例如:象夫

          【讨论】:

          • 感谢您的回复。
          • 除了 naive-bayes 之外,我们还有其他分类器吗?我也可以使用现有的分类器实现还是需要做任何更改。我正在研究 WEKA 工具。对此有任何想法。
          猜你喜欢
          • 2011-07-23
          • 2013-11-07
          • 2017-01-14
          • 2016-12-16
          • 2018-09-26
          • 1970-01-01
          • 2020-02-08
          • 2021-06-17
          • 2017-07-01
          相关资源
          最近更新 更多