当前位置: 首页 > 工具软件 > Tokenizer > 使用案例 >

NLP——Tokenizer

乐正浩言
2023-12-01

1.什么是Tokenizer

  使用文本的第一步就是将其拆分为单词。单词称为标记(token),将文本拆分为标记的过程称为标记化(tokenization),而标记化用到的模型或工具称为tokenizer。Keras提供了Tokenizer类,用于为深度学习文本文档的预处理。

2.创建Tokenizer实例

from keras.preprocessing.text import Tokenizer
tok = Tokenizer()

3.学习文本字典

##假设文本数据为:
docs = ['good job!',
        'hello world',
        'great china']
tok.fit_on_texts(docs)

  学习了文本字典后,可以通过tok的以下4个属性来看到底学了什么东西:
1)word_counts:每个词在所有文档中出现的次数
2)word_docs:每个词出现的文档数量
3)word_index:所有word对应的ID编号,从1开始
4)document_count:处理的文档数

上述数据中:

tok.word_counts
OrderedDict([('good', 1),
             ('job', 1),
             ('hello', 1),
             ('world', 1),
             ('great', 1),
             ('china', 1)])
tok.word_docs
defaultdict(int,
            {'job': 1,
             'good': 1,
             'world': 1,
             'hello': 1,
             'china': 1,
             'great': 1})
tok.word_index
{'good': 1, 'job': 2, 'hello': 3, 'world': 4, 'great': 5, 'china': 6}
tok.document_count
3

4.编码文本

  学习出文本字典后,可以通过texts_to_sequences将文本中的每个词转成数字。

## 编码文档
encoded_docs = t.texts_to_matrix(docs, mode='freq')
print(encoded_docs)
[[0.  0.5 0.5 0.  0.  0.  0. ]
 [0.  0.  0.  0.5 0.5 0.  0. ]
 [0.  0.  0.  0.  0.  0.5 0.5]]

其中,mode有四种模型:

  • binary(默认值):文档中是否有该词
  • count:文档中每个单词的计数
  • tfidf:文档中每个单词的TF-IDF评分
  • freq:每个单词的频率,作为每个文档中单词的比例

5.tokenization之后的操作

  完成分词和编码后通过padding把所有词向量补成同样长度,再用keras中自带的embedding层进行一个向量化,就可以输入到各种模型中了。

 类似资料: