文本分类&x2B;NLP&x2B;数据挖掘&x2B;数据科学:在应用tf idf之前,我应该停止单词删除和词干分析吗?

文本分类&x2B;NLP&x2B;数据挖掘&x2B;数据科学:在应用tf idf之前,我应该停止单词删除和词干分析吗?,nlp,data-mining,data-science,text-classification,tf-idf,Nlp,Data Mining,Data Science,Text Classification,Tf Idf,我正在研究一个文本分类问题。问题解释如下: 我有一个事件数据集,它包含三列——事件名称、事件描述、事件类别。数据集中大约有32个类别,如旅游、体育、教育、商业等。我必须根据每个事件的名称和描述将其分类 我所理解的是,这个特殊的分类任务高度依赖于关键词,而不是语义。我举两个例子: 如果“football”一词出现在名称或描述中,或同时出现在这两个词中,那么很有可能该事件与体育有关 如果“徒步旅行”一词出现在名称或描述中,或同时出现在两者中,则该事件很可能与旅行有关 我们不会为一个活动考虑多个类别(

我正在研究一个文本分类问题。问题解释如下:

我有一个事件数据集,它包含三列——事件名称、事件描述、事件类别。数据集中大约有32个类别,如旅游、体育、教育、商业等。我必须根据每个事件的名称和描述将其分类

我所理解的是,这个特殊的分类任务高度依赖于关键词,而不是语义。我举两个例子:

如果“football”一词出现在名称或描述中,或同时出现在这两个词中,那么很有可能该事件与体育有关

如果“徒步旅行”一词出现在名称或描述中,或同时出现在两者中,则该事件很可能与旅行有关

我们不会为一个活动考虑多个类别(不过,这是未来的计划!!)

我希望在多项式朴素贝叶斯之前应用tf-idf将为这个问题带来不错的结果。我的问题是:


我应该在应用tf idf之前停止单词删除和词干分析,还是应该仅在原始文本上应用tf idf?这里的文本是指事件名称和描述列中的条目。

这个问题太笼统了,您没有提供数据集、代码的示例,甚至没有指明您使用的语言。在这方面,我假设你使用的是英语,因为你举的两个词是“football”和“trekking”。然而,答案必然是一般性的

我应该停止删除单词吗

。看看英语中最常用的单词。正如您所看到的,它们没有语义意义,因此无助于解决您提出的分类任务。如果
stopwords
是包含stopwords的列表,则传递给
CountVectorier
TfidVectorier
构造函数的参数
stop\u words=stopwords
将在调用
方法时自动排除stopwords

我应该做词干分析吗

视情况而定。英语以外的语言,其语法规则允许大量可能的前缀和后缀,通常在执行分类任务时需要词干分析,以获得任何有用的结果。然而,英语的语法规则很差,因此你通常可以不加词干/柠檬化就可以逃脱。您应该首先根据所需的精度检查获得的结果,如果不够,请尝试在数据预处理中添加词干分析/柠檬化步骤。词干分析对于大型语料库来说是一个计算成本很高的过程,我个人只在需要它的语言中使用它

我希望在多项式朴素贝叶斯之前应用tf-idf将为这个问题带来不错的结果

小心这件事。虽然tf idf在实践中使用朴素贝叶斯分类器,但这并不是特定分类器的使用方式。从,
多项式分布通常需要整数特征计数。但是,在实践中,分数计数(如tf idf)也可能起作用。
首先使用
CountVectorizer
处理分类任务,并对其进行评分,然后在获得评估
tfidvectorizer
的基线准确度之后,检查其结果是否比CountVectorizer的结果更好或更差

如果您发布一些代码和数据集示例,我们可以帮助您完成这项工作,否则这就足够了