概述
感谢阅读
- 自然语言处理概述
- 词嵌入层
- 通用代码:
- 循环网络层
自然语言处理概述
自然语言处理(Nature language Processing, NLP)研究的主要是通过计算机算法来理解自然语言。对于自然语言来说,处理的数据主要就是人类的语言,例如:汉语、英语、法语等,由于该类型的数据不像我们前面接触的过的结构化数据、或者图像数据可以很方便的进行数值化。所以,在本章节,我们主要学习如何将文本数据进行数值化的词嵌入技术、以及如何对文本数据建模的循环网络模型。
词嵌入层
词嵌入提供了词的密集表示及其相对含义。最简单的理解就是:将词进行向量化表示,实体的抽象成了数学描述,就可以进行建模了。它们是对较简单的单词模型表示中使用的稀疏表示的改进。
通用代码:
nn.Embedding(num_embeddings=XX, embedding_dim=XX)
num_embeddings 表示词的数量
embedding_dim 表示用多少维的向量来表示每个词
import torch
import torch.nn as nn
import jieba
if __name__ == '__main__':
# 0.文本数据
text = '北京冬奥的进度条已经过半,不少外国运动员在完成自己的比赛后踏上归途。'
# 1. 文本分词
words = jieba.lcut(text)
print('文本分词:', words)
# 2.分词去重并保留原来的顺序获取所有的词语,列表的索引也就是词的索引
unique_words = list(set(words))
print("去重后词的个数:n",len(unique_words))
# 3. 构建词嵌入层:num_embeddings: 表示词的总数量;embedding_dim: 表示词嵌入的维度
embed = nn.Embedding(num_embeddings=len(unique_words), embedding_dim=4)
print("词嵌入的结果:n",embed)
# 4. 词语的词向量表示
for i, word in enumerate(unique_words):
# 获得词嵌入向量,并进行打印
word_vec = embed(torch.tensor(i))
print('%3st' % word, word_vec)
循环网络层
API:
RNN = torch.nn.RNN(input_size,hidden_size,num_layer)
input_size:输入数据的编码维度,一般设为词向量的维度;
hidden_size:隐含层h的维数,也是当前层神经元的输出维度;
num_layer: 隐藏层h的层数,默认为1
最后
以上就是无私白羊为你收集整理的NLP基础之RNN基础自然语言处理概述词嵌入层循环网络层的全部内容,希望文章能够帮你解决NLP基础之RNN基础自然语言处理概述词嵌入层循环网络层所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复