使用 Spacy、Bert 时是不是需要对文本分类进行停用词去除、词干/词形还原?

Posted

技术标签:

【中文标题】使用 Spacy、Bert 时是不是需要对文本分类进行停用词去除、词干/词形还原?【英文标题】:Is it necessary to do stopwords removal ,Stemming/Lemmatization for text classification while using Spacy,Bert?使用 Spacy、Bert 时是否需要对文本分类进行停用词去除、词干/词形还原? 【发布时间】:2020-12-17 08:57:11 【问题描述】:

在使用 Spacy、Bert 或其他高级 NLP 模型获取文本的向量嵌入时,是否需要去除停用词、词干和词形还原?

text="婚礼上的食物非常好吃"

1. 由于 Spacy,Bert 是在庞大的原始数据集上进行训练的,在使用 bert/spacy 进行文本分类任务生成嵌入之前,对这些文本应用停用词去除、词干和词形还原有什么好处吗?

2.当我们使用countvectorizer,tfidf vectorizer来获得句子的嵌入时,我可以理解停用词去除,词干和词形还原会很好。

【问题讨论】:

您可以测试看看是否进行词干化和停用词删除有帮助。并非总是如此。如果我要绘制图表,我通常会这样做,因为停用词会使结果变得混乱。 【参考方案1】:

您可以进行测试,看看是否进行词干化和停用词删除有帮助。并非总是如此。如果我要绘制图表,我通常会这样做,因为停用词会使结果变得混乱。

不使用停用词的案例 使用停用词将为用户的意图提供上下文,因此当您使用 BERT 之类的上下文模型时。在像 BERT 这样的模型中,所有停用词都被保留以提供足够的上下文信息,例如被认为是停用词的否定词(not、nor、never)。

根据https://arxiv.org/pdf/1904.07531.pdf

“令人惊讶的是,停用词与非停用词一样受到关注,但删除它们对 MRR 性能没有影响。”

【讨论】:

【参考方案2】:

使用 BERT,您无需处理文本;否则,您会丢失上下文(词干、词形还原)或彻底更改文本(去除停用词)。

一些更基本的模型(基于规则或词袋)会从一些处理中受益,但您必须非常小心移除停用词:许多改变整个句子含义的词是停用词(不是,不,从不,除非)。

【讨论】:

【参考方案3】:

这不是强制性的。删除停用词有时会有所帮助,有时则无济于事。你应该两个都试试。

【讨论】:

以上是关于使用 Spacy、Bert 时是不是需要对文本分类进行停用词去除、词干/词形还原?的主要内容,如果未能解决你的问题,请参考以下文章

为啥 Bert 转换器使用 [CLS] 令牌进行分类,而不是对所有令牌进行平均?

使用预先训练的BERT模型对多类文本分类进行错误分类

使用 BERT 的偏移量将实体添加到 spacy doc 对象

BERT 预训练模型及文本分类

【论文笔记】融合标签向量到BERT:对文本分类进行改进

BERT模型在多类别文本分类时的precision, recall, f1值的计算