无监督学习在句子上的应用

我有一组数据,代表操作员对工业设备上执行的各种活动的评论。这些评论可能反映了常规维护/更换活动,或者可能表示发生了某种损坏,需要进行修复。我有一组20万个句子,需要将它们分类为两个类别 – 修复/计划维护(或未确定)。这些句子没有标签,因此我在寻找基于无监督学习的解决方案。

一些样本数据如下所示:

“电机线圈损坏。更换了电机””皮带有裂缝。安装了新皮带””偶尔启动问题。更换了开关”

“更换了皮带””进行了润滑和清洁”。”执行了预防性维护计划”

前三个句子应标记为修复,而后三个句子应标记为计划维护。

对于这个问题,有什么好的方法吗?虽然我对机器学习有一些了解,但我对基于NLP的机器学习还比较新手。

我看到许多与此相关的论文,例如https://pdfs.semanticscholar.org/a408/d3b5b37caefb93629273fa3d0c192668d63c.pdfhttps://arxiv.org/abs/1611.07897

但我想了解是否有解决此类问题的标准方法


回答:

看起来你可以使用一些可靠的关键词(在这种情况下似乎是动词)来为NLP分类器创建训练样本。或者你可以使用KMeans或KMedioids聚类,并将K设置为2,这将很好地分离数据集。如果你想深入研究,你可以使用像潜在Dirichlet分配这样的方法,这是一种无监督主题建模。然而,对于像这样的问题,基于你拥有的小数据量,我认为方法越复杂,你对结果的失望就越大。

OpenNLP和StanfordNLP都有用于此的文本分类器,所以如果你想走分类路线,我推荐如下步骤:

- 使用关键词搜索生成几千个你两个类别的例子- 将这些句子放入一个文件中,并根据OpenNLP格式加上标签(标签 |空格| 句子 | 换行符)- 使用OpenNLP的DocumentClassifier训练一个分类器,我推荐使用词干提取作为你的特征生成器之一- 训练好模型后,在Java中使用它来对每个句子进行分类。- 记录分数,并隔离低分(我相信你会有模糊的类别)

如果你不想走这条路,我推荐使用像SOLR或ElasticSearch或者你喜欢的RDBMS的文本索引技术来执行“更多像这样”的功能,这样你就不必玩机器学习的持续模型更新游戏了。

Related Posts

使用LSTM在Python中预测未来值

这段代码可以预测指定股票的当前日期之前的值,但不能预测…

如何在gensim的word2vec模型中查找双词组的相似性

我有一个word2vec模型,假设我使用的是googl…

dask_xgboost.predict 可以工作但无法显示 – 数据必须是一维的

我试图使用 XGBoost 创建模型。 看起来我成功地…

ML Tuning – Cross Validation in Spark

我在https://spark.apache.org/…

如何在React JS中使用fetch从REST API获取预测

我正在开发一个应用程序,其中Flask REST AP…

如何分析ML.NET中多类分类预测得分数组?

我在ML.NET中创建了一个多类分类项目。该项目可以对…

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注