NLP学习1

news/2024/9/19 8:14:28/文章来源:https://www.cnblogs.com/qbning/p/18416580

使用书籍《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]=Ifor i in range(n+1):dp[i][0]=ifor 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]elsedp[i][j] = min(dp[i][j-1],dp[i-1][j],dp[i-1][j-1])+1return 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)')

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

9、const修饰指针

*代表指针,这样有助于记忆和区别这三种

day1闯关作业小结[linux基础知识]

完成SSH连接与端口映射并运行hello_world.py 1.进入InternStudio https://studio.intern-ai.org.cn/, 创建个人开发机2.使用密码进行SSH远程连接并进行端口映射3.运行hello_world.py

白云龙期货投资-第三讲

反转形态**头肩底(顶) 双底(顶) 三重底(顶) 圆弧底(顶)**持续形态**三角形 旗形 楔行 扩散三角形 收缩三角形**K线形态(反转形态,持续形态) 反转形态 头肩底(顶) 双底(顶) 三重底(顶) 圆弧底(顶) 持续形态 三角形 旗形 楔行 扩散三角形 收缩三角形 头肩顶头肩底双底(双顶)下…

java的方法和数组

什么是方法呢? 就类似c语言的函数 返回类型 方法名 形式参数列表 方法名最好使用小驼峰的形式,在java中方法不可以嵌套使用, 方法的调用: 就是在main方法里面写上调用的方法名加上需要传输的值,创建一个和方…

mongo集群同步数据异常,手动同步节点副本数据

转载请注明出处: 数据同步方案当副本集节点的复制进程落后太多,以至于主节点覆盖了该节点尚未复制的 oplog 条目时,副本集节点就会变为“陈旧”。节点跟不上,就会变得“陈旧”。出现这种情况时,必须删除副本集节点的数据,然后执行初始同步,从而完全重新同步该节点。 Mon…

7、函数分文件编写

1、swap.h2、swap.cpp3、使用

三、redis之strings类型

strings是redis中使用最多的类型。 redis官网中是这么描述strings的: Redis strings store sequences of bytes, including text, serialized objects, and binary arrays. 可以看到Redis strings保存的是sequences of bytes,也就是字节序列。不仅可以保存字符串,而且还可以…

排队论——数学模型和绩效指标精解

排队论最早由丹麦工程师Agner Krarup Erlang于1910年提出,旨在解决自动电话系统的问题,成为话务理论的奠基石。Erlang通过研究电话呼叫的随机到达和服务时间,推导出著名的埃尔朗电话损失率公式,用于计算电话系统的呼叫阻塞率,揭示了排队现象的本质。Erlang之后,排队论得到…

本地文件包含漏洞详解与CTF实战

1. 本地文件包含简介 1.1 本地文件包含定义 本地文件包含是一种Web应用程序漏洞,攻击者通过操控文件路径参数,使得服务器端包含了非预期的文件,从而可能导致敏感信息泄露。 常见的攻击方式包括:包含配置文件、日志文件等敏感信息文件,导致信息泄露。 包含某些可执行文件或…

代码随想录算法 - 二叉树6

题目1235. 二叉搜索树的最近公共祖先 给定一个二叉搜索树, 找到该树中两个指定节点的最近公共祖先。 百度百科中最近公共祖先的定义为:“对于有根树 T 的两个结点 p、q,最近公共祖先表示为一个结点 x,满足 x 是 p、q 的祖先且 x 的深度尽可能大(一个节点也可以是它自己的祖…

6、函数的声明

程序是一行行执行,我们可以在前面进行函数声明,然后将函数的定义放在程序末尾。 声明可以写多次,但是定义只能写一次。

如何基于Java解析国密数字证书

一、说明 随着信息安全的重要性日益凸显,数字证书在各种安全通信场景中扮演着至关重要的角色。国密算法,一、说明 随着信息安全的重要性日益凸显,数字证书在各种安全通信场景中扮演着至关重要的角色。国密算法,作为我国自主研发的加密算法标准,其应用也愈发广泛。然而,在…