机器学习文本分类技术

时间:2014-11-18 19:33:31

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

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

问题陈述:

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

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

请帮忙。

提前致谢。

5 个答案:

答案 0 :(得分:0)

这属于线性分类。您可以使用naive-bayes分类器。大多数ml框架都有一个naive-bayes的实现。例如:mahout

答案 1 :(得分:0)

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

答案 2 :(得分:0)

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

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

答案 3 :(得分:0)

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

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

它们也包含在ML工具中,例如scikit-learna和WEKA。

答案 4 :(得分:0)

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

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

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

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

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