文本分类+ NLP +数据挖掘+数据科学:在应用tf-idf之前我是否应该停止单词去除和词干处理?

时间:2018-10-03 16:46:35

标签: nlp data-mining data-science text-classification tf-idf

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

我有一个事件数据集,该数据集包含三列-事件名称,事件描述,事件类别。数据集中大约有32个类别,例如旅行,体育,教育,商务等。我必须根据事件的名称和描述将每个事件分类为一个类别。

我了解的是,分类的这一特殊任务高度依赖于关键字,而不是语义。我给你两个例子:

如果在名称或描述中或在两者中都找到“足球”一词,则该事件很可能与体育有关。

如果在名称或描述中或两者中都找到“徒步旅行”一词,则该事件很可能与旅行有关。

我们没有考虑活动的多个类别(但是,这是对未来的计划!)

我希望在多项朴素贝叶斯之前应用tf-idf会导致这个问题的结果令人满意。我的问题是:

我应该在应用tf-idf之前停止单词的去除和词干转换吗,还是应该仅对原始文本应用tf-idf?这里的文本表示事件和描述列名称中的条目。

1 个答案:

答案 0 :(得分:2)

这个问题太笼统了,您没有提供数据集,代码的样本,甚至没有指出您使用的语言。在这方面,我假设您使用的是英语,因为您提供的两个单词是“ football”和“ trekking”。但是答案肯定是通用的。

  

我应该停止删除单词

。看看this,看看英语中最常用的单词。如您所见,它们没有语义,因此不会有助于解决您提出的分类任务。如果stopwords是包含停用词的列表,则在调用stop_words=stopwords方法时,传递给CountVectorizerTfidfVectorizer构造函数的参数.fit_transform()将自动排除停用词。 / p>

  

我该干吗

这取决于。除了英语以外,其他语言的语法规则允许使用大量可能的前缀-后缀,通常在执行分类任务时要求使用词干,以便获得任何有用的结果。但是,英语的语法规则很差,因此您经常会在没有词干/词形限制的情况下逃脱。您应该首先根据所需的准确性检查获得的结果,如果不够,请尝试在数据预处理中添加词干/词根化步骤。对于大型语料库来说,词干处理是一个计算上昂贵的过程,我个人仅将其用于需要它的语言。

  

我希望在多项朴素贝叶斯算法之前应用tf-idf会导致该问题的解决。

对此保持谨慎。尽管tf-​​idf实际上可以与朴素贝叶斯分类器一起使用,但这并不是使用特定分类器的方式。在documentation中, The multinomial distribution normally requires integer feature counts. However, in practice, fractional counts such as tf-idf may also work.首先要解决CountVectorizer的分类任务并给它评分,这才是您的最大利益,在获得TfidfVectorizer的基线准确度之后,请检查其结果是否更好或比CountVectorizer的效果差。

如果您发布一些代码和数据集示例,我们可以为您提供帮助,否则就足够了。