NLP 快速入门

news2025/7/25 8:58:00

文章目录

    • 前言
    • NLP 历史回顾
    • NLP任务
    • 语料的标注
      • AI语料标注师岗位职责
    • Transformers
    • Hugging Face
    • 模型
    • 中文文本分类
      • 使用 NLTK 进行文本分类
    • 参考链接
    • 开源NLP

前言

学习NLP,解决两个问题:

  • 如何使用别人训练好的模型?
  • 如何基于别人的模型,加入自己的数据,训练得到自己的模型?

NLP 历史回顾

文法规则->统计语言学->神经网络方法

在这里插入图片描述
2017年谷歌提出了Transformer架构模型,2018年底,基于Transformer架构,谷歌推出了bert模型,bert模型一诞生,便在各大11项NLP基础任务中展现出了卓越的性能(一个排名榜单),现在很多模型都是基于或参考Bert模型进行改造。
在这里插入图片描述
Transformer 架构是自然语言处理领域最近几乎所有主要发展的核心。这种 Transformer 架构的性能优于 RNN 和 CNN(卷积神经网络)。而且训练模型所需的计算资源也大为减少。

BERT (Bidirectional Encoder Representations)双向编码器表示是第一个无监督、深度双向的自然语言处理模型预训练系统。它只使用纯文本语料库进行训练。

NLP任务

目前NLP可以处理的任务主要包含以下几个大类:问答系统,文档摘要,机器翻译,语音识别,文档分类等。
在这里插入图片描述

语料的标注

标注工具的选择,市面上有多种标注工具可供选择,例如MAE, Callisto,Brandeis Annotation Tool,Prodigy(收费)等。

AI语料标注师岗位职责

1.负责语料库的收集、整理和分类工作
2.根据需求完成数据预处理任务
3.使用自然语言处理技术对语料进行解析和分析,并产生文本数据
4.通过分析数据和算法实现自动化文本分类模型训练
5.持续优化模型性能和精度,提升效果
6.编写相关文档资料等,协助其他人员使用语料库
7.维护语料库并进行定期更新和维护

Transformers

Transformers 是由 Hugging Face 开发的一个 NLP 包,支持加载目前绝大部分的预训练模型。随着 BERT、GPT 等大规模语言模型的兴起,越来越多的公司和研究者采用 Transformers 库来构建 NLP 应用。

Hugging Face

Hugging Face Hub 平台为自然语言处理社区提供了一个中心化的地方,使人们可以共享和发现各种自然语言处理模型和数据集。该公司主要是提供nlp服务,同时它提供了一个很🐂的开源社区,这里可以找到大部分开源model。其对外提供了一个库 Transformers,Transformers 提供了数以千计的预训练模型,支持 100 多种语言的文本分类、信息抽取、问答、摘要、翻译、文本生成,并且Transformers 与 PyTorch、 TensorFlow 无缝整合。
功能包括:

  • 模型
  • 数据集
  • 模型验证
  • 模型部署等
    使开发人员可以更轻松地管理和使用自然语言处理模型,任何人都可以利用机器学习进行探索、实验、合作和构建技术。

模型

中文文本分类

中文文本分类,TextCNN,TextRNN,FastText,TextRCNN,BiLSTM_Attention, DPCNN, Transformer, 基于pytorch,开箱即用。

使用 NLTK 进行文本分类

使用朴素贝叶斯分类器训练:

from nltk.classify import NaiveBayesClassifier


train_texts = [
    # ...
]
train_labels = [
    # ...
]

train_features = [extract_feature(text) for text in train_texts]
train_samples = list(zip(train_features, train_labels))
classifier = NaiveBayesClassifier.train(train_samples)

评估:

from nltk.classify import accuracy

test_texts = [
    # ...
]
test_labels = [
    # ...
]

test_features = [extract_feature(text) for text in test_texts]
test_samples = list(zip(test_features, test_labels))
acc = accuracy(classifier, test_samples)

参考链接

  • https://transformers.run/
  • huggingface github
  • Hugging Face
  • 汉语自然语言处理
  • 汉语自然语言处理-BERT的解读语言模型预训练
  • 前端工程师如何快速使用一个NLP模型
  • A Survey of Large Language Models
  • 预训练模型下载
  • 从零开始训练GPT
  • 知乎看山杯第一名解决方案
  • 用深度学习(CNN RNN Attention)解决大规模文本分类问题 - 综述和实践
  • 知乎“看山杯” 夺冠记

开源NLP

  • PaddleNLP
  • HanLP

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1156908.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

SpringMVC Day 09 : 异常处理

前言 在Web应用程序开发中,我们经常会遇到各种各样的错误和异常情况。那么如何有效地捕获和处理这些异常呢?本文将介绍Spring MVC中的异常处理机制,帮助您构建更稳定、可靠的Web应用程序。 一、前期准备 1、新建项目,结构如下 2…

【问题解决】 avue dicUrl 动态参数加载字典数据(已解决)

事情是这样的,用了avue-crud组件,配置了一个option。     现在有一列source属性要展示为 多选的下拉框 ,当然问题不在这而在于,选项是需要根据同级别属性id去拿的。也就是option.column.source 的配置中 需要该行的option.col…

V90PN总线伺服梯形加减速速度控制(标准报文1应用)

V90 PN总线伺服速度控制应用可以利用标准报文1和SinaSpeed功能块实现,具体代码介绍请查看下面相关文章链接,这里不再赘述。 速度随动控制 V90伺服PN总线速度随动控制(手摇轮功能)-CSDN博客文章浏览阅读40次。V90PN总线控制相关内容,请参考下面文章链接:博途1200/1500PLC …

我和云栖有个约会

开端,似曾相识的云栖 2023年阿里云云栖大会在云栖小镇举办,云栖小镇?在2020年的时候,曾经来过这里参加竞赛。时隔三年,身份变换,以开发者的身份,收到阿里云开发者社区的邀请,正好有…

简单易懂的讲解一下什么是自动化测试?

1.什么是自动化测试 以程序测试程序,以代码代替思维,以脚本的运行代替手工测试。自动化的测试涵盖了:功能(黑盒)自动化测试,功能(白盒)自动化测试,性能测试,…

如何在Linux上安装JDK、Tomcat和MySQL以及部署后端项目

目录 前言 一、JDK和Tomcat的安装 1.JDK安装 2.Tomcat安装 二、安装MySQL 三、后端接口部署 1.将ssh前后端分离项目进行部署 ​2.将单体项目进行部署 3.将ssm前后端分离项目进行部署并修改端口号 前言 随着现代软件开发的快速发展,越来越多的企业和个人开始…

【C语法学习】6 - gets()函数

文章目录 1 函数原型2 参数3 返回值4 读取机制5 示例 1 函数原型 gets():从标准输入流stdin读取一个字符串存储到str指向的内存空间,函数原型如下: char *gets(char *str)2 参数 gets()函数的参数只有一个str: str是一个指向c…

如何借助知乎平台开展问答口碑营销?

知乎作为一个开放性的问答社区,把各行各业的用户链接在一起,用户可以在知乎平台分享自己的经验,也可以在知乎上搜索自己感兴趣的问题,因此就会有很多企业想要在知乎上进行问答营销推广自己的产品,但这些企业自己亲身试…

【C语法学习】7 - fgets()函数

文章目录 1 函数原型2 参数3 返回值4 读取机制5 比较6 示例6.1 示例16.2 示例26.3 示例3 1 函数原型 fgets():从指定流stream读取一个字符串存储到str指向的内存空间,函数原型如下: char *fgets( char *str, int n, FILE *stream );2 参数 …

一篇文章认识【性能测试】

一、 性能测试术语解释 1. 响应时间 响应时间即从应用系统发出请求开始,到客户端接收到最后一个字节数据为止所消耗的时间。响应时间按软件的特点再可以细分,如对于一个 C/S 软件的响应时间可以细分为网络传输时间、应用服务器处理时间、数据库服务器…

一文带你了解自动化测试是什么?

本章主要讲解自动化测试的含义、分类、项目使用,以及自动化测试工具的优势。 一、自动化测试概述 1、什么是自动化测试? 自动化测试是软件测试活动中的一个重要分支和组成部分。随着软件产业的不断发展,市场对软件周期的要求越来越高&…

Android页面周期、页面跳转

1.什么是Activity? Activity是Android的四大组件之一,它是一种可以包含用户界面的组件,主要用于和用户进行交互。Activity用于显示用户界面,用户通过Activity交互完成相关操作,一个APP允许有多个Activity。 2.Activi…

CRM客户管理系统助力企业全流程精细化运营

效率是每一家企业都十分关注的重点。要想提高工作效率就要鄙弃粗放的管理模式,采用CRM客户管理系统赋能企业全流程精细化运营,让销售环节高速运转起来。 全流程精细化运营从哪些方面出发? 每一家企业的内部流程都不尽相同,客户管…

mfc140u.dll丢失怎么修复,mfc140u.dll文件有什么作用

今天我想和大家分享的是关于mfc140u.dll文件丢失的解决方法。在我们使用电脑的过程中,有时候会遇到一些错误提示,其中比较常见的就是“无法找到mfc140u.dll文件”。那么,这个文件是什么呢?它有什么作用呢? 首先&#…

双轮差速模型机器人通过线速度、角速度计算机器人位姿

已知上一时刻机器人位置P_OLD (x,y,),机器人当前时刻的线速度和角速度(v,),短时间内t内,机器人在线性部分和非线性部分的增量为 线性部分: 非线性部分: 由于可能非常小,导致非线性部分数值不稳定&#xf…

关于preempt count的疑问

Linux中的preempt_count - 知乎 https://www.cnblogs.com/hellokitty2/p/15652312.html LWN:关于preempt_count()的四个小讨论!-CSDN博客 主要是参考这些文章 之前一直认为只要是in_interrupt()返回非0值,那么就可以认为当前在中断上下文。即…

Spring Cloud Alibaba 之 Sentinel

系列文章目录 第一章 Java线程池技术应用 第二章 CountDownLatch和Semaphone的应用 第三章 Spring Cloud 简介 第四章 Spring Cloud Netflix 之 Eureka 第五章 Spring Cloud Netflix 之 Ribbon 第六章 Spring Cloud 之 OpenFeign 第七章 Spring Cloud 之 GateWay 第八章 Sprin…

小黑子—spring:第四章 事务控制与整合web环境

spring入门4.0 四 小黑子基于AOP的声明式事务控制1. Spring事务编程概述2. 搭建测试环境3. 基于XML声明式事务控制3.1 入门操作3.2 声明式事务控制详解 4. 基于注解的声明式事务控制 五 小黑子用spring进行web环境整合5. JavaWeb三大组件作用及其特点6. Spring整合web环境的思路…

Java作业一

编写程序实现如下界面效果: import java.util.Scanner;public class Test01 {public static void main(String[] args) {String name;Scanner input new Scanner(System.in);System.out.println("请输入您的姓名:");name input.nextLine();S…

算法学习打卡day39|动态规划:62.不同路径 、 63. 不同路径 II

62.不同路径 力扣题目链接 题目描述: 一个机器人位于一个 m x n 网格的左上角 (起始点在下图中标记为 “Start” )。 机器人每次只能向下或者向右移动一步。机器人试图达到网格的右下角(在下图中标记为 “Finish” )。…