Datawhale 2024 年 AI 夏令营 基于术语翻译的机器学习入门知识
m0_64253898 2024-07-22 09:31:03 阅读 68
目录
一、神经网络模型
1.seq2seq
2.RNN
二、相关库
1.torchtext
2.jieba
3.BLUE
4.spacy
一、神经网络模型
1.seq2seq
本次学习采用seq2seq模型
seq2seq:RNN的变体,序列到序列模型,即Encoder-Decoder模型
特点:输入和输出序列不定长
实现办法:转化为定长变量C,作为连接两者的桥梁
参考链接:https://blog.csdn.net/zhuge2017302307/article/details/119979892
2.RNN
RNN循环神经网络,字面意思,循环
RNN详解 什么是循环神经网络 (RNN)? | IBM(RNN)
专门处理序列数据的神经网络,使数据在网络的环状连接中循环传递的环状连接模型,其循环在于已产生的输出可以对其他输出产生影响。
问题:长范围依赖关系,导致梯度消失和梯度爆炸问题
解决办法:LSTM和GRU,RNN的变体
解析通俗易懂 LSTM与GRU:原理、结构与实践
LSTM:新增门控机制解决长程依赖关系,核心是细胞状态,三个门 :输入门、遗忘门、输出门
GRU:LSTM的简化,两个门:更新门、重置门。相较于LSTM参数较少,效率提高
二、相关库
本次task涉及到几个库torchtext,jieba,sacrebleu,spacy
torchtext 文本预处理
jieba中文词分
sacrebleu一种bleu评估方式
spacy分词库,支持多种语言
tokenizer:执行分词操作,一种文本预处理器,将文本转化为序列,将序列进行向量化,输入模型进行处理
文本预处理利器
导入库及创建实例:
from keras.preprocessing.text import Tokenizer#导入类
#若没有keras,执行pip语句安装
#pip install keras
tokenizer = Tokenizer()#创建实例
定义:
keras.preprocessing.text.Tokenizer(num_words=None,
filters='!"#$%&()*+,-./:;<=>?@[\]^_`{|}~ ',#所要过滤的字符 code>
lower=True, #是否全部转换为小写:是
split=' ', #设置分隔符:(空格)code>
char_level=False, #是否认为字符为字母:否
oov_token=None, #替换不在词汇表中的单词:不替换
document_count=0)#文档数目(统计词频)
方法:
(1)构建词汇表,输入训练文本
fit_on_texts
(2)文本数据转化为序列
texts_to_sequences
(3)文本转化为指定模式特征矩阵
texts_to_matrix
(4)输入已预处理的转化为整数序列的文本数据
fit_on_sequences
(5)将分割好的单词序列向量化
sequences_to_matrix
1.torchtext
首先在了解torchtext之前应该先熟悉pytorch(官方教程)
Torch:与Numpy类似,张量(Tensor)操作库
pytorch是基于Torch的python开源机器学习库
torchtext 简化数据加载和预处理流程。
安装:
pip install torchtext
导入:
import torch
from torchtext import data, datasets
field :原始文本转化为张量
from torchtext.data import Field
TEXT = Field(tokenize='spacy', lower=True)code>
A = ["python is wanderful", "I love python"]
B= [TEXT.preprocess(text) for text in A]#预处理
print(B)
Dataset:定义数据结构和加载方式,文本操作
from torchtext.data import IMDB
def load_imdb_dataset(path):
train_data, test_data = IMDB.splits(path)
return train_data, test_data
迭代器:
Iterator 最基础迭代器
BucketIterator 按长度自动分组,减少填充浪费
BPTTIterator 处理时间序列数据,分割成长度固定的序列
参考链接:
用法示例及完整代码
https://blog.csdn.net/nlpuser/article/details/88067167TorchText
2.jieba
jieba:流行的中文分词库,自定义字典,开源
下载:
<code>pip install jieba
引用:
import jieba
三种模式:
精确模式 默认,最准确
全模式 所有组合
搜索引擎模式 两者结合,兼顾准确和组合
import jieba
text = "大家一起来玩象棋"
seg_list_exact = jieba.cut(text, cut_all=False)
print("精确模式分词:", "/".join(seg_list_exact))# 精确模式
seg_list_full = jieba.cut(text, cut_all=True)
print("全模式分词:", "/".join(seg_list_full))# 全模式
seg_list_search = jieba.cut_for_search(text)
print("搜索引擎模式分词:", "/".join(seg_list_search)) # 搜索引擎模式
参考链接:
jieba的使用
https://blog.csdn.net/codejas/article/details/80356544
3.sacrebleu
一种用于机器化评估的自动化工具,支持复杂评估方法,简化BLEU分数计算过程
BLEU
一种机器翻译测评方法,基于N-gram匹配方法
精度
惩罚因子
参考链接:
BLEU算法详解
https://www.cnblogs.com/by-dream/p/7679284.html
4.spacy
spacy语言分词器,70+语言,甚强大,与jiabe类似
安装:
清华源
<code>pip install spacy -i https://pypi.tuna.tsinghua.edu.cn/simple
豆瓣源
pip install spacy -i https://pypi.douban.com/simple
下载安装语言模型:(以英文为例)
python -m spacy download en_core_web_sm
参考链接:
spaCy入门与实战
https://blog.csdn.net/qq_33578950/article/details/130157831
AI工具:
讯飞星火大模型,可进行代码解析,使用方便,便于理解
星火AI
本文标签
声明
本文内容仅代表作者观点,或转载于其他网站,本站不以此文作为商业用途
如有涉及侵权,请联系本站进行删除
转载本站原创文章,请注明来源及作者。