>- **🍨 本文为[🔗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里“扑腾”的日后也一直能这么容易的顺利的掌握知识吧......