NLP, 使用NLTK情感分析和使用ML方法的区别

4

我最近开始学习使用Python进行NLP和ML。

我从情感分析开始入手,但是我不太理解在进行情感分析时机器学习的作用。

假设我正在使用NLTK的SentimentIntensityAnalyzer分析推文或新闻标题,并加载相关词典使我获取情感极性、负面情感、正面情感和中性得分。

现在我不理解的是,在什么情况下应该像本文中的代码那样使用:

情感分类器使用TF-IDF

还是只使用内置的NLTK工具,甚至像Google的BERT这样的东西呢?

欢迎任何回答或Blog或教程链接!

2个回答

3

SentimentIntensityAnalyzer是一款专门用于分析情感的工具,非常易于使用,但它可能会错过一些情况,例如:

In [52]: from nltk.sentiment.vader import SentimentIntensityAnalyzer                                                

In [53]: sia = SentimentIntensityAnalyzer()                                                                         

In [54]: sia.polarity_scores("I am not going to miss using this product.")                                          
Out[54]: {'neg': 0.0, 'neu': 0.829, 'pos': 0.171, 'compound': 0.1139}

一种机器学习方法,如你链接中所概述的那样,更深入地关注于创建特征,通常使用TF-IDF,但并不仅限于此。然后,在此基础上使用机器学习。这种方法依赖于足够好且足够大的训练数据集的可用性。通常,特征提取是更重要的部分,选择像逻辑回归这样的简单模型。
BERT是一种预训练模型,可以进行微调,尽管这不是必需的,但根据我的经验,微调可以帮助提高结果。
BERT的主要优点有:
1.具有足够的训练数据,BERT可以非常强大,足够的训练数据应该能够正确地获取我文章开头的示例。这是一个巨大的优势。
2.由于BERT已经预先训练过,因此可能只需要相对较少的训练样本即可给出良好的合理结果。
3.由于BERT不需要(或者需要更少)特征工程,因此在 ML 工程工作方面可以快速获得良好的初始结果。
BERT的主要局限性包括:
1.学习曲线,主要是概念上理解它的工作原理。使用BERT并不是非常困难。
2.BERT训练和预测速度慢。即使是小数据集,也几乎必须使用至少一个中等GPU。
3.缺乏透明性。很难知道基于BERT的模型为什么建议这样做。

0

NLP本质上是机器学习的一部分,或者说使用了机器学习。它是“计算机和信息科学、人工智能和语言学的交叉学科领域,探索文本或语音中的自然语言”(reference)。

NLP的任务之一可以是您提到的情感分析,您可以使用各种NLP和ML工具。根据您的目的,有各种各样的NLP任务及其相应的库,例如情感分析、主题建模和命名实体识别(NER)。

对于同一任务,甚至有多个自然语言处理(NLP)库可供选择。例如,在情感分析方面,HuggingfaceNLKTspaCy都可以实现相同的目的。您可以参考它们的文档,并根据它们的性能和要求来决定哪个最适合您的任务。

示例教程:使用spaCy进行Python文本分类, 使用spaCy训练你自己的情感分析器, 微调BERT进行情感分析, 简化Python情感分析


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接