LSTM和GRU的动态图解 编者按:关于LSTM,之前我们已经出过不少文章,其中最经典的一篇是chrisolah的《一文详解LSTM网络》,文中使用的可视化图片被大量博文引用,现在已经随处可见。但正如短视频取代纯文字阅读是时代的趋势,在科普文章中,用可视化取代文字,用动态图取代静态图,这也是如今使知识更易于被读者吸收的常规操作。今天,论智给大家带来的是AI语音助理领域的机器学习工程师Michael Nguyen撰写的一篇...
tensorflow2.0 在pycharm下无提示 tensorflow2.0 使用keras一般通过tensorflow.keras来使用,但是pycharm没有提示,原因是因为实际的keras路径放在tensorflow/python/keras,但是在程序中tensorflow又没有python这个目录,解决方法如下:try: import tensorflow.python.keras as kerasexcept: ...
Transformer原理到实践详解 本篇博客并没有什么独特见解之处,只是单纯的再一次加强巩固学习。因为接触到的不少项目用到了,还是要拿过来好好研究学习一下的。原文链接:https://blog.csdn.net/qq_41664845/article/details/84969266代码详见:http://nlp.seas.harvard.edu/2018/04/03/attention.html-Transformer:...
NLP学习之随笔(7) Noisy Channel Model???? ???????????????? ???????????????????????? ∝ ???? ???????????????????????? ???????????????? ????(????????????????)应用场景:语音识别,机器器翻译,拼写纠错,OCR,密码破解机器翻译:P(中文|英文) = P(英文|中文)P(中文)其中P(英文|中文)为translationModel P(中文)为language Mod
NLP学习之随笔(6) 基于检索的问答系统(Recap: Retrieval-based QA System)我们输入一句话。需要计算语料库中每句话和当前输入这句话的相似度,然后返回相似度最高的那个。这种方法的时间复杂度为O(N),,如果语料库中的有10^7个问题,那么在计算一个输入的时候,要计算10^7次。针对该方法,我们可以优化处理。核心思想为:层次过滤思想。我们可以先计算出...
NLP学习之随笔(5) 上篇讲到,一般的one-hot编码,在一定程度上是没有考虑语义的。这样就无法求得语义相似度。所以我们采用分布式词向量来表示单词。但是这个分布式词向量我们怎么得到呢?一般通过一些深度学习的模型来训练得到。比如Skip-gram,glove,gensim,cbow等。计算词向量之间的相似度。我们: [0.1, 0.2, 0.4, 0.2]爬山: [0.2, 0.3, ...
NLP学习之随笔(4) 文本表示输入一句文本,但是计算机不认识。那么我们怎样才能让计算机理解文本呢?这就涉及到文本的表示。1:one-hot编码One-Hot编码,又称为一位有效编码,主要是采用N位状态寄存器来对N个状态进行编码,每个状态都由他独立的寄存器位,并且在任意时候只有一位有效。One-Hot编码是分类变量作为二进制向量的表示。这首先要求将分类值映射到整数值。然后,每个整数值被表示为二进制向量,除...
NLP学习之随笔(3) Spell Correction (拼写错误纠正)那么什么是拼接错误纠正。请看一下例子。简而言之,就是用户的输入和用户真正要输入的存在一定的出入。这种出入可以是英文的拼写错误,也可以是中文的同音词。那么对于拼写错误,我们应该去如何解决呢。比如there 和therr。用户的输入可能是therr,但是手误写成了thera,那么首先我们要在一大堆候选单词里选择there...
NLP学习之随笔(2) 上篇提到在NLP中,最大分词几个缺点。1:效率低下2:受限于最大匹配长度限制3:没有考虑语义。我们这次重点来考虑下语义问题。假设我们现在有个黑盒子工具。这个工具可以帮助我们筛选出分词效果最好的那个。首先输入为:经常有意见分歧。我们可以生成所有的可能分割。例如:S1:经常/有/意见/分歧S2:经常/有/意见/分歧S3:经常/有/意/见/分歧S4:经...
NLP学习之随笔(1) NLP一般的处理流程为:原始文本(raw data)--->分词(Segmentation)---->清洗数据(Cleaning)---->标准化(Normalization)---->特征提取(Feature Extraction)----->建模(Modeling)1:分词常见的分词工具有:Jieba分词https://github.com/f...
生成指定编辑距离的单词 给定一个单词,我们也可以生成编辑距离为K的单词列表。 比如给定 str="apple",K=1, 可以生成“appl”, "appla", "pple"...等 下面看怎么生成这些单词。 还是用英文的例子来说明。 仍然假设有三种操作 - 插入,删除,替换def generate_edit_one(str): """ 给定一个字符串,生成编辑距离为1的字符串列表。 ""...
用Python计算字符串之间的编辑距离 # 基于动态规划的解法def edit_dist(str1, str2): # m,n分别字符串str1和str2的长度 m, n = len(str1), len(str2) # 构建二位数组来存储子问题(sub-problem)的答案 dp = [[0 for x in range(n+1)] for x in range(m+1)]...
用LSTM写古诗词 1:整体思路就是先统计古诗词中的词频,进行词到数字的映射。生成poems_vector(词向量),word_to_int(词数字映射关系),words(词表)。预处理古诗词代码:import collectionsimport numpy as npdef process_poems(file_path): poems = [] with open(fil...
tf.nn.dynamic_rnn详解 函数原型tf.nn.dynamic_rnn( cell, inputs, sequence_length=None, initial_state=None, dtype=None, parallel_iterations=None, swap_memory=False, time_major=False, ...
Attention原理及TensorFlow AttentionWrapper源码解析 本节来详细说明一下 Seq2Seq 模型中一个非常有用的 Attention 的机制,并结合 TensorFlow 中的 AttentionWrapper 来剖析一下其代码实现。Seq2Seq首先来简单说明一下 Seq2Seq 模型,如果搞过深度学习,想必一定听说过 Seq2Seq 模型,Seq2Seq 其实就是 Sequence to Sequence,也简称 S2S,也可以称之为 En...
简明 jieba 中文分词教程 0 引言 jieba 是目前最好的 Python 中文分词组件,它主要有以下 3 种特性:支持 3 种分词模式:精确模式、全模式、搜索引擎模式 支持繁体分词 支持自定义词典# 导入 jiebaimport jiebaimport jieba.posseg as pseg #词性标注import jieba.analyse as anls #关键词提取1 分词 可...
解读tensorflow之rnn from: http://lan2720.github.io/2016/07/16/%E8%A7%A3%E8%AF%BBtensorflow%E4%B9%8Brnn/这两天想搞清楚用tensorflow来实现rnn/lstm如何做,但是google了半天,发现tf在rnn方面的实现代码或者教程都太少了,仅有的几个教程讲的又过于简单。没办法,只能亲自动手一步步研究官方给出的代码了。本文研究的...
用tensorflow做的cbow词向量 1:先导入包#encoding=utf8from __future__ import absolute_importfrom __future__ import divisionfrom __future__ import print_functionimport collectionsimport mathimport osimport randomimport zipf...