当前位置:   article > 正文

NLP实用小工具Tokenizer和pad_sequences进行文本的数字编码和长度填充或截断_tokenizer 统计特征的长度

tokenizer 统计特征的长度

NLP任务中经常需要把词语转换成数字ID,然后又要统一文本长度,不够的填充0,多出的部分需要截断,keras里面自带了这样的功能模块如下。

from keras.preprocessing.sequence import pad_sequences
from keras.preprocessing.text import Tokenizer
  • 1
  • 2

具体使用效果如下

from keras.preprocessing.sequence import pad_sequences
from keras.preprocessing.text import Tokenizer

mx_length = 10#文本最大长度为10

text = [['我','爱','中国'],
     ['我','爱','科学'],
     ['深度','学习','很','有趣'],
     ['机器','学习','常见','的','模型','有','SVM']]
print('文本内容=')
print(text)
tokenizer=Tokenizer()  #创建一个Tokenizer对象
tokenizer.fit_on_texts(text)#直接读入文本进行词的ID获取
vocab=tokenizer.word_index #得到每个词的编号
x_train_word_ids=tokenizer.texts_to_sequences(text)#开始对text里面的每个汉字进行编号
print('编号结果=')
print(x_train_word_ids)
'''
padding='pre'表示从前面填充
padding='post'表示从后面填充
truncating='pre'表示从前面截断
truncating='post'表示从后面截断
'''
x_train_padded_seqs=pad_sequences(x_train_word_ids,maxlen=mx_length,padding='post',truncating='post') #将超过固定值的部分截掉,不足的用0填充
print('填充结果=')
print(x_train_padded_seqs)

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27

运行结果
在这里插入图片描述

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/码创造者/article/detail/750823
推荐阅读
相关标签
  

闽ICP备14008679号