吴裕雄--天生自然 pythonTensorFlow自然语言处理:文本数据预处理--生成词汇表

import codecs
import collections
from operator import itemgetter

# 1. 设置参数。
MODE = "PTB"    # 将MODE设置为"PTB", "TRANSLATE_EN", "TRANSLATE_ZH"之一。

if MODE == "PTB":             # PTB数据处理
    RAW_DATA = "F:\\TensorFlowGoogle\\201806-github\\datasets\\PTB_data\\ptb.train.txt"  # 训练集数据文件
    VOCAB_OUTPUT = "ptb.vocab"                         # 输出的词汇表文件
elif MODE == "TRANSLATE_ZH":  # 翻译语料的中文部分
    RAW_DATA = "F:\\TensorFlowGoogle\\201806-github\\datasets\\TED_data\\train.txt.zh"
    VOCAB_OUTPUT = "zh.vocab"
    VOCAB_SIZE = 4000
elif MODE == "TRANSLATE_EN":  # 翻译语料的英文部分
    RAW_DATA = "F:\\TensorFlowGoogle\\201806-github\\datasets\\TED_data\\train.txt.en"
    VOCAB_OUTPUT = "en.vocab"
    VOCAB_SIZE = 10000
# 2.对单词按词频排序。
counter = collections.Counter()
with codecs.open(RAW_DATA, "r", "utf-8") as f:
    for line in f:
        for word in line.strip().split():
            counter[word] += 1

# 按词频顺序对单词进行排序。
sorted_word_to_cnt = sorted(counter.items(), key=itemgetter(1), reverse=True)
sorted_words = [x[0] for x in sorted_word_to_cnt]
print(sorted_words)

#### 3.插入特殊符号。
if MODE == "PTB":
    # 稍后我们需要在文本换行处加入句子结束符"<eos>",这里预先将其加入词汇表。
    sorted_words = ["<eos>"] + sorted_words
elif MODE in ["TRANSLATE_EN", "TRANSLATE_ZH"]:
    # 在处理机器翻译数据时,除了"<eos>"以外,还需要将"<unk>"和句子起始符
    # "<sos>"加入词汇表,并从词汇表中删除低频词汇。
    sorted_words = ["<unk>", "<sos>", "<eos>"] + sorted_words
    if len(sorted_words) > VOCAB_SIZE:
        sorted_words = sorted_words[:VOCAB_SIZE]
# 4.保存词汇表文件。
with codecs.open(VOCAB_OUTPUT, ‘w‘, ‘utf-8‘) as file_output:
    for word in sorted_words:
        file_output.write(word + "\n")

原文地址:https://www.cnblogs.com/tszr/p/12068142.html

时间: 2024-10-10 16:44:05

吴裕雄--天生自然 pythonTensorFlow自然语言处理:文本数据预处理--生成词汇表的相关文章

吴裕雄--天生自然 pythonTensorFlow自然语言处理:交叉熵损失函数

import tensorflow as tf # 1. sparse_softmax_cross_entropy_with_logits样例. # 假设词汇表的大小为3, 语料包含两个单词"2 0" word_labels = tf.constant([2, 0]) # 假设模型对两个单词预测时,产生的logit分别是[2.0, -1.0, 3.0]和[1.0, 0.0, -0.5] predict_logits = tf.constant([[2.0, -1.0, 3.0], [1

吴裕雄--天生自然 pythonTensorFlow自然语言处理:PTB 语言模型

import numpy as np import tensorflow as tf # 1.设置参数. TRAIN_DATA = "F:\TensorFlowGoogle\\201806-github\\TensorFlowGoogleCode\\Chapter09\\ptb.train" # 训练数据路径. EVAL_DATA = "F:\TensorFlowGoogle\\201806-github\\TensorFlowGoogleCode\\Chapter09\\p

吴裕雄--天生自然 pythonTensorFlow自然语言处理:Seq2Seq模型--训练

import tensorflow as tf # 1.参数设置. # 假设输入数据已经用9.2.1小节中的方法转换成了单词编号的格式. SRC_TRAIN_DATA = "F:\\TensorFlowGoogle\\201806-github\\TensorFlowGoogleCode\\Chapter09\\train.en" # 源语言输入文件. TRG_TRAIN_DATA = "F:\\TensorFlowGoogle\\201806-github\\TensorF

吴裕雄--天生自然 pythonTensorFlow自然语言处理:Attention模型--测试

import sys import codecs import tensorflow as tf # 1.参数设置. # 读取checkpoint的路径.9000表示是训练程序在第9000步保存的checkpoint. CHECKPOINT_PATH = "F:\\temp\\attention_ckpt-9000" # 模型参数.必须与训练时的模型参数保持一致. HIDDEN_SIZE = 1024 # LSTM的隐藏层规模. DECODER_LAYERS = 2 # 解码器中LST

吴裕雄--天生自然 pythonTensorFlow图形数据处理:读取MNIST手写图片数据写入的TFRecord文件

import numpy as np import tensorflow as tf from tensorflow.examples.tutorials.mnist import input_data # 读取文件. filename_queue = tf.train.string_input_producer(["F:\\output.tfrecords"]) reader = tf.TFRecordReader() _,serialized_example = reader.re

吴裕雄--天生自然 pythonTensorFlow图形数据处理:数据集高层操作

import tempfile import tensorflow as tf # 1. 列举输入文件. # 输入数据生成的训练和测试数据. train_files = tf.train.match_filenames_once("F:\\output.tfrecords") test_files = tf.train.match_filenames_once("F:\\output_test.tfrecords") # 定义解析TFRecord文件的parser方

吴裕雄--天生自然python机器学习:朴素贝叶斯算法

分类器有时会产生错误结果,这时可以要求分类器给出一个最优的类别猜测结果,同 时给出这个猜测的概率估计值. 概率论是许多机器学习算法的基础 在计算 特征值取某个值的概率时涉及了一些概率知识,在那里我们先统计特征在数据集中取某个特定值 的次数,然后除以数据集的实例总数,就得到了特征取该值的概率. 首先从一个最简单的概率分类器开始,然后给 出一些假设来学习朴素贝叶斯分类器.我们称之为“朴素”,是因为整个形式化过程只做最原始.最简单的假设. 基于贝叶斯决策理论的分类方法 朴素贝叶斯是贝叶斯决策理论的一部

吴裕雄--天生自然 高等数学学习:区间

区间.领域 自然数集——N 整数集——Z 有理数集——Q 实数集——R 建立数轴后,实数与数轴上的点一一对应. 建立某一实数集A与数轴上某一区间对应. 区间:设有数a,b,a<b,则称实数集{x|a<x<b}为一个开区间.记为:(a,b),即: (a,b)={x|a<x<b} a称为区间(a,b)的左端点. b称为区间(a,b)的右端点.   原文地址:https://www.cnblogs.com/tszr/p/11153079.html

吴裕雄--天生自然python机器学习:使用K-近邻算法改进约会网站的配对效果

在约会网站使用K-近邻算法 准备数据:从文本文件中解析数据 海伦收集约会数据巳经有了一段时间,她把这些数据存放在文本文件(1如1^及抓 比加 中,每 个样本数据占据一行,总共有1000行.海伦的样本主要包含以下3种特征: 每年获得的飞行常客里程数 玩视频游戏所耗时间百分比 每周消费的冰淇淋公升数 将文本记录到转换NumPy的解析程序 import operator from numpy import * from os import listdir def file2matrix(filenam