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

Python 情感分析-flair预训练模型分类器。如何加速,python,machine-learning,sentiment-analysis,Python,Machine Learning,Sentiment Analysis,我想用flair库中预先训练的flair英语模型对情绪进行分类。我有大约9万条推特,我想对所有的推特进行分类 问题是flair库在大约7小时内完成了这项工作。 要比较NLP情感分类器或TextBlob,可以在1分钟内完成此操作 我解决该问题的代码是: def flair_sentiment(data, classifier): """ data : text sequence (pandas.Series) classifier : pretrained flair classifier """

我想用flair库中预先训练的flair英语模型对情绪进行分类。我有大约9万条推特,我想对所有的推特进行分类

问题是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)

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

  • 在你的代码中,情绪是一次预测一条推特。您可以使用批处理预测来加快速度
  • 目前对于Flair 0.6,有两种情绪模型:“情绪”(基于BERT的是默认模型)和“情绪快速”(基于RNN的,精确度稍低)。他们的表现载于:
  • 当然,使用GPU将大大加快速度
  • 下面是使用批预测分析推特情绪的代码。它还显示了两种情绪模型的运行时间。您可以看到,基于RNN的模型比默认模型快得多

    从时间导入时间
    从flair.data导入句子
    从flair.models导入文本分类器
    def flair_情绪(文本、分类器):
    句子=[文本中文本的句子(文本)]
    预测(句子,最小批量大小=32)
    返回[
    (sent.labels[0]。值,sent.labels[0]。分数)
    以句子的形式发送
    ]
    对于“情绪”、“情绪快速”中的情绪模型名称:
    分类器=TextClassifier.load(情感模型名称)
    开始时间=时间()
    tweets=512*[
    “多么美好的一天.#欢欣鼓舞”,
    “它坏了”
    ]
    情感=天赋和情感(推特、分类器)
    #印刷品(情感)
    打印(f“*情绪模型{情绪模型{u名称}:运行时间={time()-开始时间:.2f}秒”)
    
    输出:

    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)
    

    你设法提高了天赋?我也有同样的问题。太慢了。。。。