- 博客(199)
- 资源 (4)
- 收藏
- 关注
原创 Mac下文件的编码及修改编码
在使用python3做NLP中文文本分类时,由于下载的搜狗语料库本身的编码有关系,本身编码是ASCII码,而我们需要以UTF-8来读取,所以就遇到如下不能显示中文文本的输出(mac下):u: {\rtf1\ansi\ansicpg936\cocoartf1561\cocoasubrtf400{\fonttbl\f0\fnil\fcharset134 PingFangSC-Regular;}...
2018-09-10 00:38:37
34528
1
原创 Python3 对于中文文件的读写处理
字符串在Python内部的表示是Unicode编码,因此,在做编码转换时,通常需要以Unicode作为中间编码,即先将其他编码的字符串解码(decode)成Unicode,再从Unicode编码(encode)成另一种编码。在新版本的python3中,取消了unicode类型,代替它的是使用unicode字符的字符串类型(str),字符串类型(str)成为基础类型如下所示,而编码后的变为了字节...
2018-09-09 23:13:43
22111
1
原创 pandas库Series使用和ix、loc、iloc基础用法
pandas库Series基础用法:直接贴出用例:1. 构造/初始化Series的3种方法:(1)用列表list构建Seriesimport pandas as pdmy_list=[7,'Beijing','19大',3.1415,-10000,'Happy']s=pd.Series(my_list)print(type(s))print(s)<class ...
2018-09-09 11:39:58
7369
转载 Tensorflow模型的保存与恢复的细节
翻译自:http://cv-tricks.com/tensorflow-tutorial/save-restore-tensorflow-models-quick-complete-tutorial/在这篇tensorflow教程中,会解释:1) Tensorflow的模型(model)长什么样子?2) 如何保存tensorflow的模型?3) 如何恢复一个tensorflow模型...
2018-09-04 15:05:42
587
原创 tensorflow加载训练好的模型实例
首先了解下tensorflow的基础语法知识,这里不再详细说明其细节,只举例学习。tensorflow的tf.transpose()简单使用:tf.reshape(tensor, shape, name=None) 矩阵变形是常用的操作,在Tensorflow中调用方式有多种,例如: 1.tf.reshapetf.reshape(L3, [-1, W4.get_shape().as_l...
2018-09-04 14:23:31
15632
7
原创 情感分析之电影评论分析-基于Tensorflow的LSTM
1. 深度学习在自然语言处理中的应用自然语言处理是教会机器如何去处理或者读懂人类语言的系统,目前比较热门的方向,包括如下几类:对话系统 - 比较著名的案例有:Siri,Alexa 和 Cortana。 情感分析 - 对一段文本进行情感识别。 图文映射 - 用一句话来描述一张图片。 机器翻译 - 将一种语言翻译成另一种语言。 语音识别 - 让电脑识别口语。2. 情感分...
2018-08-30 10:25:22
24345
14
原创 基于Gensim的Word2Vec的应用
一:word2vec的基础简介可以参考: https://blog.csdn.net/lilong117194/article/details/82018008 https://blog.csdn.net/lilong117194/article/details/82085172 https://blog.csdn.net/lilong117194/article/details/81979...
2018-08-30 09:58:35
3438
转载 知识图谱资源-NLP
NLP自然语言处理(Natural Language Processing)是深度学习的主要应用领域之一。 教程 http://cs224d.stanford.edu/ CS224d: Deep Learning for Natural Language Proce...
2018-08-29 13:49:07
2374
原创 word2vec的通俗理解
在自然语言处理领域中,本文向量化是文本表示的一种重要方式。在当前阶段,对文本的大部分研究都是通过词向量化实现的,但同时也有一部分研究将句子作为文本处理的基本单元,也就是doc2vec和str2vec技术。1. 向量化算法word2vec大家很熟悉的词袋(bag of words)模型是最早的以词语为基本处理单元的文本向量化算法,所谓的词袋模型就是借助于词典把文本转化为一组向量,下面是两个简...
2018-08-28 23:40:17
21896
14
原创 tensorflow的tf.transpose()简单使用
tf.transpose(input, [dimension_1, dimenaion_2,..,dimension_n]):这个函数主要适用于交换输入张量的不同维度用的,如果输入张量是二维,就相当是转置。dimension_n是整数,如果张量是三维,就是用0,1,2来表示。这个列表里的每个数对应相应的维度。如果是[2,1,0],就把输入张量的第三维度和第一维度交换。import tensor...
2018-08-28 14:52:23
1201
原创 词嵌入算法
基于神经网络的表示一般称为词向量、词嵌入(word embdding)或分布式表示。神经网络的词向量和其他分布式类似,都基于分布式表达方式,核心依然是上下文的表示以及上下文与目标词之间的关系映射。主要通过神经网络对上下文,以及上下文和目标词之间的关系进行建模,之所以神经网络可以进行建模,主要是由于神经网络的空间非常大,所以这种方法可以表达复杂的上下文关系。1. 词向量nlp中最常见的第...
2018-08-27 01:06:42
11139
原创 神经网路语言模型(NNLM)的理解
用神经网络来训练语言模型的思想最早由百度 IDL (深度学习研究院)的徐伟提出[1],NNLM(Nerual Network Language Model)是这方面的一个经典模型,具体内容可参考 Bengio 2003年发表在JMLR上的论文。与传统的估算p(wt|wt−(n−1),...wt−1)p(wt|wt−(n−1),...wt−1)p(w_t|w_{t-(n-1)},...w_{t-...
2018-08-24 17:53:36
24170
6
原创 基于tensorflow的RNN自然语言建模
#!/usr/bin/env python3# -*- coding: utf-8 -*-"""Created on Tue Aug 21 09:48:09 2018@author: lilong""&am
2018-08-23 11:44:27
1025
原创 tensorflow中name_scope和variable_scope变量的使用
1. variable_scope的使用首先,使用variable_scope可以很方便的管理get_varibale。如何确定 get_variable 的 prefixed name?1.1 variable scope是可以嵌套的:import tensorflow as tfwith tf.variable_scope("tet1"): var3 = tf....
2018-08-21 17:22:48
3299
原创 mac下的tensorflow报错提示没有models库
原因:目前tf1.0版本的也就是比较新的版本都将models库剔除,当做第三方库来使用了。解决方案: 1. 直接重新下载安装 tf的低的版本 2. 手动安装models库我这里选择的是手动安装models库: 网上查的资料说可以通过提前下载好model文件,然后将models文件放在/Users/lilong/anaconda3/envs/tensorflow/lib/pytho...
2018-08-20 17:59:09
999
原创 tensorflow 模型的保存和加载
为了让训练结果可以复用,需要将训练得到的神经网络模型持久化,也就是把模型的参数保存下来,并保证可以持久化后的模型文件中还原出保存的模型。1. 保存模型tensorflow提供了一个API可以方便的保存和还原神经网络的模型。这个API就是tf.train.saver类。import tensorflow as tf# 保存计算两个变量和的模型v1 = tf.Variable(tf....
2018-08-16 19:08:58
1370
转载 通俗讲解自底向上构建知识图谱全过程
知识图谱的基础介绍,供学习参考。 转载自:https://mp.weixin.qq.com/s/7cBbtqvPQUVrLZUNDx8XDQ下面开始正文: 知识图谱的构建技术主要有自顶向下和自底向上两种。其中自顶向下构建是指借助百科类网站等结构化数据源,从高质量数据中提取本体和模式信息,加入到知识库里。而自底向上构建,则是借助一定的技术手段,从公开...
2018-08-15 11:13:22
3067
原创 tensorflow中学习率、过拟合、滑动平均的学习
1. 学习率的设置我们知道在参数的学习主要是通过反向传播和梯度下降,而其中梯度下降的学习率设置方法是指数衰减。 通过指数衰减的学习率既可以让模型在训练的前期快速接近较优解,又可以保证模型在训练后期不会有太大的波动,从而更加接近局部的最优解。 在tensorflow中提供了一个灵活的学习率设置方法,tf.train.exponential_decay函数实现了指数衰减,其实现的原理如下:...
2018-08-14 17:46:31
3303
1
原创 tensorflow入门之损失函数
1. 深层网络介绍激活函数实现去线性化 在没有加入激活函数的时候,一个模型的运算其实就是输出是输入的线性加权和,不管中间有多少的隐层,因为每个隐藏层都是在做一个线性变换,后面不管再加上多少隐藏层,都是在做线性变换,因为线性模型的特点就是任意线性模型的组合任然是线性模型。 比如前向传播的计算公式:a(1)=XW(1),y=a(1)W(2)a(1)=XW(1),y=a(1)W(2)a^{(1)...
2018-08-14 09:47:26
647
原创 Tensorflow实现简单神经网络
1. 神经网络参数与tensorflow变量在tensorflow中使用tf.variable定义变量,变量作用是保存和更新神经网络中的参数。并且要给变量初始化一个初始值:weights=tf.Variable(tf.random_normal([2, 3], stddev=2))这里定义了一个2x3的矩阵,矩阵中的元素是均值为0,标核差为2的随机数,这是因为tf.random_n...
2018-08-13 13:42:41
666
原创 tensorflow入门基础
tensorflow程序一般分为两个阶段,在第一个阶段需要定义图中所有的计算。在第二个阶段就是执行计算。1. 计算图的使用首先在tensorflow的程序中系统会维护一个默认的计算图,通过tf.get_default_graph()可以获取当前默认的计算图。下面展示了 如何获得一个运算所属的计算图以及默认的计算图:import tensorflow as tfa = tf.c...
2018-08-12 18:44:44
293
原创 深度学习中softmax交叉熵损失函数的理解
softmax层的作用通过神经网络解决多分类问题时,最常用的一种方式就是在最后一层设置n个输出节点,无论在浅层神经网络还是在CNN中都是如此,比如,在AlexNet中最后的输出层有1000个节点,即便是ResNet取消了全连接层,但1000个节点的输出层还在。一般情况下,最后一个输出层的节点个数与分类任务的目标数相等。 假设最后的节点数为N,那么对于每一个样例,神经网络可以得到一个N维的...
2018-08-11 23:49:43
29337
7
原创 mac下查看tensorboard中的graph
这里简单介绍下在tensorflow中查看计算图的方法:首先是一个简单的例子:#!/usr/bin/env python3# -*- coding: utf-8 -*-"""Created on Thu Aug 9 09:32:50 2018@author: lilong"""import tensorflow as tf# 定义一个graph类graph = t..
2018-08-09 11:00:42
2351
2
原创 命名实体识别——日期识别
命名实体识别其目的是识别语料中的人名、地名、组织结构名等命名实体,由于这些命名实体在不断地更新,很难在词典中全部列出,所以就对这些词的识别在词汇形态处理任务中单独处理,也就是NER技术。而命名实体识别效果的评判标准主要是看实体的边界是否划分正确,以及实体的类型是否标注正确,对于英文来说命名实体的边界识别相对简单,因为一般都有明显的形式标志,而对于实体类型的确定相对较难。在中文中相较于实体类...
2018-07-26 15:36:32
9487
原创 jieba词性标注
词性标注这里首先了解下词性标注: 中文的词性标注一般存在很多不固定性,比如同音同形的词在不同的场景下,其表示的语法属性截然不用,这就为词性标注带来了很大的困难。但是从另外一个方面看,整体上来说大多数的词语,尤其是实词,一般只有一个到两个词性,而其中一个词性相对于另一个是高频的,这时如果默认将高频词性作为词性选择进行标注,也能有很高的准确率。这时对于大部分的场景来说,还是能满足基本的准确度要求...
2018-07-26 11:18:19
4877
原创 windows10下Anaconda spyder安装CRF++的python接口
在基于条件随机场的命名实体识别时,用到CRF++,而且提供了python接口,虽然说可以用命令行执行,但接口配置我觉得还是很有必要的。准备必要的安装包: CRF++ -0.58(windows版) vs_community_ENU.exe 可以在网上下载相应的安装包。我这里的环境是: windows 10(64位) Anaconda3(64位)——python 3.6下载CR...
2018-07-25 16:37:33
4775
14
原创 jieba分词实例
jieba社区活跃,它其实不只有分词这一个功能,其还是一个开源框架,提供了很多分词之上的算法,如关键词提取、词性标注等。结巴分词是基于规则和统计的混合分词方法。对于未登陆词,jieba使用了基于汉字成词的HMM模型,采用viterbi算法进行推到。jieba的三种分词方法:精确模式:试图将句子最精确的切开,适合文本分析全模式:把句子中所有可以成词的词语扫描出来,速度非常快,但是...
2018-07-19 22:58:06
4549
原创 中文分词之正向最大匹配算法
中文分词目前可以分为“规则分词”,“统计分词”,“混合分词(规则+统计)”这三个主要流派。这次介绍下基于规则的分词,其是一种机械的分词方法,主要通过维护词典,在切分语句时,将语句的每个字符串与词表中的词逐一进行匹配,找到则切分,否则不予切分。正向最大匹配算法:这里需要知道两点,一个是分词词典(也即是已经分词过的词典),另一个是需要被分词的文档。假定分词词典中的最长词有iii个汉子字符串,则用被...
2018-07-19 12:46:10
11512
1
原创 中文分词之维特比算法详解
这里我们先来简单复习一下概率论中的一些基本知识:事件A在另外一个事件B已经发生条件下的发生概率,称为条件概率,记为P(A|B)。 两个事件共同发生的概率称为联合概率。A与B的联合概率表示为 P(AB) 或者P(A,B)。 进而有,P(AB) = P(B)P(A|B)=P(A)P(B|A)。这也就导出了最简单形式的贝叶斯公式,即P(A|B)=P(B|A)*P(A)/P(B) 以及条件概...
2018-07-17 23:56:57
6835
1
原创 递归神经网络部分组件(七)
递归神经网络的基础知识参考: https://www.zybuluo.com/hanbingtao/note/626300
2018-05-17 14:54:18
584
原创 长短时记忆网络(LSTM)部分组件(六)
在前面的几篇文章中试着实现了CNN,RNN的一些组件,这里继续学习LSTM,也是是实现部分组件,旨在学习其LSTM的原理。具体参考: https://www.zybuluo.com/hanbingtao/note/581764下面是代码实现:...
2018-05-16 20:20:57
1420
原创 循环神经网络RNN的基本组件(五)
RNN的基础知识和公式推导参考: https://www.zybuluo.com/hanbingtao/note/541458下面的部分实现代码也是基于上面的文章给出的,通过实现其中的组件来加深对RNN原理的认识,并且可以熟悉代码实现的框架。这里强调下:循环神经网络的训练循环神经网络的训练算法:BPTTBPTT算法是针对循环层的训练算法,它的基本原理和BP算法是一样的,也包含同样...
2018-05-13 20:52:05
892
2
原创 python面向对象、向量化来实现神经网络和反向传播(三)
现在,我们要根据前面的算法,实现一个基本的全连接神经网络,这并不需要太多代码。我们在这里依然采用面向对象设计。理论知识参考:https://www.zybuluo.com/hanbingtao/note/476663,这里只撸代码。由于自身的对象编程意识比较弱,这里重点分析下算法的面向对象编程。1. 神经网络的实现(面向对象)首先,本算法的实现有几个类组成: 如上图,可以...
2018-05-06 17:36:21
3413
原创 python中的数列[a::b]操作
这里直接给出代码:In [9]: b=[2,4,5,7,1] In [10]: b[-2::1] Out[10]: [7, 1]In [11]: b[-2::-1]Out[11]: [7, 5, 4, 2]In [12]: b[-2::-2]Out[12]: [7, 4]In [13]: b[-2::2]Out[13]: [7]b[-2::1]:其中-2表示从倒...
2018-05-04 16:43:45
13128
原创 线性拟合和梯度下降python代码实现—面向对象(二)
最近看到了一个系列博客,写的不错,就拿来学习了下。一来加深理解,二来锻炼自己编写代码的能力。关于基础的理论知识就不重述了,网上资源很多,这里推荐:https://www.zybuluo.com/hanbingtao/note/448086,因为我就是学习的这个系列博客。这里只对比和上篇python 实现感知器之间的联系和代码复用的地方。 这里只更新下激活函数即可,而且这里的激活函数相当于...
2018-05-02 16:21:12
837
原创 python 实现感知器(一)
基础知识不再重述,可参考https://www.zybuluo.com/hanbingtao/note/433855直接贴出文章里的代码以供参考学习,这里主要是为了锻炼自己的编写代码的能力,之前一直是过程式的编程,这里锻炼自己面向对象的编程能力。# -*- coding: utf-8 -*-# 这里定义一个感知器的类class Perceptron(object): d...
2018-04-28 15:23:05
3434
原创 python中的self&描述符__set__和__get__&简单总结
1. python中的self用法总结class Student(object): def __init__(self, name, score): self.name = name self.score = score__init__方法的第一参数永远是self,表示创建的类实例本身,因此,在__init__方法内部,就可以把各种属性绑定到s...
2018-04-27 20:29:00
10107
转载 Python 中的属性访问与描述符
在Python中,对于一个对象的属性访问,我们一般采用的是点(.)属性运算符进行操作。例如,有一个类实例对象foo,它有一个name属性,那便可以使用foo.name对此属性进行访问。一般而言,点(.)属性运算符比较直观,也是我们经常碰到的一种属性访问方式。然而,在点(.)属性运算符的背后却是别有洞天,值得我们对对象的属性访问进行探讨。对象的属性class Animal(object)...
2018-04-27 20:25:44
3219
原创 python 装饰器简单笔记(附 *args **kw)
1. 装饰器由于函数也是一个对象,而且函数对象可以被赋值给变量,所以,通过变量也能调用该函数。 现在,假设我们要增强函数的功能,比如,在函数调用前后自动打印日志,但又不希望修改函数的定义,这种在代码运行期间动态增加功能的方式,称之为“装饰器”(Decorator)。本质上,decorator就是一个返回函数的高阶函数。# 这里定义一个能打印日志的decorator,所以接受一个函数作...
2018-04-26 21:56:21
1928
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅