深度学习 - 01 - NLP自然语言处理基础

【Python 自然语言处理(NLP)】零基础也能轻松掌握的学习路线与参考资料 了解基本的机器学习算法和常用的机器学习库是 Python 自然语言处理的必要条件。在机器学习领域,掌握一些基本的概念如监督学习、无监督学习、半监督学习、回归分析、分类和聚类算法等。另外,需要学习和使用常用的机器学习库,如Scikit-learn,TensorFlow,PyTorch,Keras等。深度学习的应用已经渗透到了 NLP 的各个方面。同时,需要学习和使用深度学习库,如TensorFlow,PyTorch,Keras等。因为 NLP 涉及到文本处理、语言模型、统计学习、机器学习以及深度学习等方面。 阅读详情

🚀 Day01 - NLP自然语言处理基础

📖 导读:
这是NLP学习的第一天,掌握文本处理的基础能力。


🗺️ 一、文本预处理

1.1 jieba分词器基础

import jieba

# 精确模式(推荐)
text = "我爱自然语言处理技术"
words = jieba.lcut(text)
print(words)
# ['我', '爱', '自然语言', '处理', '技术']

💡 代码解析:

  • jieba.lcut():返回列表形式
  • 精确模式尽量保持词语完整
# 全模式(最细粒度)
words_full = jieba.lcut(text, cut_all=True)
# ['我', '爱', '自', '然', '语', '言', '处', '理', '技', '术']

# 搜索引擎模式
words_search = jieba.lcut_for_search(text)
# ['我', '爱', '自然', '语言', '自然语言', '处理', '技术']

1.2 繁体和自定义词典

# 繁体字典
jieba.set_dictionary('dict.txt.big')

# 添加词汇
jieba.add_word("传智教育")
jieba.add_word("黑马程序员", freq=10, tag='n')

# 从文件加载
jieba.load_userdict("my_dict.txt")

text = "传智教育旗下有黑马程序员"
print(jieba.lcut(text))
# ['传智教育', '旗下', '有', '黑马程序员']

1.3 词性标注

import jieba.posseg as pseg

text = "我爱自然语言处理"
result = pseg.lcut(text)

for word, flag in result:
    print(f"{word}: {flag}")
# 我: r (代词)
# 爱: v (动词)
# 自然语言: n (名词)
# 处理: vn (动名词)

💻 二、文本向量化

2.1 One-Hot编码

from tensorflow.keras.preprocessing.text import Tokenizer

vocabs = ["苹果", "香蕉", "橙子", "葡萄"]
tokenizer = Tokenizer()
tokenizer.fit_on_texts(vocabs)

print(tokenizer.word_index)
# {'苹果': 1, '香蕉': 2, '橙子': 3, '葡萄': 4}

one_hot = tokenizer.texts_to_matrix(vocabs, mode='binary')
print(one_hot)

2.2 Word2Vec

import fasttext

# 训练词向量
model = fasttext.train_unsupervised(
    'corpus.txt',
    model='cbow',
    dim=100,
    epoch=5
)

# 获取向量
vec = model.get_word_vector('苹果')
print(vec.shape)  # (100,)

# 找相似词
similar = model.get_nearest_neighbors('苹果')
print(similar)

2.3 词嵌入Embedding

import torch.nn as nn

embedding = nn.Embedding(num_embeddings=10000, embedding_dim=128)
word_indices = torch.tensor([1, 5, 10])
vectors = embedding(word_indices)
print(vectors.shape)  # (3, 128)

📊 三、文本数据分析

3.1 目标值分布

import pandas as pd
import seaborn as sns

train_df = pd.read_csv('train.tsv', sep='\t')
print(train_df['label'].value_counts())
sns.countplot(x='label', data=train_df)
plt.show()

3.2 句子长度分布

train_df['length'] = train_df['text'].apply(lambda x: len(x))
print(train_df['length'].describe())
sns.boxplot(x='label', y='length', data=train_df)
plt.show()

3.3 词云

from wordcloud import WordCloud

wc = WordCloud(font_path='simhei.ttf').generate(text)
plt.imshow(wc)
plt.axis('off')
plt.show()

🧠 四、RNN循环神经网络

4.1 RNN

import torch.nn as nn

rnn = nn.RNN(input_size=10, hidden_size=20, num_layers=2, batch_first=True)
x = torch.randn(3, 5, 10)
h0 = torch.zeros(2, 3, 20)
output, hn = rnn(x, h0)
print(f"output: {output.shape}")  # (3, 5, 20)

4.2 LSTM

lstm = nn.LSTM(input_size=10, hidden_size=20, num_layers=2, bidirectional=True)
h0 = torch.zeros(4, 3, 20)
c0 = torch.zeros(4, 3, 20)
output, (hn, cn) = lstm(x, (h0, c0))
print(f"output: {output.shape}")  # (5, 3, 40)

4.3 GRU

gru = nn.GRU(input_size=10, hidden_size=20, num_layers=2, bidirectional=True)
output, hn = gru(x, h0)
print(f"output: {output.shape}")  # (5, 3, 40)

🎯 五、注意力机制

import torch.nn.functional as F

class Attention(nn.Module):
    def __init__(self, hidden_size):
        super().__init__()
        self.attn = nn.Linear(hidden_size * 2, hidden_size)
        self.v = nn.Parameter(torch.rand(hidden_size))
    
    def forward(self, hidden, encoder_outputs):
        seq_len = encoder_outputs.size(0)
        hidden = hidden.unsqueeze(0).repeat(seq_len, 1, 1)
        energy = torch.tanh(self.attn(torch.cat([hidden, encoder_outputs], dim=2)))
        energy = energy.permute(1, 2, 0)
        v = self.v.repeat(encoder_outputs.size(1), 1).unsqueeze(1)
        scores = torch.bmm(v, energy).squeeze(1)
        attention_weights = F.softmax(scores, dim=1)
        context = torch.bmm(attention_weights.unsqueeze(1), encoder_outputs.permute(1, 0, 2)).squeeze(1)
        return context, attention_weights

🔥 六、Transformer

6.1 输入处理

from transformers import AutoTokenizer

tokenizer = AutoTokenizer.from_pretrained('bert-base-chinese')
inputs = tokenizer("我爱自然语言处理", return_tensors="pt")
print(inputs)

6.2 完整Transformer

class Transformer(nn.Module):
    def __init__(self, src_vocab, trg_vocab, embed_size=256, num_layers=6, heads=8):
        super().__init__()
        self.encoder = Encoder(embed_size, heads, num_layers)
        self.decoder = Decoder(embed_size, heads, num_layers)
        self.fc_out = nn.Linear(embed_size, trg_vocab)
    
    def forward(self, src, trg):
        enc_out = self.encoder(src)
        dec_out = self.decoder(trg, enc_out)
        return self.fc_out(dec_out)

🚀 七、迁移学习

7.1 FastText

import fasttext

model = fasttext.train_supervised('train.txt', lr=0.1, epoch=5, word_ngrams=2)
pred, prob = model.predict('这个产品太好了!')
print(pred, prob)

7.2 Hugging Face

from transformers import pipeline

classifier = pipeline("sentiment-analysis")
result = classifier("I love this!")
print(result)

7.3 BERT微调

from transformers import AutoModelForSequenceClassification, Trainer, TrainingArguments

model = AutoModelForSequenceClassification.from_pretrained('bert-base-chinese', num_labels=2)
training_args = TrainingArguments(output_dir="./results", num_train_epochs=3, per_device_train_batch_size=16)
trainer = Trainer(model=model, args=training_args, train_dataset=train_data)
trainer.train()

📝 总结

Day01主要学习了:

  • jieba分词
  • 文本向量化
  • 文本数据分析
  • RNN/LSTM/GRU
  • 注意力机制
  • Transformer基础
  • 迁移学习
自然语言处理(NLP)之语义化词向量表示(Word2Vec) 本文介绍了自然语言处理(NLP)中的词向量表示技术Word2Vec。Word2Vec通过将词语映射为向量,使计算机能理解语义。重点讲解了两种模型:Skip-Gram(通过中心词预测上下文)和CBOW(通过上下文预测中心词)。文章详细说明了使用gensim库的两种词向量获取方式:加载公开预训练词向量和自行训练词向量。其中包含词向量加载、维度查看、相似度计算等操作示例,以及使用jieba分词后训练自定义词向量的完整流程。最后介绍了如何保存和加载训练好的词向量模型。这些技术为后续NLP任务提供了基础语义表示。 阅读详情

相关推荐

基于图深度学习的自然语言处理方法和应用

🚀 优质资源分享 🚀 学习路线指引(点击解锁) 知识定位 人群定位 🧡 Python实战微信订餐小程序 🧡 进阶级 本课程是python flask+微信小程序的完美结合,从项目搭建到腾讯云部署上线,打造一个全栈订餐系统。 💛Python量化交易实战💛 入门级 手把手带你打造一个易扩展、更安全、效率更高的量化交易系统 导读: 本次分享的内容为图深度学习在自然语言处理领域的方法与应用,主要内容和素材都来自于我们Graph4NLP团队的一篇调研文章:Graph Neural Netw

weixin_45566993的博客 982

基础NLP | 01 机器学习 深度学习基础介绍

核心目标:建立一个模型(函数),来描述输入(X)和输出(Y)之间的映射关系价值:对于新的输入,通过模型给出预测的输出有一定数量的训练样本输入 和 输出 之间有关联关系输入 和 输出 可以数值化表示,机器学习本质上是在找规律找公式任务需要有预测价值应用文本分类任务输入:文本 输出:类别关系:文本的内容决定了文本的类别机器翻译任务输入:A语种文本 输出:B语种文本关系:A语种表达的意思,在B语种中有对应的方式图像识别任务。

xhxhss的博客 1157

NLP算法具备技能

摘要:好久不看理论,最近把自己学过以及用到过的东西都列了出来,主要是这个大纲体系,详细的内容部分是使用LLM来辅助编写的。 一、大模型 1.1 常用大模型 1.1.1 Qwen   ‌Qwen大模型‌是由阿里巴巴开发的系列大语言模型,最早在2023年8月开源,参数规模从18亿到720亿不等。Qwen系列模型包括基础模型和对话模型,基础模型涵盖多语言数据,对话模型则具备多种能力,如聊天、创作、摘要、信息抽取、翻译、代码生成和数学推理等‌。   Qwen系列模型的参数规模包括18亿(1.8B)、70亿(7B)

qq_41359817的博客 1821

初识RNN01——NLP基础

自然语言处理(NLP)是人工智能的重要分支,旨在让计算机理解、处理和生成人类语言。其核心流程包括语料获取、预处理、特征工程、模型构建与训练等。NLP研究方向涵盖语言理解(如情感分析、信息检索)、语言转换(如机器翻译、语音识别)和语言生成(如文本生成、语音合成)三大领域。关键技术包括词嵌入、序列建模、神经网络等,经历了从规则方法到统计学习再到深度学习的演进。随着Word2Vec、Seq2Seq等模型的突破,NLP在机器翻译、智能对话等场景展现出强大能力。中文NLP还需特别处理分词、语法等独特挑战。

qq_73960031的博客 1381

什么是自然语言处理

此外,了解机器学习的基本概念和算法,以及熟悉NLP的基本任务和技术,如分词、词性标注和语言模型,对于深入理解NLP至关重要。综上所述,大模型是自然语言处理领域的关键技术,它们通过预训练和微调的方法学习语言的深层特征,广泛应用于各种语言任务中,对NLP的发展产生了深远的影响。同时,持续学习最新的研究进展和参与NLP社区的讨论也是必不可少的,这有助于你保持知识的更新和扩展专业网络。NLP的进步不仅推动了AI的发展,也为人类社会带来了深远的影响,使得机器能够更深入地理解和参与人类的沟通和决策过程。

未来已来,AI时代,学AI编程,做AI量化,就来大鹏AI教育。 1029

SAP CO实战:如何用KKA2/CJ88结果分析码搞定项目收入成本匹配(附真实案例)

本文深入探讨了SAP CO模块中KKA2和CJ88结果分析码在项目收入成本匹配中的高阶应用。通过真实案例解析,详细介绍了这两种分析码在分阶段收入确认和终验法项目中的配置技巧与实战经验,帮助财务人员高效解决复杂业务场景下的财务数据处理难题。

weixin_29230773的博客 168

深度学习 自然语言处理(RNN) day_01

在定义NLP之前,先了解几个相关概念:语言(Language):是人类用于沟通的一种结构化系统,可以包括声音、书写符号或手势。自然语言(Natural Language):是指自然进化中通过使用和重复,无需有意计划或预谋而形成的语言。计算语言学(Computational Linguistics):是语言学和计算机科学之间的跨学科领域,它包括:a.计算机辅助语言学(Computer-aided Linguistics):利用计算机研究语言的学科,主要为语言学家所实践。

qq_59348412的博客 1457

FFmpeg + OBS 低延迟直播串流实战:从H264裸流到RTP组播的完整配置

本文详细介绍了如何利用FFmpeg将H264裸流转码为RTP协议,并通过组播技术实现与OBS客户端的超低延迟直播串流。文章深入剖析了FFmpeg关键参数调优、SDP文件生成与配置,以及OBS客户端的无缝拉流方法,为需要毫秒级实时交互的场景提供了一套去中心化、高效稳定的完整解决方案。

fanta的博客 830

01 自然语言处理NLP介绍

每种动物都有自己的语言,机器也是!自然语言处理(NLP)就是在机器语言和人类语言之间沟通的桥梁,以实现人机交流的目的。​编辑自然语言处理(Natural Language Processing, 简称NLP)是计算机科学与语言学中关注于计算机与人类语言间转换的领域..........

一越王超的博客 1575

Cesium创建无人机视锥,同步视锥与鹰眼地图视角,实现视锥键盘控制。解决视锥初始化位置不准确问题等

本文描述了一个基于Cesium的3D视锥体可视化系统开发过程。系统实现了主视图与鹰眼视图的双屏联动,支持通过键盘控制视锥体的空间移动(WASD前后左右,Q/E旋转,C/Z升降),并实时同步更新两个视图。关键技术包括:1)基于主视图Scene创建Camera实现视锥体精确绘制;2)通过PerspectiveFrustum设置视锥参数;3)建立双视图的相机位置及视角同步机制。目前暂未实现视锥体far/near边界在鹰眼视图中的可视化,该系统可应用于无人机视角监控等三维场景交互需求。

coder_bin的博客 1590

微信小程序scroll-view,点击menu,滚动到锚点;滚动到锚点,激活menu。

首先看看效果图1、首先是点击菜单,滚动列表,这个实现比较简单。直接使用scroll-view 的 scroll-into-view属性,小程序文档。<view class='container'> <!-- 菜单 --> <view class='menu'> <ul> <!-- scrollList 修改cate --&g...

weixin_39834214的博客 1万+

EP01:【NLP】自然语言处理概述

本文系统梳理了自然语言处理(NLP)技术的发展历程与行业影响。内容分为三个核心部分:首先阐述了NLP作为实现人工智能认知智能的关键路径,包括图灵测试、智能层次划分等理论基础;其次重点分析了2011年至今NLP的三阶段发展,特别是Transformer架构和大模型时代的技术突破;最后探讨了以GPT为代表的大模型带来的行业变革,指出从业者面临的机遇与挑战。

CH3_CH2_CHO的博客 1442

PCB线路板的制作工艺流程分享!2021-08-21

Pcb板制作工艺流程:开料-钻孔-沉铜-压膜-曝光-显影-电铜-电锡-退膜-蚀刻-退锡-光学检测-印阻焊油-阻焊曝光、显影-字符-表面处理-成型-电测-终检-抽测-包装。具体如下:1、开料(CUT) 将原始的覆铜板切割成可以用在生产线上制作的板子过程2、钻孔 使PCB板层间产生通孔,以达到连通层间的目的。 3、沉铜 经过钻孔后的线路板在沉铜缸内会发生氧化还原反应,形成铜层对孔进行孔金属化,使原来绝缘的基材表面沉积上铜,达到层间电性相通。 4、压膜 压膜后的PCB板上面压了一层蓝色的干膜, 干膜是一个载体

jdbpcb88的博客 3246

自然语言处理NLP + 知识图谱

黄金搭档:自然语言处理NLP + 知识图谱 金融行业因其与数据的高度相关性,成为人工智能最先应用的行业之一,而自然语言处理(NLP)与知识图谱作为人工智能技术的重要研究方向与组成部分,正在快速进入金融领域,并日益成为智能金融的基石。 一般的金融科技公司只会集中在其中的某些业务方向,只要能深入掌握两到三种能力,就能具有相当的竞争力。在这些业务场景中,自然语言处理(NLP)和知识图谱技术往往需要共同应用,才能发挥出最大的效能。同时,一种核心能力可以在多个智能金融应用场景中得到应用,这些应用场景包括:智能投研

u010451780的专栏 7153

道路缺陷检测实战指南:基于YOLOv11的深度学习系统从搭建到落地

道路缺陷检测项目的每一步,都是“理论→实践→反思→优化”的成长循环。当你看到自己开发的系统能精准识别出道路上的每一处裂缝、每一个坑洼时,那种“技术解决真实问题”的成就感,会让你明白深度学习不止是论文里的公式,更是改变行业的工具。如果过程中遇到模型不收敛、界面功能异常等问题,不妨把问题拆解成“数据是否标注准确?”“模型参数是否合理?”“界面逻辑是否有漏洞?”等小问题逐一排查。记住,每解决一个问题,你就离“能独立落地AI项目的工程师”更近一步。

LXY_LOVE36的博客 172

开关电源-LLC基本原理

本文详细介绍了LLC谐振变换器的兴起原因、基本工作原理、变换器特点及拓扑结构。重点讨论了半桥、全桥LLC及其软开关技术,包括零电压开关(ZVS)和零电流开关(ZCS)。通过理解简单的谐振电路(RL、RC、LC)来阐述LLC如何改变电压增益,以及如何通过调节频率实现输出电压的稳定性。

让你爱上电路设计 2万+

AI大牛推荐的八本必读NLP书籍(建议收藏)

在人工智能背景技术下,自然语言处理(NLP)技术被越来越多的人看好,并受到重视。实现人机间自然语言通信意味着要使计算机既能理解自然语言文本的意义,也能以自然语言文本表达给定的意图、思想等...

华章IT官方博客 8300

自动驾驶算法-滤波器系列(三)——不同运动模型(CV、CA、CTRV、CTRA)的建模和推导

CV & CA & CTRV & CTRA1. CV模型2. CA模型3. CTRV模型4. CTRA模型 1. CV模型 2. CA模型 3. CTRV模型 4. CTRA模型

weixin_41480034的博客 2万+

NLP 自然语言处理之综述

(1) NLP 介绍 NLP 是什么? NLP (Natural Language Processing) 自然语言处理,是计算机科学、人工智能和语言学的交叉学科,目的是让计算机处理或“理解”自然语言。自然语言通常是指一种自然地随文化演化的语言,如汉语、英语、日语。 NLP 可以用来做什么?以及它的应用领域是什么? 文本朗读(Text to speech)/ 语音合成(Speech sy...

ak18888的博客 1221

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

nlp自然语言处理_「自然语言处理(NLP)」入门系列(一)初识NLP

来源:AINLPer微信公众号 编辑: ShuYini 校稿: ShuYini 时间: 2020-01-07 初识自然语言处理(NLP) 本次主要内容: 1、解释自然语言处理的目标和应用。 2、描述自然语言处理的挑战。     该模块为深度学习和自然语言处理奠定了基础。不过,在开始之前,请确保您有所需的背景知识。这是一个高级主题,本模块假设您对机器学习词汇有基本的理解,有一些Python方面的经验...

weixin_40006265的博客 309

SIMATIC S7-1200, S7-1500 PID 控制[手册]

SIMATIC S7-1200, S7-1500 PID 控制[手册]

「自然语言处理(NLP)」入门系列(一)初识NLP

来源:AINLPer微信公众号(点击了解一下吧) 编辑: ShuYini 校稿: ShuYini 时间: 2020-01-07 初识自然语言处理(NLP) 本次主要内容: 1、解释自然语言处理的目标和应用。 2、描述自然语言处理的挑战。     该模块为深度学习和自然语言处理奠定了基础。不过,在开始之前,请确保您有所需的背景知识。这是一个高级主题,本模块假设您对机器学习词汇有基本的理解,有...

yinizhilianlove的博客 706

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

01[NLP训练营]自然语言处理介绍

·自然语言处理介绍 ·什么是NLP? NLP=NLU+NLG ·NLU(Nature language understanding):语音/文本一>意思(meaning),这个是下面NLG的基础。 ·NLG(Nature language generation):意思一>文本/语音 现在的问题: 1、Multiple Ways to Express(多种表达方式) 例如: 这个训练营还...

老毛的博客 1334

现在学 NLP 还来得及吗?

作为人工智能的一个重要组成部分,自然语言处理(NLP)的研究对象是计算机和人类语言的交互,其任务是理解人类语言并将其转换为机器语言。在目前的商业场中,NLP 技术用于分析...

优快云大数据 4208

自然语言处理NLP训练营---贪心科技

ai工程师必备的核心功能 现实中的问题—>数学优化问题—>通过合适的工具解决 为什么NLP比CV难? 图片是所见即所得,而语言不只有表面意思,语言还有更加深入的浅层意思 如何解决一词多义? 将词放入上下文(context)中去理解 一个简单的机器翻译系统,如何将图中的一句话翻译出来,下面是翻译的例子,方法只能通过词与词对应人工学习出对应规则,然后猜测翻译的句子。 以上存在的问题 翻译速度慢 语义不明(歧义) 没有考虑上下文 翻译后的句子语法不对 需要大量的人工规则统计 解决方法:给定一句话

qq_45893319的博客 2562

人工智能科普|自然语言处理(NLP)

https://www.toutiao.com/a6651845517565231620/   2019-01-29 17:17:53 今天晚上咱们要学习的课程比之前的难度要稍微大点,也是目前人工智能领域最难的研究方向之一——自然语言处理(NLP)。 自然语言处理——AI领域“第一团宠” NLP作为AI领域的认知智能,其动态一直都是业内专家学者关注的重点,尤其是随着深度学习的不断进步,通...

喜欢打酱油的老鸟 2633

[论文阅读] (05) NLP知识总结及NLP论文撰写之道——Pvop老师

《娜璋带你读论文》系列主要是督促自己阅读优秀论文及听取学术讲座,并分享给大家,希望您喜欢。由于作者的英文水平和学术能力不高,需要不断提升,所以还请大家批评指正,非常欢迎大家给我留言评论,学术路上期待与您前行,加油~ 最近准备挤时间好好阅读论文并撰写相关论文,这篇博客是在B站学习“深度之眼”Pvop老师的分享,题目为《高手是怎样学习NLP》,这里非常推荐大家去原网站学习及购买课程,真的挺好的一个教程。秀璋也希望能与您一起在学术科研路上一起前行,博士路漫漫,加油~

杨秀璋的专栏 6966
上一篇: 深度学习实战—手机价格分类项目:从零到实战,手把手教你做AI项目
下一篇: 深度学习_02-NLP进阶
Yardon_Official
博客等级 码龄5年 800粉丝 207原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Yardon_Official

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值