当前位置:   article > 正文

NLP——Tokenizer_nlp tokenizer

nlp tokenizer

1.什么是Tokenizer

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

2.创建Tokenizer实例

from keras.preprocessing.text import Tokenizer
tok = Tokenizer()
  • 1
  • 2

3.学习文本字典

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

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

上述数据中:

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

4.编码文本

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

## 编码文档
encoded_docs = t.texts_to_matrix(docs, mode='freq')
print(encoded_docs)
  • 1
  • 2
  • 3
[[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]]
  • 1
  • 2
  • 3

其中,mode有四种模型:

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

5.tokenization之后的操作

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

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

闽ICP备14008679号