【问题标题】:Sentiment analysis - flair pretrained model classifier. How to speed up情感分析 - 天赋预训练模型分类器。如何加快速度
【发布时间】:2019-09-07 07:28:20
【问题描述】:

我想使用来自 flair 库的预训练 flair 英语模型对情绪进行分类。我有大约 90 000 条推文,我想对所有内容进行分类。

问题在于,flair 库在大约 7 小时内完成了这项工作。 比较 NLP 情感分类器或 TextBlob 可以在 1 分钟内完成...

我解决这个问题的代码是:

def flair_sentiment(data, classifier):
"""
data : text sequence (pandas.Series)
classifier : pretrained flair classifier
"""
values = []
for Item in data:
    tokenized = Sentence(Item)
    classifier.predict(tokenized)
    values.append(tokenized.labels[0].score)
return values

df['sentiment'] = flair_sentiment(df.tweets, classifier)

【问题讨论】:

  • 你设法以某种方式加速了情感分类器?我有同样的问题。好慢啊……

标签: python machine-learning sentiment-analysis


【解决方案1】:

我认为您可以尝试以下步骤:

  1. 在您的代码中,每次预测一条推文的情绪。您可以使用批量预测来加快速度。
  2. 目前对于 Flair 0.6,有两种情绪模型:“sentiment”(基于 BERT,这是默认模型)和“sentiment-fast”(基于 RNN,准确度稍低)。他们的表演报道在:https://github.com/flairNLP/flair/blob/master/resources/docs/TUTORIAL_2_TAGGING.md#list-of-pre-trained-text-classification-models
  3. 当然,使用 GPU 会大大加快速度。

以下是使用批量预测分析推文情绪的代码。它还显示了两种情绪模型的运行时间。可以看到基于 RNN 的模型比默认模型快很多。

from time import time

from flair.data import Sentence
from flair.models import TextClassifier


def flair_sentiment(texts, classifier):
    sentences = [Sentence(text) for text in texts]
    classifier.predict(sentences, mini_batch_size=32)
    return [
        (sent.labels[0].value, sent.labels[0].score)
        for sent in sentences
    ]


for sentiment_model_name in ("sentiment", "sentiment-fast"):
    classifier = TextClassifier.load(sentiment_model_name)

    start_time = time()
    tweets = 512 * [
        "For what a beautiful day. #elated",
        "It's broken"
    ]
    sentiments = flair_sentiment(tweets, classifier)
    # print(sentiments)
    print(f"* Sentiment model {sentiment_model_name}: running time = {time() - start_time:.2f} second(s)")

输出:

2020-09-22 11:50:14,027 loading file /Users/khuc/.flair/models/sentiment-en-mix-distillbert_3.1.pt
* Sentiment model sentiment: running time = 19.99 second(s)
2020-09-22 11:50:36,369 loading file /Users/khuc/.flair/models/sentiment-en-mix-ft-rnn.pt
* Sentiment model sentiment-fast: running time = 0.43 second(s)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-09-08
    • 1970-01-01
    • 2022-01-05
    • 2018-08-28
    • 1970-01-01
    • 2014-01-16
    • 2020-07-27
    • 1970-01-01
    相关资源
    最近更新 更多