机器学习文本分类技术

问题描述 投票:0回答:5

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

我不知道需要应用哪种文本分类技术;我们有什么可以使用的工具吗?

machine-learning text-classification supervised-learning
5个回答
0
投票

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


0
投票

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


0
投票

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

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


0
投票

分类算法有很多种。你的例子看起来是一个文本分类问题 - 一些值得尝试的好的分类器是 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 工具中。


0
投票

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

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

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

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

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

© www.soinside.com 2019 - 2024. All rights reserved.