keras中文文档_Keras分词器Tokenizer

本文介绍了Keras Tokenizer的基本参数、使用方法和实例,展示了如何通过Tokenizer进行文本分词和序列化,适用于各种NLP项目。核心功能包括词频统计、过滤特殊字符、转换大小写等,是实现深度学习模型输入的基础工具。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Tokenizer 是一个用于向量化文本,或将文本转换为序列的类。是用来文本预处理的第一步:分词

简单来说,计算机在处理语言文字时,是无法理解文字的含义,通常会把一个词(中文单个字或者词组认为是一个词)转化为一个正整数,于是一个文本就变成了一个序列。Tokenizer 的核心任务就是做这个事情。


一、基本参数说明

keras.preprocessing.text.Tokenizer(num_words=None,
                                   filters='!"#$%&()*+,-./:;<=>?@[]^_`{|}~tn',
                                   lower=True,
                                   split=' ',
                                   char_level=False, 
                                   oov_token=None, 
                                   document_count=0)
  • num_words :保留的最大词数,根据词频计算。默认为None是处理所有字词。如果设置成一个整数,那么最后返回的是最常见的、出现频率最高的 num_words 个字词。
  • filters :过滤掉常用的特殊符号,默认上文的写法就可以了。
  • lower :是否转化为小写。
  • split :词的分隔符,如空格。
  • char_level :是否将每个字符都认为是词,默认是否。在处理中文时如果每个字都作为是词,这个参数改为True.
  • oov_token :如果给出,会添加到词索引中,用来替换超出词表的字符。
  • document_count :文档个数,这个参数一般会根据喂入文本自动计算,无需给出。

二、对象或实例方法

fit_on_texts(texts)

  • 参数 texts:要用以训练的文本列表。
  • 返回值:无。

texts_to_sequences(texts)

  • 参数 texts:待转为序列的文本列表。
  • 返回值:序列的列表,列表中每个序列对应于一段输入文本。

texts_to_sequences_generator(texts)

  • 本函数是texts_to_sequences的生成器函数版。
  • 参数 texts:待转为序列的文本列表。
  • 返回值:每次调用返回对应于一段输入文本的序列。

texts_to_matrix(texts, mode)

  • 参数 texts:待向量化的文本列表。
  • 参数 mode:'binary','count','tfidf','freq' 之一,默认为 'binary'。
  • 返回值:形如(len(texts), num_words) 的numpy array。

fit_on_sequences(sequences)

  • 参数 sequences:要用以训练的序列列表。
  • 返回值:无

sequences_to_matrix(sequences)

  • 参数 sequences:待向量化的序列列表。
  • 参数 mode:'binary','count','tfidf','freq' 之一,默认为 'binary'。
  • 返回值:形如(len(sequences), num_words) 的 numpy array。

三、属性

word_counts字典,将单词(字符串)映射为它们在训练期间出现的次数。仅在调用fit_on_texts之后设置。

word_docs字典,将单词(字符串)映射为它们在训练期间所出现的文档或文本的数量。仅在调用fit_on_texts之后设置。

word_index字典,将单词(字符串)映射为它们的排名或者索引。仅在调用fit_on_texts之后设置。

document_count整数。分词器被训练的文档(文本或者序列)数量。仅在调用fit_on_texts或fit_on_sequences之后设置。


四、简单示例

from keras.preprocessing.text import Tokenizer

tokenizer = Tokenizer()
text = ["今天 武汉 下 雨 了", "我 今天 上课", "我 明天 不 上课", "武汉 明天 不 下 雨"]
tokenizer.fit_on_texts(text)
  • word_counts 属性:
tokenizer.word_counts

1b89b877b3e4783d2056863676dcff90.png
  • word_docs 属性:
tokenizer.word_docs

68b47d96b52a8c35660ee2435affe4c2.png
  • word_index 属性:
tokenizer.word_index

a55bd6e1fd580e9177217aea98d4d58b.png
  • document_count 属性:
tokenizer.document_count

f8a7392c677979358b570b5b1db571cf.png

五、参考文献

  1. https://www.jianshu.com/p/ac721387fe48
  2. https://blog.youkuaiyun.com/wcy23580/article/details/84885734
  3. https://keras-cn-docs.readthedocs.io/zh_CN/latest/preprocessing/text/
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值