网络知识 娱乐 短文本处理重磅利器!基于推文tweet训练的NLP的Python库发布

短文本处理重磅利器!基于推文tweet训练的NLP的Python库发布

昨天,卡地夫大学的NLP研究小组CardiffNLP发布了一个全新的NLP处理Python库——TweetNLP,这是一个完全基于推文训练的NLP的Python库。它提供了一组非常实用的NLP工具,可以做推文的情感分析、emoji预测、命名实体识别等。

短文本处理重磅利器!基于推文tweet训练的NLP的Python库发布



  • 一、TweetNLP简介
  • 二、TweetNLP功能简介
  • 2.1、文本分类
  • 2.2、标签分析
  • 2.3、单词预测
  • 2.4、文本相似性计算
  • 2.5、命名实体识别
  • 三、TweetNLP的安装使用注意事项

一、TweetNLP简介

TweetNLP是一个Python库,它包含了当前最先进的语言模型(基于推文训练的轻量级的transformer类的语言模型)。使用也很简单:

  1. 安装:pip install tweetnlp
  2. 因入库:import tweetnlp
  3. 载入模型:model = tweetnlp.load(‘sentiment’)
  4. 使用模型:model.sentiment(“We love NLP!”)

这个库是由卡地夫大学的NLP研究人员开发的,其核心的预训练模型结果发布在Hugging Face上。CardiffNLP是卡地夫大学的自然语言研究小组的名称,他们关注自然语言处理的所有技术,自然语言处理(NLP)是人工智能的一个子领域,涉及计算机如何处理语言。NLP是一个不断增长的全球行业,有许多积极的研究方向。在卡迪夫NLP中, 他们研究理论和应用NLP的各个方面。他们认为,NLP在性质上是跨学科的,这就是为什么该小组对开发NLP技术和让领域专家参与感兴趣的原因,他们可以推动该领域的发展,并在重要的应用中产生影响。而TweetNLP是他们最新的成果应用!

二、TweetNLP功能简介

目前TweetNLP支持如下功能:

2.1、文本分类

可以理解是短文本或者语句分类,目前包含7种分类任务:目前支持主题分类、情绪分析、讽刺检测、仇恨检测、攻击性检测、表情符号预测和情感分析。

主题分类,也就是topic classification,可以将短文本分成19个类别。我测了一下,输入I love China, I think Chinese people is cute,结果如下:

短文本处理重磅利器!基于推文tweet训练的NLP的Python库发布



emmmm,怎么说呢,感觉不太像。可能是因为这个内容不那么好划分。

2.2、标签分析

这个功能可以分析最近几天某个话题或者标签下所有推文的情感分析结果。例如,我输入关键词China,结果如下,看样子大家最近的评价不太友好啊~~

短文本处理重磅利器!基于推文tweet训练的NLP的Python库发布



2.3、单词预测

输入一段短文本,然后将某些单词隐去,用mask代替,然后模型自动预测这个单词是啥。这个还可以,我测了一下:

短文本处理重磅利器!基于推文tweet训练的NLP的Python库发布



2.4、文本相似性计算

这个很容易理解,就是输入两段文本,分析它们之间的相似性。测试如下:

文本1:The weather is going to get cold.
文本2:It’s gonna be chilly today.

相似性80%,还是不错的。

2.5、命名实体识别

这个就是识别文本中的专有名词,一般也就是人名、地名等。不过这个演示官方的demo有问题,我自己尝试了他们的代码:

>>> import tweetnlpn>>> model = tweetnlp.load('ner', model="D:/projects/twitter-roberta-base-dec2021-tweetner")n>>> model.ner('Data Learner is a fatansic website!')nn{'prediction': ['B-corporation', 'I-corporation', 'O', 'O', 'O', 'O'], 'probability': [0.34935998916625977, 0.43025925755500793, 0.9934338331222534, 0.9907172322273254, 0.6817073822021484, 0.7345249056816101], 'input': ['Data', 'Learner', 'is', 'a', 'fatansic', 'website!'], 'entity_prediction': [{'type': 'corporation', 'entity': ['Data', 'Learner'], 'position': [0, 1], 'probability': [0.34935998916625977, 0.43025925755500793]}]}

可以看到,这个我输入的测试Data Learner is a fatansic website!,它预测Data Learner是机构名称,还是非常准确的,其它都不是。

三、TweetNLP的安装使用注意事项

但是可能是项目刚上线,这个库的安装和使用也有点问题,首先是安装的时候如果你的Python版本太新可能也会导致安装失败,因为他们依赖很多其它库,所以最好选择当前稳定的版本。我一开始Python3.10.x的版本就安装失败,换成3.9.x就可以了。

其次,安装的时候遇到了一个gbk codec问题(Windows pip install UnicodeDecodeError: ‘gbk‘ codec can‘t decode byte 0x90 in position 101: illegal),这应该是我都电脑Windows系统是中文版本的,所以默认编码gbk,更改系统设置为UTF-8即可,参考:https://blog.csdn.net/qq_36287702/article/details/120912381

最后,这个库做文本分析的时候是需要默认联网使用Hugging Face上托管的预训练模型的结果,由于咱们国内的局域网无法访问这个外网,因此需要手动下载模型到本地,然后使用如下方式建立模型即可:

model = tweetnlp.load(task='ner', model="xxx/twitter-roberta-base-dec2021-tweetner")

这里第一个参数是表示需要什么任务,第二个参数是预训练模型的本地地址。预训练模型的下载地址需要各位自己去了:https://huggingface.co/tner

在GitHub上有各个任务对应的地址。大家可以自己去下载。

最后想说的是,虽然这个库命名为TweetNLP,使用推文训练各类模型,但是实际上针对短文本都可以。不过它支持最好的还是英文,不过最好的是它使用方便,而且准确性不错。有相关需求使用的可以尝试。


详情:最新发布!基于推文(tweet)训练的NLP的Python库TweetNLP发布了! | 数据学习者官方网站(Datalearner)