如何将 if-then 语句与某些文本分类器合并以构建将句子分类为不同类的模型?
Posted
技术标签:
【中文标题】如何将 if-then 语句与某些文本分类器合并以构建将句子分类为不同类的模型?【英文标题】:How can I merge if-then statement with some text classifier to build such a model that classifies a sentences into different classes? 【发布时间】:2015-12-06 02:39:03 【问题描述】:我有以下场景要处理,然后将自然语言分类如下:-
最初,我有一个算法 Alg1 可以根据一些矩阵分数对一些数据/文本进行分类,我可以构建一些以某种方式评分的特征矩阵喜欢:
位置 |情态动词 |句子长度 |特殊词(如果一个句子有特殊词 -> score=1)|特殊动词(如果一个句子有一个或多个特殊动词)|条件 (while,if,then))
然后根据这些矩阵分数:我最初可以将一些句子分为不同的类class1、class2、class3,就使用 [if - then] 语句,所以现在的问题是如何在文本分类器算法的帮助下合并(规范化)这种方法,例如 (SVM)或其他什么,为了获得更好的精确召回)实现这种混合方法的想法是什么。 ?
【问题讨论】:
您要解决的问题是什么导致更传统的词袋样式文本分类不合适? @Bob Dillon 对不起;你能解释一下你所说的更传统的词袋是什么意思吗?这是一个问题还是一个答案?对不起,我不明白你.. @Bob Dillon 为什么你认为它不合适? Bag of Words 是一种文本模型,它忽略一段文本中的单词顺序(更具体地说是 N-Grams),而只是查看文本中的单词列表,通常是频率每个单词的。在机器学习和文本分类中,您可以使用 BoW 表示来进行准确的文本分类。使用 BoW,您可以将一段随机文本翻译成一个向量,该向量可以馈送到 SVM 模型进行分类。当然,这是一个有监督的训练案例,因此您需要一个训练/测试文本语料库来为每个类创建模型。 如果这是你想做的事情,我可以写得更详细一点作为答案。我只是想看看我是否在你想要完成的事情的球场上。 【参考方案1】:词袋 (BoW) 是一种文本模型,其中忽略词序、语法、句法等,只考虑词的存在。就好像您从一段文字中取出单词并将它们放入一个袋子中并摇晃它的拼字游戏风格。这也被称为朴素贝叶斯假设,因为它着眼于单词的概率而不考虑顺序;但考虑到朴素贝叶斯机器学习模型,我觉得这很令人困惑。这些是共享名称的不同事物。 BoW 模型用于文本分类和信息检索应用程序,仅举几例。
在最一般的情况下,我们从正面(您要查找的课程)和负面文档(不是课程)的训练语料库开始进行训练。检查语料库并识别语料库中的每个唯一单词(符号)。这个符号列表称为特征集。使用该特征集,生成一个表示训练语料库中每个文档的向量。该向量由二进制值(文档中存在/不存在的特征)或数字(训练集中特征的频率)组成。这些向量是语料库的 BoW 表示,可用于训练模型,例如 SVM 模型。训练模型后,可以从“野外”文档中生成向量,并且可以使用该模型将文档分类为具有特定可能性的正类或负类的代表。
对于任何实质性的语料库,通常都会有数十万个、数千个甚至数百万个独特符号。为了获得高分类性能,执行称为降维或特征减少的过程。特征缩减旨在消除分类效率最低的符号;只考虑最相关的功能。例如,“the”这个词将出现在几乎所有文本中,因此在将文档分成类时没有任何价值。 “足球”一词在将文件分类为与体育相关的文件和与体育无关的文件时具有很高的价值。降维本身就是一个很深的主题。 Here's another Stack question where it's addressed in a bit of detail.
还有其他变体,例如使用 N-Grams(N 个连续单词作为单个符号)。谷歌Bag of Words Text Classification,你会发现许多学术论文、博客文章、书籍等更详细地描述了这种技术,并探索了为各种应用程序优化性能的许多方面。对于大多数任何语言,还有许多工具可以简化 BoW 文本分类器的实现。谷歌您选择的语言和词袋。我希望这能让你开始。
【讨论】:
你的解释很好,但我正在寻找我们如何将 IF-Then 与一些分类器算法合并以上是关于如何将 if-then 语句与某些文本分类器合并以构建将句子分类为不同类的模型?的主要内容,如果未能解决你的问题,请参考以下文章