keras库preprocessing.text文本预处理

简介: keras库preprocessing.text文本预处理

文本预处理


Tokenizer(分词器)

keras.preprocessing.text.Tokenizer(num_words=None, 
                                   filters='!"#$%&()*+,-./:;<=>?@[\]^_`{|}~ ', 
                                   lower=True, 
                                   split=' ', 
                                   char_level=False, 
                                   oov_token=None, 
                                   document_count=0)
复制代码

该类允许使用两种方法向量化一个文本语料库:将每个文本转化为一个整数序列(每个整数都是词典中标记的索引);或者将其转化为一个向量,其中每个标记的系数可以是二进制值、词频、TF-IDF权重等。


参数

  • num_words: 需要保留的最大词数,基于词频。只有最常出现的 num_words 词会被保留。
  • filters: 一个字符串,其中每个元素是一个将从文本中过滤掉的字符。默认值是所有标点符号,加上制表符和换行符,减去 ' 字符。
  • lower: 布尔值。是否将文本转换为小写。
  • split: 字符串。按该字符串切割文本。
  • char_level: 如果为 True,则每个字符都将被视为标记。
  • oov_token: 如果给出,它将被添加到 word_index 中,并用于在 text_to_sequence 调用期间替换词汇表外的单词。


默认情况下,删除所有标点符号,将文本转换为空格分隔的单词序列(单词可能包含 ' 字符)。 这些序列然后被分割成标记列表。然后它们将被索引或向量化。0 是不会被分配给任何单词的保留索引。

image.png


hashing_trick

hashing_trick将文本转换为固定大小散列空间中的索引序列。

keras.preprocessing.text.hashing_trick(text, n,
                                       hash_function=None, 
                                       filters='!"#$%&()*+,-./:;<=>?@[\]^_`{|}~ ', lower=True, 
                                       split=' ')
复制代码


参数

  • text: 输入文本(字符串)。
  • n: 散列空间维度。
  • hash_function: 默认为 python 散列函数,可以是 'md5' 或任意接受输入字符串并返回整数的函数。注意 'hash' 不是稳定的散列函数,所以它在不同的运行中不一致,而 'md5' 是一个稳定的散列函数。
  • filters: 要过滤的字符列表(或连接),如标点符号。默认:!"#$%&()*+,-./:;<=>?@[]^_{|}~,包含基本标点符号,制表符和换行符。
  • lower: 布尔值。是否将文本转换为小写。
  • split: 字符串。按该字符串切割文本。


返回值整数词索引列表(唯一性无法保证)。

0 是不会被分配给任何单词的保留索引。 由于哈希函数可能发生冲突,可能会将两个或更多字分配给同一索引。 碰撞的概率与散列空间的维度和不同对象的数量有关。

image.png

one_hot

One-hot 将文本编码为大小为 n 的单词索引列表。这是 hashing_trick 函数的一个封装, 使用 hash 作为散列函数;单词索引映射无保证唯一性。

keras.preprocessing.text.one_hot(text, n, 
                                 filters='!"#$%&()*+,-./:;<=>?@[\]^_`{|}~', 
                                 lower=True, 
                                 split=' ')
复制代码


参数text: 输入文本(字符串)。n: 整数。词汇表尺寸。filters: 要过滤的字符列表(或连接),如标点符号。默认:!"#$%&()*+,-./:;<=>?@[]^_{|}~,包含基本标点符号,制表符和换行符。lower: 布尔值。是否将文本转换为小写。split: 字符串。按该字符串切割文本。


返回值[1, n] 之间的整数列表。每个整数编码一个词(唯一性无法保证)。

image.png

text_to_word_sequence

text_to_word_sequence将文本转换为单词(或标记)的序列。

keras.preprocessing.text.text_to_word_sequence(text, 
                                               filters='!"#$%&()*+,-./:;<=>?@[\]^_`{|}~ ', 
                                               lower=True, 
                                               split=' ')
复制代码


参数text: 输入文本(字符串)。filters: 要过滤的字符列表(或连接),如标点符号。默认:!"#$%&()*+,-./:;<=>?@[]^_{|}~,包含基本标点符号,制表符和换行符。lower: 布尔值。是否将文本转换为小写。split: 字符串。按该字符串切割文本。

返回值词或标记的列表。

image.png

keras中文文档



相关文章
|
机器学习/深度学习 自然语言处理 测试技术
基于jieba、TfidfVectorizer、LogisticRegression的文档分类
学习资源来源:容大教育,致以诚挚的谢意。 重新编辑:潇洒坤 jieba中文叫做结巴,是一款中文分词工具,官方文档链接:https://github.com/fxsjy/jieba TfidfVectorizer中文叫做词袋向量化模型,是用来文章内容向量化的工具,官方文档链接:http://sklearn.
1372 0
|
6月前
|
自然语言处理 数据挖掘 BI
数据标注工具 doccano | 文本分类(Text Classification)
数据标注工具 doccano | 文本分类(Text Classification)
159 1
|
6月前
|
机器学习/深度学习 TensorFlow 算法框架/工具
【Tensorflow+Keras】keras实现条件生成对抗网络DCGAN--以Minis和fashion_mnist数据集为例
如何使用TensorFlow和Keras实现条件生成对抗网络(CGAN)并以MNIST和Fashion MNIST数据集为例进行演示。
79 3
|
Python
nltk 自己训练模型例子
NLTK是Python的一个自然语言处理的模块,其中实现了朴素贝叶斯分类算法。以下,就使用上一篇文中提到的数据,来应用这个模块实现朴素贝叶斯分类。NLTK的实现更加泛化,所以在应用到我们的数据上时需要做一点的转化。 首先来看一下NLTK官方文档中给出的一个简单明了的例子,在了解这个例子之后,再设法将同样的模型应用到自己的数据集上。官方给出的例子是英文名中,在知道名字中最后
3877 0
|
6月前
|
TensorFlow 算法框架/工具
【Tensorflow】图解tf.image.extract_patches的用法--提取图片特定区域
文章通过图解和示例详细解释了TensorFlow中tf.image.extract_patches函数的用法,展示了如何使用该函数从图像中提取特定区域或分割图像为多个子图像。
140 0
|
存储 人工智能 Python
sklearn中的文本特征提取方法
什么是特征提取? 特征提取就是将一些原始的输入的数据维度减少或者将原始的特征进行重新组合以便于后续的使用。 比如: 我们知道有的时候原始数据的特征很多,而且有的高度相关,有的却又和最终的目的没有关系。我们需要去除没有关系的特征。(减少数据维度) 对于图像来说,每个图像有很多数据,这时候如果直接拿这些原始数据去计算则会非常缓慢,这对我们实时运行没有好处,我们需要提取出新的特征。(减少数据维度) 我们通过原始数据很多维特征,得到一个新的特征,最后通过这个新的特征来指导做决策。(整理已有的数据特征) 作者:吃果冻不吐果冻皮 链接:https://juejin.cn/post/69986867315

热门文章

最新文章