【NLP】N1.one-hot编码案例

>- **🍨 本文为[🔗365天深度学习训练营](https://mp.weixin.qq.com/s/0dvHCaOoFnW8SCp3JpzKxg) 中的学习记录博客**
>- **🍖 原作者:[K同学啊](https://mtyjkh.blog.csdn.net/)**

任务:加载.txt文件,并使用字典序列和one-hot编码进行数字化处理
一、惯例先放lib在第一块:
import jieba, torch
import torch.nn.functional as F 
import pandas as pd
二、加载数据(txt文件):
data_dir = "/kaggle/input/text-data1/.txt"
data = pd.read_csv(data_dir, header = None)
data

看一下导入的文字结果:

(txt里有两个自然段,所以分成了两行)

三、用jieba分词:
tokenized_texts = [list(jieba.cut(text)) for text in data[0]]
print(tokenized_texts)

分词结果:

四、做词汇表:
word_index = {}
index_word = {}

for i, word in enumerate(set([word for text in tokenized_texts for word in text])):
    word_index[word] = i
    index_word[i] = word
五、将分词的文本对应词汇表转化为整数序列:
sequences = [[word_index[word] for word in text] for text in tokenized_texts]
print(sequences)

结果如下:

六、将第五步的整数序列转化为one-hot:
vocab_size = len(word_index)

one_hot_results = torch.zeros(2, vocab_size)
for i, seq in enumerate(sequences):
    one_hot_results[i, seq] = 1
七、输出结果:
print("词汇表")
print(word_index)
print("\n文本")
print(data)
print("\n分词结果")
print(tokenized_texts)
print("\n文本序列")
print(sequences)
print("\none-hot")
print(one_hot_results)

八、总结:

   第一次接触nlp,总的来说理解起来还是没有问题的,和图像处理也是能互通着理解的,所以没什么难点。通过这次实践大致掌握了整数序列和独热的异同和各自的优缺点,希望能在nlp里“扑腾”的日后也一直能这么容易的顺利的掌握知识吧......

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值