自然语言处理(NLP)入门(一)

本文介绍了如何使用TensorFlow的Tokenizer对文本进行分词,建立词表,并将句子转换为数字序列。重点讲解了分词器的工作原理,如何处理不同长度的句子以及使用padding技巧。适合初学者理解文本预处理在深度学习中的应用。
摘要由CSDN通过智能技术生成

一.如何用计算机可以处理的方式来表示单词(也叫作“分词”)

import tensorflow as tf 
from tensorflow import keras 
from tensorflow.keras.preprocessing.test import Tokenizer 
sentences=['I love my dog',
           'I.love my cat'] 
tokenizer=Tokenizer(num_words=100)

创建一个Tokenizer Object实例,保留该文字库中出现最频繁的100个单词

tokenizer.fit_on_texts(sentences)

查看sentences中所有文本,并将文本与对应数字进行匹配

word_index= tokenizer.word_index

获取所有单词列表,输出所有词汇与词表(注:所有大写字母都会转为小写字母,后面做初始化embedding时,记得转为大写)

print(word_index)

输出:{‘i’:1,‘m’:3,‘dog’:4,‘cat’:5,‘love’:2} 输出单词和其对应的标识符

注:分词器很聪明,即使dog后有个“!”,像是I love my dog!,分词器也能识别出dog,自动去掉“!”。

二. 为句子创建数字序列,将包含上面单词的句子转换为数字序列

import tensorflow as tf
from tensorflow import keras
from tensorflow.keras.preprocessing.test import Tokenizer
sentences=['I love my dog''I.love my cat''Do you think my dog is amazing?']
tokenizer=Tokenizer(num_words=100)
tokenizer.fit_on_texts(sentences)
word_index= tokenizer.word_index
sequences=tokenizer.texts_to_sequences(sentences)

创建了代表每个句子的标识符序列

print(word_index)
print(sequences)

在这里插入图片描述

三.为测试集中的句子进行排序

在这里插入图片描述

由于manatee和really和loves是不在word_index中的单词,不在构建这个序列的语料库中,所以会输出这个样子
在这里插入图片描述
为了不损失句子长度,可以使用ovv_token属性,设置可代替语料库中无法识别的内容
在这里插入图片描述
在这里插入图片描述

四.处理不同长短的句子,可以用padding填充先让短句子与最长的句子保证长短相同

在这里插入图片描述
在这里插入图片描述

后续见下一个博客!!!

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值