首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >情感分析- flair预训练的模型分类器。如何加速

情感分析- flair预训练的模型分类器。如何加速
EN

Stack Overflow用户
提问于 2019-09-07 07:28:20
回答 1查看 1.6K关注 0票数 3

我想从flair图书馆用预先训练的flair英语模型对情感进行分类。我有大约9万条推特,我想对每件事进行分类。

问题是,在大约7小时内,这个天赋库就能做到这一点。比较NLP情感分类器或TextBlob可以在1分钟内完成这一任务。

我对这个问题的代码是:

代码语言:javascript
复制
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)
EN

回答 1

Stack Overflow用户

发布于 2020-09-22 18:50:52

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

  1. 在您的代码中,情绪一次被预测为一条推特。您可以使用批处理预测来加快速度。
  2. 目前对于Flair 0.6,有两种情绪模型:“情绪”(基于BERT的,这是默认的)和“情绪-快速”(基于RNN的,稍微不太准确)。他们的表演在以下网站报道:TAGGING.md#list-of-pre-trained-text-classification-models
  3. 当然,使用GPU会大大加快速度。

下面是使用批处理预测来分析来自tweet的情绪的代码。它还显示了两种情绪模型的运行时间。您可以看到,基于RNN的模型比默认模型要快得多。

代码语言:javascript
复制
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)")

输出:

代码语言:javascript
复制
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)
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57831633

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档