首页 > 其他分享 >NLP学习1

NLP学习1

时间:2024-09-16 20:46:11浏览次数:1  
标签:NLP 编码 字符 utf8 学习 distilbert sio dp

使用书籍《pytroch自然语言处理入门与实战》

1.常用库

numpy 科学计算

matplotlib 图表可视化

scikit-learn 数据挖掘和数据分析

nltk 包含50种语料和常见算法

spacy 实体命名,预训练词向量 需要先安装对应语言的模型

jieba 中文分词

pkuseg pku论文的中文分词

wn 加载使用wordnet的包

2.python处理字符串

1.str类型

不可变对象

ord()获得字符编码值

chr()编码值转换字符

split+join转换为列表

常用方法

find 返回第一次出现下标
rfind 倒数第一次出现下标
count 出现次数
startswith 是否以某串开头
endswith 是否以某串结尾
isdigit 是否为数字
isalpha 是否为字母
isupper 是否为大写字母
istrip 删除开头指定字符
rstrip 删除结尾指定字符
strip 删除首尾指定字符
replace 字符替换
center 指定宽度字符串居中

2.bytes类型

>>> byte1 = b"hello"

与字符串转换

>>> print(str(byte1))
b'hello'
>>> print((byte1.decode()))
hello

str可以用encode指定一种编码方式编码为byte

3.StringIO类

可变

>>> import io
>>> sio = io.StringIO()
>>> sio.write('hello')
5
>>> sio.write(' ')
1
>>> sio.write('world')
5
>>> print(sio.getvalue())
hello world
>>> sio.close()

3.python 处理语料

1.读取语料

txt文本

f = open('text.txt',encoding='utf8') #用utf8编码打开文件
words = [] #定义空的list用于存放所有词语
for l in f:
    word = l.strip().splt(' ') # 删除行尾换行符,切分单词和中文
    words.append(word)
f.close() #关闭文件

csv

import csv
f = open('file.csv',encoding='utf8') #用utf8编码打开文件
reader = csv.reader(f)
lines = [] 
for l in reader:
    lines.append(l)

json

import json
f = open('file.json', 'r', encoding='utf8')  # 用utf8编码以读取模式打开文件
data = json.load(f)  # 直接读取JSON文件内容

2,去重

使用set去重(add添加,in判断是否在内),大数据使用BitMap或Bloom Filter

3.停用词

去GitHub找stopwords

4.编辑距离

衡量两个字符串之间的差异。定义了三种操作:插入一个字符,删除一个字符,替换一个字符,编辑距离就是一个字符串变成另一个字符串的最小操作,可以使用dp来进行计算

def minDistance(word1:str,word2:str)->int:
    n = len(word1)
    m = len(word2)
    dp = [[0]*(m+1) for _ in range(n+1)]
    for i in range(m+1):dp[0][i]=I
    for i in range(n+1):dp[i][0]=i
    for i in range(1,n+1):
        for j in range(1,m+1):
            if word1[i-1] == word2[j-1]:
				dp[i][j] = dp[i-1][j-1]
            else
            	dp[i][j] = min(dp[i][j-1],dp[i-1][j],dp[i-1][j-1])+1
    return dp[-1][-1] #最后一个元素

5.文本规范化

6.分词

7 .词频-逆文本频率

8.独热编码

4.PyTorch & Transformers的安装

PyTorch

【布客】PyTorch 中文翻译 (apachecn.org)

英伟达显卡

pip3 install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu118

CPU

pip3 install torch torchvision torchaudio

检查

>>> import torch
>>> torch.version
<module 'torch.version' from '\\.conda\\envs\\nlp\\Lib\\site-packages\\torch\\version.py'>
>>> torch.cuda.is_available
<function is_available at 0x000001F4D67EE0C0>

Transformers

pip install transformers

检查

>>> from transformers import pipeline
>>> print(pipeline('sentiment-analysis')('I love you'))
No model was supplied, defaulted to distilbert/distilbert-base-uncased-finetuned-sst-2-english and revision af0f99b (https://huggingface.co/distilbert/distilbert-base-uncased-finetuned-sst-2-english).
Using a pipeline without specifying a model name and revision in production is not recommended.
[{'label': 'POSITIVE', 'score': 0.9998656511306763}]

如果报错,可能是网络原因

requests.exceptions.SSLError: (MaxRetryError("HTTPSConnectionPool(host='huggingface.co', port=443): Max retries exceeded with url: /distilbert/distilbert-base-uncased-finetuned-sst-2-english/resolve/main/config.json (Caused by SSLError(SSLCertVerificationError(1, '[SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: unable to get local issuer certificate (_ssl.c:1006)')))"), '(Request ID: cf626477-ad07-40c9-b4ce-dcf8371fe213)')

标签:NLP,编码,字符,utf8,学习,distilbert,sio,dp
From: https://www.cnblogs.com/qbning/p/18416580

相关文章

  • 如何学习JAIN-SLEE
    要系统地学习JAIN-SLEE(JavaAPIforIntegratedNetworks–ServiceLogicExecutionEnvironment),你需要从基础概念到高级应用逐步深入学习。以下是详细的入门学习路径和顺序,涵盖必要的知识点、学习顺序和步骤,帮助你快速掌握JAIN-SLEE。1.掌握基础知识JAIN-SLEE是......
  • 鸿蒙应用开发快速学习指南(初级篇-7 从网络获取数据)
    从网络获取数据第七课:从网络获取数据本节课的内容主要是如何使用http请求模块,依旧是从习题开始。判断题在http模块中,多个请求可以使用同一个httpRequest对象,httpRequest对象可以复用:正确(True)错误(False)从没有听过这种说法,选错误。拿下。使用on(type:‘headersRec......
  • CSS学习路线
    CSS学习路线大全及面试常见题目可以归纳为以下几个部分:CSS学习路线大全CSS基础引入CSS的方式:外部样式表、内部样式表、内联样式。CSS选择器:包括ID选择器、类选择器、标签选择器、后代选择器、子选择器、相邻兄弟选择器、兄弟选择器、属性选择器、伪类选择器、伪元素选择器等。CSS属......
  • MQ学习笔记(一)Kafka简介
    什么是MQ?MessageQueue消息队列,在消息的传递过程中保存消息的容器。父亲==》书架《==儿子好处:应用解耦,异步提速,限流削峰使用成本:引入复杂度,最终一致性,高可用性何时使用:生产者不需要从消费者处获得反馈能够容忍短暂的不一致性效果要大于副作用应用场景应用解耦场......
  • java+vue计算机毕设大数据背景下大学生个性化学习系统的构建【源码+开题+论文+程序】
    本系统(程序+源码)带文档lw万字以上文末可获取一份本项目的java源码和数据库参考。系统程序文件列表开题报告内容研究背景随着信息技术的飞速发展,大数据已成为推动社会进步与产业升级的重要力量。在教育领域,大数据技术的应用正深刻改变着传统的教学模式与学习方式。当前,高......
  • jsp传统文化在线学习系统3wm23
    jsp传统文化在线学习系统3wm23本系统(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。系统程序文件列表项目功能学生,教师,课程分类,课程信息,选择课程,退出课程,学习资源技术要求:   开发语言:JSP前端使用:HTML5,CSS,JSP动态网......
  • C语言学习进阶路线图
    目录一、基础准备1.1.了解计算机基础知识1.2.安装开发环境二、入门学习2.1.学习C语言基本语法2.2.编写简单程序三、进阶概念3.1.函数与模块3.2.数组与字符串3.3.指针基础四、深入探索4.1.指针高级应用4.2.结构体与联合体4.3.文件操作五、高级特性5.1......
  • 小林coding学习笔记(内存页面置换算法)
    缺页中断示意图1在CPU里执行一条查找某个页面A的指令,首先是虚拟内存,会到虚拟内存和物理内存的映射关系的页表中查询。2页表中不存在需要查找的页面A的有效信息。3则触发缺页中断信号给操作系统,操作系统收到缺页中断信号后,就会去磁盘里面查找该页面。4操作系统在磁盘中查......
  • 基于深度学习的干扰识别
    本文是记录我上半年仿真和复现干扰识别的过程,展示的主要是一些需要注意的点以及仿真的相关结果。干扰信号的产生见之前的博客。干扰信号的预处理干扰信号的预处理主要包括功率归一化、短时傅里叶变换(STFT)和RGB图灰度图化。处理过程如下图所示。为什么需要进行功率归一化......
  • 小林coding学习笔记(进程调度算法)
    //进程调度算法进程调度算法是CPU通过进程调度算法决定某个时刻去调用哪个进程到CPU上运行的算法1、先来先服务调度算法每次从就绪队列的队头调度到CPU上运行,直到进程退出或被阻塞,才会继续从队列中调度进程运行。特点:对短作业不利,对长作业有利,无法平衡短作业与长作业。2、最......