NLP必备的库

本周我们给大家整理了机器学习和竞赛相关的NLP库,方便大家进行使用,建议收藏本文。

jieba

jieba是Python中的优秀的中文分词第三方库,通过几行代码就可以完成中文句子的分词。jieba的分词精度和性能非常优异,经常用来进行中文分词的实验对比。此外jieba还可以很方便的自定义词典,使用起来非常灵活。

import jiebaseg_list = jieba.cut("我来到北京清华大学", cut_all=True)
print("Full Mode: " + "/ ".join(seg_list))  # 全模式
# 【全模式】: 我/ 来到/ 北京/ 清华/ 清华大学/ 华大/ 大学
seg_list = jieba.cut("我来到北京清华大学", cut_all=False)
print("Default Mode: " + "/ ".join(seg_list))  # 精确模式
# 【精确模式】: 我/ 来到/ 北京/ 清华大学seg_list = jieba.cut("他来到了网易杭研大厦")  # 默认是精确模式
print(", ".join(seg_list))
# 【新词识别】:他, 来到, 了, 网易, 杭研, 大厦

jieba项目主页:https://github.com/fxsjy/jieba

此外jieba分词还有CPP版本,如果觉得性能不够,可以尝试CPP版本。

spaCy

spaCy是功能强化的NLP库,可与深度学习框架一起运行。spaCy提供了大多数NLP任务的标准功能(标记化,PoS标记,解析,命名实体识别)。spaCy与现有的深度学习框架接口可以一起使用,并预装了常见的语言模型。

import spacy# Load English tokenizer, tagger, parser, NER and word vectors
nlp = spacy.load("en_core_web_sm")# Process whole documents
text = ("When Sebastian Thrun started working on self-driving cars at ""Google in 2007, few people outside of the company took him ""seriously. “I can tell you very senior CEOs of major American ""car companies would shake my hand and turn away because I wasn’t ""worth talking to,” said Thrun, in an interview with Recode earlier ""this week.")
doc = nlp(text)# Analyze syntax
print("Noun phrases:", [chunk.text for chunk in doc.noun_chunks])
print("Verbs:", [token.lemma_ for token in doc if token.pos_ == "VERB"])# Find named entities, phrases and concepts
for entity in doc.ents:print(entity.text, entity.label_)

spaCy项目主页:https://spacy.io/

Gensim

是一个高效的自然语言处理Python库,主要用于抽取文档的语义主题(semantic topics)。Gensim的输入是原始的、无结构的数字文本(纯文本),内置的算法包括Word2Vec,FastText和LSA。

from gensim.test.utils import common_texts, get_tmpfile
from gensim.models import Word2Vecpath = get_tmpfile("word2vec.model")
model = Word2Vec(common_texts, size=100, window=5, min_count=1, workers=4)
model.save("word2vec.model")

Gensim项目官网:https://radimrehurek.com/gensim/

NLTK

NLTK是一个免费的,开源的,社区驱动的项目,提供了50多种语料库和词汇资源(如WordNet),还提供了一套用于分类,标记化,词干化,标记,解析和语义推理的文本处理库。

import nltk
>>> sentence = """At eight o'clock on Thursday morning
... Arthur didn't feel very good."""
>>> tokens = nltk.word_tokenize(sentence)
>>> tokens
['At', 'eight', "o'clock", 'on', 'Thursday', 'morning',
'Arthur', 'did', "n't", 'feel', 'very', 'good', '.']
>>> tagged = nltk.pos_tag(tokens)
>>> tagged[0:6]
[('At', 'IN'), ('eight', 'CD'), ("o'clock", 'JJ'), ('on', 'IN'),
('Thursday', 'NNP'), ('morning', 'NN')]

NLTK官网:http://www.nltk.org/

TextBlob

TextBlob是一个用python编写的开源的文本处理库,它可以用来执行很多自然语言处理的任务,比如,词性标注、名词性成分提取、情感分析、文本翻译等。

from textblob import TextBlobtext = '''
The titular threat of The Blob has always struck me as the ultimate movie
monster: an insatiably hungry, amoeba-like mass able to penetrate
virtually any safeguard, capable of--as a doomed doctor chillingly
describes it--"assimilating flesh on contact.
Snide comparisons to gelatin be damned, it's a concept with the most
devastating of potential consequences, not unlike the grey goo scenario
proposed by technological theorists fearful of
artificial intelligence run rampant.
'''blob = TextBlob(text)
blob.tags           # [('The', 'DT'), ('titular', 'JJ'),#  ('threat', 'NN'), ('of', 'IN'), ...]blob.noun_phrases   # WordList(['titular threat', 'blob',#            'ultimate movie monster',#            'amoeba-like mass', ...])for sentence in blob.sentences:print(sentence.sentiment.polarity)
# 0.060
# -0.341

TextBlob官网:https://textblob.readthedocs.io/en/dev/

CoreNLP

Stanford CoreNLP是用处理自然语言的工具集合。它可以给出词语的基本形式:词性(它们是公司名、人名等,规范化日期,时间,和数字),根据短语和语法依赖来标记句子的结构,发现实体之间的关系、情感以及人们所说的话等。

CoreNLP提供了Java版本的服务器部署,也有python版本的调用,用途非常广泛。在工业界和学术界都有广泛的应用。

CoreNLP官网:https://stanfordnlp.github.io/CoreNLP/

AllenNLP

AllenNLP 是由世界著名的艾伦人工智能实验室(Allen Institute for AI Lab)建立的 NLP 深度学习通用框架,不仅包含了最先进的参考模型,可以进行快速部署,而且支持多种任务和数据集。

AllenNLP官网:https://allennlp.org/

TorchText

TorchText是Pytorch下对NLP的支持库,包含便利的数据处理实用程序,可在批量处理和准备之前将其输入到深度学习框架中。TorchText可以很方便加载训练数据、验证和测试数据集,来进行标记化、vocab构造和创建迭代器,并构建迭代器。

TorchText官网:https://github.com/pytorch/text

Transformers

Transformers是现如今最流行的库,它实现了从 BERT 和 GPT-2 到 BART 和 Reformer 的各种转换。huggingface 的代码可读性强和文档也是清晰易读。在官方github的存储库中,甚至通过不同的任务来组织 python 脚本,例如语言建模、文本生成、问题回答、多项选择等。

huggingface官网:https://huggingface.co/

OpenNMT

OpenNMT 是用于机器翻译和序列学习任务的便捷而强大的工具。其包含的高度可配置的模型和培训过程,让它成为了一个非常简单的框架。因其开源且简单的特性,建议大家使用 OpenNMT 进行各种类型的序列学习任务。

OpenNMT官网:https://opennmt.net/

往期精彩回顾适合初学者入门人工智能的路线及资料下载机器学习及深度学习笔记等资料打印机器学习在线手册深度学习笔记专辑《统计学习方法》的代码复现专辑
AI基础下载机器学习的数学基础专辑获取一折本站知识星球优惠券,复制链接直接打开:https://t.zsxq.com/662nyZF本站qq群704220115。加入微信群请扫码进群(如果是博士或者准备读博士请说明):

【NLP】竞赛必备的NLP库相关推荐

  1. NLP竞赛参与打卡记录:汽车领域多语种迁移学习挑战赛

    NLP竞赛参与打卡记录:汽车领域多语种迁移学习挑战赛 本博客为Coggle 30 Days of ML(22年7月)竞赛打卡活动记录页面,会记录本人的打卡内容.活动链接为:活动链接 任务1:比赛报名 ...

  2. 国内NLP竞赛平台一览(附平台连接)

    来源:NLP有品 本文约700字,建议阅读10分钟 本文为大家分享国内NLP竞赛平台. 标签:自然语言处理 "白嫖数据的圣地,NLP技能的训练场",当你觉得学好了NLP技能想练手却 ...

  3. SemEval-2020自由文本关系抽取冠军方案解读 (附NLP竞赛常用技巧总结)

    本文将回顾平安人寿近期在PaperWeekly × Biendata直播间进行的主题为「SemEval-2020自由文本关系抽取冠军方案解读(附NLP竞赛常用技巧总结)」的技术分享,由平安人寿AI团队 ...

  4. 直播 | SemEval-2020自由文本关系抽取冠军方案解读(附NLP竞赛常用技巧总结)

    「PW Live」是由 PaperWeekly 和 biendata 共同发起的学术直播间,旨在帮助更多的青年学者宣传其最新科研成果.我们一直认为,单向地输出知识并不是一个最好的方式,而有效地反馈和交 ...

  5. 开源NLP(自然语言处理)库的功能对比

    AI Conference 北京站 AI Conference 2019 北京站6月18-21日即将开幕! 培训:大会推出「PyTorch 深度学习」两天培训课程,资深数据科学家主讲,限制人数,抢票从 ...

  6. 【NLP】几个NLP实用工具:不用重新造轮子

    作者 | Abhijit Gupta 编译 | VK 来源 | Towards Data Science 介绍 自然语言处理(NLP)是一个令人生畏的领域名称.从非结构化文本中生成有用的结论是很困难的 ...

  7. Pytorch:NLP 迁移学习、NLP中的标准数据集、NLP中的常用预训练模型、加载和使用预训练模型、huggingface的transfomers微调脚本文件

    日萌社 人工智能AI:Keras PyTorch MXNet TensorFlow PaddlePaddle 深度学习实战(不定时更新) run_glue.py微调脚本代码 python命令执行run ...

  8. NLP的介绍和如何利用机器学习进行NLP以及三种NLP技术的详细介绍

    文章目录 什么是NLP? 为什么要学习NLP? 深度学习 技术1:文本嵌入(Text Embeddings) 技术2:机器翻译 技术3:会话 易水寒 发表于 2018-06-10 10:26:10 本 ...

  9. 《自然语言处理中的因果推理》综述论文,以色列理工谷歌等13位NLP大牛阐述因果推理NLP的估计、预测、解释和超越...

    来源:专知 摘要 科学研究的一个基本目标是了解因果关系.然而,尽管因果关系在生命和社会科学中发挥着关键作用,但在自然语言处理(NLP)中却没有同等的重要性,后者传统上更重视预测任务.随着因果推理和语言 ...

最新文章

  1. 网络订票当心三类陷阱 最好当场识别真伪
  2. DisplayPageBoundaries 打开word后自动将页面间空白隐藏 (auto+定时器)
  3. Java中 List、Set、Map遍历方式以及性能比较
  4. java tts引擎_让Java说话-用Java实现语音引擎
  5. 均方根误差不超过_快速平方根倒数算法
  6. ajax 执行成功 modal 关闭_Ajax请求中的async:false/true的作用
  7. python setup.py install 和python setup.py develop的区别
  8. JavaScript继承方式详解
  9. android 图片 灰色,Android实现制作灰色图片
  10. apk部分手机安装失败_安装APK文件时提示“解析包出现错误”,看完就知道怎么做了!...
  11. spring事务REQUIRED REQUIRES_NEW区别
  12. JSONObject将json字符串转成java嵌套对象
  13. flutter中页面跳转之Navigator
  14. 数字逻辑---头歌实训作业---逻辑函数及其描述工具(Logisim)
  15. excel中以文本形式保存长数字
  16. 四十岁以后,如何做夫妻?
  17. java opengl 图片文字_如何通过opengl显示相机预览
  18. P1309 [NOIP2011 普及组] 瑞士轮-快排+归并排序
  19. Pg sql 创建自动增长列及修改序列当前值
  20. 智慧林业落地入口在林业物联网工程

热门文章

  1. MAVEN_OPTS=-Xms128m -Xmx512m
  2. 我积累的数据库操作类(ASP.NET)
  3. 【知识强化】第一章 操作系统概述 1.1 操作系统的基本概念
  4. nodejs 开发,手把手开始第一个服务器程序(原生)
  5. [Android]第四次作业
  6. [ ZooKeeper]ZooKeeper 的功能和原理
  7. Django--form验证及错误处理
  8. 高效学习,战胜拖延症
  9. Hibernate4.x之映射关系--双向1-n
  10. 医学论文论题该如何下手