首页 > 其他分享 >每个人都应该知道的5个NLP代码库

每个人都应该知道的5个NLP代码库

时间:2023-06-23 20:03:57浏览次数:51  
标签:NLP 每个 Python 代码 文档 https 自然语言 com




每个人都应该知道的5个NLP代码库_深度学习


这些软件包可处理多种NLP任务,例如词性(POS)标注,依存分析,文档分类,主题建模等等。

NLP库的基本目标是简化文本预处理。

目前有许多工具和库用于解决NLP问题……但是只要掌握了其中的一些基本知识,就可以掌握相关基本知识。这就是为什么只介绍其中最常用的五个Python NLP库的原因。

但是在此之前,应该掌握有关NLP的各个组成领域和主题的一些基础知识。

扎实基础

对于学习自然语言处理的理论基础,网络上有丰富的资源可以学习:

斯坦福课程 — 深度学习中的自然语言处理(http://web.stanford.edu/class/cs224n/

· Deeplearning.ai专业化 - 自然语言处理专业(https://www.coursera.org/specializations/natural-language-processing

适用于基础知识的最佳书籍(又名NLP圣经) — 自然语言处理,语音识别和计算语言学导论(https://web.stanford.edu/~jurafsky/slp3/

另一本不错的参考书 - 统计自然语言处理的基础(https://nlp.stanford.edu/fsnlp/

1. Spacy

spaCy 是Python中比较出名,专门用于自然语言处理的库。它有助于实现最先进的效率和敏捷性,并拥有活跃的开源组织积极贡献代码。

加分项:

· 与所有主要的深度学习框架很好地结合,并预装了一些出色且有用的语言模型

· 由于Cython支持,速度相对较快

使用spaCy最适合做的事情

1. 词性(POS)标注:这是给单词标记制定语法属性(例如名词,动词,形容词,副词等)过程。

2. 实体识别:将文本中发现的命名实体标记到预定义实体类型。

3. 依存分析:分配语法依存标签,描述各个标记(例如主题或客体)之间的关系。

4. 文本分类:为整个文档或文档的一部分分配类别或标签。

5. 句子边界检测(SBD):查找和分割单个句子。


每个人都应该知道的5个NLP代码库_Python_02


官方课程

更多资源

一篇不错的博客文章,包括安装过程和其他Spacy用法(入门博客):使用Python中的spaCy进行自然语言处理(https://realpython.com/natural-language-processing-spacy-python/

Python Spacy简介(视频)— 视频讲座和教程(https://realpython.com/natural-language-processing-spacy-python/

2. NLTK

NLTK是目前可用的最优秀的NLP模型训练库之一。该库是NLP入门python库。它是NLP的初学者常用的库。它具有许多预先训练的模型和语料库,可帮助我们非常快速地分析事物。

加分项:内置支持数十种语料库和训练完备的模型

使用NLTK可以实现一下需求:

1. 推荐:可以基于相似性来推荐内容。

2. 情感分析:通过自然语言处理来衡量人们的观点倾向

3. Wordnet [1]支持:我们可以使用Synset 在WordNet中查找单词。因此可以访问许多单词的同音异义词,上位词,同义词,定义,词族等

4. 机器翻译:用于将源语言翻译成目标语言

其他资源

学习NLTK的最佳资源是官方的教材:《使用自然语言工具包分析文本》(https://www.nltk.org/book/

相关文章整理:Python的NLTK(自然语言工具包)教程(https://www.guru99.com/nltk-tutorial.html

Wordnet文档— WordNet 3.0参考手册(https://wordnet.princeton.edu/documentation

与spaCy专注于提供用于生产用途的软件不同,NLTK被广泛用于教学和研究— Wikipedia

3.Transformers



来自Transformers GitHub Repo

该Transformers库是开源,基于社区的信息库,使用和共享模型基于Transformer结构[2]如Bert[3],Roberta[4],GPT2 [5],XLNet [6],等等

该库提供自然语言理解(NLU)和自然语言生成(NLG)任务预训练模型下载。

加分项:超过32种采用100种以上语言的训练的预训练模型,以及TensorFlow 2.0和PyTorch之间的深度互操作性。最适合深度学习。

Transformers可以做到一下事情

1. 摘要生成:摘要是将文本/文章摘要为较短文本的任务。

2. 翻译:将文本从一种语言翻译成另一种语言的任务。

3. 文本生成:基于上下文,生成连贯的下文。

4. 抽取式问答:从给定问题的文本中提取答案的任务。

相关资源:

· 官方文档-HuggingfaceTransformers(https://huggingface.co/transformers/

使用BERT,HuggingFace和AWS Lambda构建问题解答API – 使用HuggingFace和AWS Lambda的无服务器BERT(https://towardsdatascience.com/serverless-bert-with-huggingface-and-aws-lambda-625193c6cc04

了解如何微调BERT以进行情感分析— 使用BERT和Transformers进行情感分析(https://www.curiousily.com/posts/sentiment-analysis-with-bert-and-hugging-face-using-pytorch-and-python/

4. Gensim

Gensim是一个Python库,专门用于通过向量空间建模和主题建模工具包来识别两个文档之间的语义相似性

顺便说一下,它是“ Generate Similar”(Gensim)的缩写:)

优点:高水平的处理速度和可以处理大量文本。

Gensim适合处理的需求:

1. 分布式计算:它可以在计算机集群上运行隐语义分析和隐Dirichlet分配。(可以处理大量数据的原因)

2. 文档索引:将信息与文件或特定标签相关联的过程,以便以后可以轻松检索

3. 主题建模:自动聚类单词group和定义一组文档的相似表达式。

4. 相似性检索:处理文档存储库中相似信息的组织,存储,检索和评估(此处为文本信息)

资源

· 官方API文档-API参考(https://radimrehurek.com/gensim/apiref.html

· 官方教程- 核心教程(https://radimrehurek.com/gensim/auto_examples/

使用Gensim LDA进行分层文档聚类— 使用Python进行文档聚类(http://brandonrose.org/clustering#Latent-Dirichlet-Allocation

安装,处理等入门教程— 适用于NLP的Python:使用Gensim库(https://stackabuse.com/python-for-nlp-working-with-the-gensim-library-part-1/

5. Stanza

Stanza将许多准确而有效自然语言处理工具收集在一起,组成工具包。从原始文本到句法分析和实体识别,Stanza将最新的NLP模型引入语言处理中。

该工具包建立在PyTorch库的之上,并支持使用GPU和预训练的神经模型。

此外,Stanza包括一个CoreNLP Java包的Python接口,并从那里继承了附加功能。

优点:快速,准确,并且能够支持几种主要语言。适用于生产部署环境。

资源:CoreNLP的Python包装器列表(http://stanfordnlp.github.io/CoreNLP/other-languages.html#python

Stanza适合处理的需求:

1. 形态特征标记:对于句子中的每个单词,Stanza都会评估其普遍的形态特征(例如,单身/复数,第一/第二/第三人称等)。

2. 多词令牌扩展:将句子扩展成句法词,作为下游处理的基础。

这五个库的固有特性使其成为依赖于机器对人类表达的理解的所有项目的首选。

参考文献

1. WordNet简介:在线词汇数据库 — George A. Miller等。1993年(https://wordnetcode.princeton.edu/5papers.pdf

2. Attention Is All You Need — Vaswani等人,2017。(https://arxiv.org/abs/1706.03762)

3. BERT:用于语言理解的深度双向Transformers的预训练 — Devlin等人,2018年。(https://arxiv.org/abs/1810.04805

4. RoBERTa:一种经过严格优化的BERT预训练方法 — Liu等,2019年。(https://arxiv.org/abs/1907.11692)

5. 语言模型是无监督的多任务学习者(GPT2) — Radford等人,2019年。(https://cdn.openai.com/better-language-models/language_models_are_unsupervised_multitask_learners.pdf

6. XLNet:用于语言理解的广义自回归预训练 — Yang等人,2019年。(https://arxiv.org/abs/1906.08237)

7. Stanza:适用于多种人类语言的Python自然语言处理工具包 — Peng等人,2020年。(https://arxiv.org/abs/2003.07082)


标签:NLP,每个,Python,代码,文档,https,自然语言,com
From: https://blog.51cto.com/u_13046751/6538934

相关文章

  • 深度学习计算机视觉相关代码可复现论文整理分享
    因此,作为【论文复现项目】的补充,本项目的宗旨也是让世界上没有难读的论文。目录内容截图......
  • Tensorflow 2.0历史最全资源中文版整理分享-教程、博客、代码和视频教程
        目录    TensorFlow2.0有哪些优势?    官方网站    介绍    SampleCodes/项目        o基础项目        o特定模型/任务(例如GAN,RL,NLP等)            强化学习            GAN            自然语言处......
  • Python播放GIF图片(ChatGPT代码参考)
    在网上找了好几个方法,最后还是出现各种问题,解决不了播放GIF的功能。最后,通过ChatGPT给出了简单明了的方案(使用第三方库imageio和matplotlib.animation来实现),调试直接通过。但有小瑕疵,就是显示gif时隐藏掉坐标轴的功能无效,于是再做了一下优化。 [最终代码]显示GIF动画:imp......
  • (3)基于 TCP 协议实现服务端执行代码将结果反馈给客户端
    基于TCP协议实现服务端执行代码将结果反馈给客户端TCP协议是流式协议:在数据传输过程中大量数据的传入会造成数据的丢失和不完整解决数据传输过程中的问题:自定义协议应用:基于网络上传和下载文件socketserver:基于模块实现并发服务端满足的条件一直对外提供服务并......
  • 代码随想录算法训练营第十五天| 110.平衡二叉树 (优先掌握递归) 257. 二叉树的所有路径
     110.平衡二叉树(优先掌握递归)难点:要求每个节点的左右字数的高度相减<=1,因此,需要对每个节点都进行检查,难就难在怎么获得任意节点的高度其中递归是最简单的: 1intisB_cursor(TreeNode*node,bool&isBalance)2{3if(isBalance==false)return0;4if......
  • Barbara Plank-NLP模型的跨语言/跨领域迁移-经验分享
        迁移学习(或者说多任务学习、领域自适应)在自然语言处理任务中普遍存在,比如说机器翻译任务中多语言翻译问题。    自然语言领域中迁移分为Transductive迁移和Inductive迁移两类:    Transductive迁移分为跨领域的迁移(领域变换)和跨语言迁移(领域交叉学习)两类。    I......
  • CMU新课-《神经网络与NLP 2020春》视频及ppt分享
    课程介绍    神经网络促进了语言建模的快速发展,并且已被用于优化很多其他NLP任务,甚至解决很多过去不容易的新问题。本课程将首先对神经网络进行简要概述,然后主要讲解如何将神经网络应用于自然语言问题。每个部分都将以自然语言任务入手,介绍一个特定的问题或现象,描述为何难以建......
  • js:highlight.js实现代码的语法高亮
    highlight.jsSyntaxhighlightingfortheWeb译文:highlight.js为Web突出显示语法文档https://highlightjs.org/使用方式1、方式一:cdn<linkrel="stylesheet"href="http://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.7.0/styles/atom-one-da......
  • Windows OOBE(Out-of-Box Experience)是指在首次启动 Windows 操作系统时,用户会遇到的设
    WindowsOOBE(Out-of-BoxExperience)是指在首次启动Windows操作系统时,用户会遇到的设置和配置过程。每个Windows版本的OOBE提供了不同的功能和更新,以下是各个版本的一些主要特点和改进:Windows7:用户可以选择地区、输入法和键盘布局等设置。提供了简化的用户账户创建和密码......
  • CV、NLP、语音识别深度学习模型部署(model serving)平台及项目整理分享
       什么是模型服务?    在部署ML模型时,数据科学家或工程师必须根据他们的应用场景做出选择。如果他们需要大量的预测,并且延迟不是问题,通常会选择批量处理,向模型提供大量数据并将预测结果写入表中。如果他们需要低延迟的预测,例如响应应用程序中的用户操作,最好的方式是将ML模......