NLP,使用NLTK的情感分析与使用机器学习方法的区别

我最近开始学习使用Python进行NLP和机器学习。我从情感分析开始。我在理解机器学习在情感分析中如何发挥作用时遇到了困难。

假设我正在使用NLTK的SentimentIntensityAnalyzer来分析推文或新闻标题,并且我加载了相关词汇表,因此我可以获得极性、负面、正面和中性的得分。现在我不明白的是,在什么情况下我应该使用像这篇文章中的代码:

使用机器学习进行情感分析的教程

或者只是使用NLTK内置的工具,或者甚至像Google的BERT这样的工具?

任何回答或指向博客或教程的链接都将受到欢迎!


回答:

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不需要(或需要很少的)特征工程,它在机器学习工程工作中可以快速获得良好的初始结果。

BERT的主要限制包括:

  1. 学习曲线,主要是概念上理解它是如何工作的。使用BERT并不难。

  2. BERT在训练和预测时速度慢。即使对于小数据集,你也几乎必须使用至少中等配置的GPU。

  3. 缺乏透明度。很难知道基于BERT的模型为什么会给出这样的建议。

Related Posts

使用LSTM在Python中预测未来值

这段代码可以预测指定股票的当前日期之前的值,但不能预测…

如何在gensim的word2vec模型中查找双词组的相似性

我有一个word2vec模型,假设我使用的是googl…

dask_xgboost.predict 可以工作但无法显示 – 数据必须是一维的

我试图使用 XGBoost 创建模型。 看起来我成功地…

ML Tuning – Cross Validation in Spark

我在https://spark.apache.org/…

如何在React JS中使用fetch从REST API获取预测

我正在开发一个应用程序,其中Flask REST AP…

如何分析ML.NET中多类分类预测得分数组?

我在ML.NET中创建了一个多类分类项目。该项目可以对…

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注