因此,我的任务是根据句子的“变化谈话”的水平进行分类。Change talk是心理咨询中的一个术语,用来表达客户想要改变他们的行为的程度。
那么,假设有两种类型: change talk和non talk。
改变话题的一个例子是:“我必须这么做。”或者“我能做到”
不改变话题的一个例子是“我不能这么做”。或者“我没有动力”
我的问题是,如果我想用机器学习的方法来分类这些句子,哪一种是最好的方法?支持向量机?我没有太多的训练数据。此外-所有的教程,我看使用明显的单词,可以很容易分类的句子(例如。“棒球比赛明天就要开始了。”->体育,或者“唐纳德·特朗普明天会在电视上宣布。”->政治)。
我觉得我的数据很难分类,因为它通常没有与每个类相关的关键字。
关于人们将如何处理这项任务的一些指导将是很棒的。
发布于 2021-09-27 06:02:46
正如你所说的,你的问题是句子之间的语法重叠程度很高。看看这两句话:为了生活而工作,为了工作而活着。你越早允许自己享受生活中的其他东西,除了你的工作,而后者意味着获得资源,这样你就可以成为社会的一员,并允许自己过上良好的生活方式。它们在语义上非常不同。所以,当你用类似单词袋或Cosin这样的技巧将这些句子向量化时,相似性将是无用的,因为两个句子都包含相同的语料库。您正在处理的另一个问题(基于您提供的示例)是处理简短的文本,这使得很难用其他简单但有效的技术(如TF-下手)将其向量化。因此,无论您要使用什么分类,分类模型的性能都不会很高,这是因为对模型的输入是不正确的。
另一方面,像RNN或Transformers这样的深度学习方法能够轻松地解决像您这样的顺序对序列的任务,这是非常有帮助的。命名实体识别模型是您所需要的,并且考虑到您的数据非常特定于域,您需要使用您的数据来训练您自己的模型。我推荐Spacy Python包。因此,一旦你有了你的模型,你就会有两个实体,变化对话和不变对话。然后你可以简单地数一数你在你的段落中有多少。当然,这是处理问题的最简单的方法。您可以添加更多的实体,然后它们将作为您可以训练任何分类模型的特性。希望这能有所帮助。
发布于 2021-09-23 16:10:21
通常,在项目开始时,不清楚任务有多难,哪些元素会产生最大的影响。一种方法是建立一个机器学习系统,系统地评估各种选项,并以经验的方式探索这个问题。
首先设置最简单的文本分类管道,其中原始文本进入管道,“更改”/“不更改”预测从管道中产生。为二进制分类任务选择最合适的评估指标。
然后,采用模型比较方法,对管道中的每个元素进行实验测试,看看它是否改进了评估指标。最常见的做法是使用不同的文本编码方法(例如,一次热编码、基于计数或嵌入)和不同的算法(例如朴素贝叶斯、支持向量机(SVM)、基于树的模型或神经网络)。
https://datascience.stackexchange.com/questions/102235
复制相似问题