zoukankan      html  css  js  c++  java
  • tf.contrib.learn.preprocessing.VocabularyProcessor

     

    tflearn的VocabularyProcessor用法:建立中文词汇表和把文本转为词ID序列

    tf.contrib.learn.preprocessing.VocabularyProcessor(max_document_length, min_frequency=0, vocabulary=None, tokenizer_fn=None)

    max_document_length: 文档的最大长度。如果文本的长度大于最大长度,那么它会被剪切,反之则用0填充。

    min_frequency: 词频的最小值,出现次数小于最小词频则不会被收录到词表中。

    vocabulary: CategoricalVocabulary 对象。

    tokenizer_fn:分词函数

    例:

    from jieba import cut

    import tensorflow as tf

    DOCUMENTS = [

        '这是一条测试1',

        '这是一条测试2',

        '这是一条测试3',

        '这是其他测试',

    ]

    def chinese_tokenizer(documents):

        """

        把中文文本转为词序列

        """

        for document in documents:

            # 英文转小写

            text = text.lower()

            # 分词

            yield list(cut(text))

    # 序列长度填充或截取到20,删除词频<=2的词

    vocab = tf.contrib.learn.preprocessing.VocabularyProcessor(20, 0, tokenizer_fn=chinese_tokenizer)

    # 创建词汇表,创建后不能更改

    vocab.fit(DOCUMENTS)

    # 保存和加载词汇表

    #vocab.save('vocab.pickle')

    #vocab = VocabularyProcessor.restore('vocab.pickle')

    # 文本转为词ID序列,未知或填充用的词ID为0

    id_documents = list(vocab.transform(DOCUMENTS))

    for id_document in id_documents:

        print(id_document)

    [1 2 3 4 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0]
    [1 2 3 5 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0]
    [1 2 3 6 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0]
    [1 7 3 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0]

    for document in vocab.reverse(id_documents):

    print(document)

    这是 一条 测试 1 <UNK> <UNK> <UNK> <UNK> <UNK> <UNK> <UNK> <UNK> <UNK> <UNK> <UNK> <UNK> <UNK> <UNK> <UNK> <UNK>

    这是 一条 测试 2 <UNK> <UNK> <UNK> <UNK> <UNK> <UNK> <UNK> <UNK> <UNK> <UNK> <UNK> <UNK> <UNK> <UNK> <UNK> <UNK>

    这是 一条 测试 3 <UNK> <UNK> <UNK> <UNK> <UNK> <UNK> <UNK> <UNK> <UNK> <UNK> <UNK> <UNK> <UNK> <UNK> <UNK> <UNK>

    这是 其他 测试 <UNK> <UNK> <UNK> <UNK> <UNK> <UNK> <UNK> <UNK> <UNK> <UNK> <UNK> <UNK> <UNK> <UNK> <UNK> <UNK> <UNK>

  • 相关阅读:
    unity对于导入动画不可编辑的添加事件函数方式
    unity创建Animation动画文件
    unity之3dmax建模(人物模型)注意细节
    unity导入fbx文件并播放模型动画
    Java网络编程:QQ邮件发送客户端程序设计
    Java进阶:基于TCP通信的网络实时聊天室
    如何开发HTML编辑器
    分布式redislock使用注意事项
    《MySQL慢查询优化》之数据库表结构优化
    《MySQL慢查询优化》之慢SQL日志获取与分析
  • 原文地址:https://www.cnblogs.com/yongfuxue/p/10119005.html
Copyright © 2011-2022 走看看