英文可以以word形式编码。但是这种编码方式的问题在于在测试或者实际应用的时候出现 out-of-vocabulary(OOV)的问题,所以我们可以编码character。
以句子“these models make use of neural networks”为例。
我们的字典为

我们对这个文件处理生成字典

character_to_id = {}
with open('C:\\Users\\15226\\Desktop\\character.txt', 'r', encoding='utf-8') as f:for num, line in enumerate(f.readlines()):character_to_id[line.replace('\n', '')] = num

句子字符向量化代码

def character_encode(sentence):vector = np.zeros([sequence, max_character])for n, s in enumerate(sentence.split()):for nn, c in enumerate(s):vector[n][nn] = character_to_id[c]return vector

这里面是直接对句子进行character向量化,也可以先对单词进行character向量化,再对句子进行向量化
如果是一个batch的句子,我们向量化后会得到[batch_size,seq_len,max_char]的一个矩阵,经过embedding后,会得到一个[batch_size,seq_len,max_char,dim]的矩阵,再经过CNN处理,就可以将矩阵处理成rank=3的。

def make_conv(inp):convolutions = []for i, (width, num) in enumerate(filters):# He initialization for ReLU activation# with char embeddings init between -1 and 1# w_init = tf.random_normal_initializer(#    mean=0.0,#    stddev=np.sqrt(2.0 / (width * char_embed_dim))# )# Kim et al 2015, +/- 0.05w_init = tf.random_uniform(minval=-0.05, maxval=0.05)w = tf.get_variable([1, width, char_embed_dim, num],initializer=w_init,dtype=tf.float32)b = tf.get_variable("b_cnn_%s" % i, [num], dtype=tf.float32,initializer=tf.constant_initializer(0.0))conv = tf.nn.conv2d(  # (batch_size, unroll_steps,max_chars - width + 1,num) 在词上面卷inp, w,strides=[1, 1, 1, 1],padding="VALID") + b# now max pool# (batch_size, unroll_steps,1,num),因为是多个卷积核,池化过后跟卷积核的宽度就没有关系了# 因为是char编码,这样就可以看到多个char,就相当于看到一个词的一部分或者多部分conv = tf.nn.max_pool(conv, [1, 1, max_character - width + 1, 1],[1, 1, 1, 1], 'VALID')  ## activationconv = tf.nn.relu(conv)conv = tf.squeeze(conv, squeeze_dims=[2])  # (batch_size, unroll_steps,num)convolutions.append(conv)return tf.concat(convolutions, 2)

英文怎样character级编码相关推荐

  1. 数码管的共阳级和共阴级编码

      数码管分为共阳级和共阴级,其编码如下: 共阳级编码为0xc0, 0xf9, 0xa4, 0xb0, 0x99, 0x92, 0x82, 0xf8, 0x80, 0x90, 0x88, 0x83, ...

  2. Excel中提取英文,数值和编码(LEN函数)

    Excel中提取英文,数值和编码(LEN函数) 提取英文: 数据源中包含英文+中文,要求提取英文信息 =LEFT(A2,2*LEN(A2)-LENB(A2)) 解读:LEN函数按照字符数计算,LENB ...

  3. 对26个英文字母进行huffman编码

    <ol><li class="alt"><span><span class="comment">1.建立哈夫曼树 ...

  4. Python实现英文文本的LZW编码压缩

    LZW编码采用隐字典码的形式完成压缩. 文本中符号并不是独立存在的,前一个符号对后一个符号的出现有着很大影响. LZW算法利用文本开头部分的特征,作为整个文本的特征,即利用文本开头部分的内容,生成固定 ...

  5. mysql根据父级编码得到父级内容_在mysql查询中通过父级获取所有子级

    为此你需要有一个存储函数: DELIMITER $$ DROP FUNCTION IF EXISTS `junk`.`GetFamilyTree` $$ CREATE FUNCTION `GetFam ...

  6. linux gbk英文转unicode,GBK编码转Unicode编码转换表

    #include static Table_T tab_UCS2_to_GBK = NULL; // sizeof(tab_GBK_to_UCS2) / sizeof(tab_GBK_to_UCS2[ ...

  7. Netbeans 配置英文和默认utf-8编码

    JAVA SDK 下载地址 http://www.oracle.com/technetwork/java/javase/downloads 解决办法: 进入netbeans 6.5\etc ,其中ne ...

  8. Yann LeCun新作:473种模型大对比,中日韩文本分类到底要用哪种编码?

    雷锋网 AI科技评论按:就在前几天,Yann LeCun(中文名:杨立昆,被称为卷积网络之父)与其学生 张翔在arXiv上发表了一篇新作<Which Encoding is the Best f ...

  9. 词嵌入、句向量等方法汇总

    在cips2016出来之前,笔者也总结多类似词向量的内容,自然语言处理︱简述四大类文本分析中的"词向量"(文本词特征提取)事实证明,笔者当时所写的基本跟CIPS2016一章中总结的 ...

最新文章

  1. boost::fibers模块实现适应非阻塞的测试程序
  2. 最佳实践:HTAP数据库TBase助力某省级单位核心系统IT架构升级
  3. 通信原理最佳接收-匹配滤波器
  4. 半导体物理学——(二)半导体中杂志和能级缺陷
  5. 【工程师学算法】工程常用算法(二)—— 卡尔曼滤波(Kalman Filter)
  6. ifv播放器android 版,ifv格式播放器
  7. 这7个摄影构图技巧,可能会帮你拍出好看照片!你学会了吗?
  8. 更新QQ连连看外挂 加入自动挂机多项功能
  9. Spark面试题、答案
  10. python量化策略——改进的美林时钟轮动策略(一)
  11. 这个时代,达不到百万级以上的并发量,都不叫高并发!!!
  12. Topcoder Open 2011 Qualification Round 3报告
  13. 联合循环—25(了解PID原理图1)
  14. 致敬 互联网背后的运维工程师们
  15. python array太慢_python - gdal ReadAsarray对于vrt非常慢 - 堆栈内存溢出
  16. 图像去噪的快速入门学习
  17. AD画PCB如何做矩形槽孔
  18. 避坑笔记之Ubuntu 20.04 安装 msfconsole
  19. W3school离线手册2019资源下载
  20. Learning without Forgetting 翻译

热门文章

  1. 每日一书丨《百万在线》罗培羽:服务端入门不该陷进网络编程
  2. python 时间序列数据 重采样
  3. WordPress阿里百秀XIU v7.5博客主题
  4. Google Play Store Apps(谷歌应用程序相关数据集)
  5. linux java tar 卸载_linux环境jdk卸载与安装
  6. opencv-python不规则多边形 ROI提取
  7. JavaScript 函数式编程思想
  8. 2022年PMP考试中敏捷占多少?
  9. JavaScript与CSS的交互(五)
  10. “穷X”事件程序员致歉:以后老实写代码,正紧写注释