专注于前后端服务器交互,人工智能,NLP领域
textblob 实际上是封装了以下nltk,几乎所有方法都是调用的nltk库。 还是用上一篇的训练性别的例子。 #coding=utf-8 import random, nltk from nltk.corpus import names from textblob.classifiers import NLTKClassifier from textblob import Tex
NLTK是Python的一个自然语言处理的模块,其中实现了朴素贝叶斯分类算法。以下,就使用上一篇文中提到的数据,来应用这个模块实现朴素贝叶斯分类。NLTK的实现更加泛化,所以在应用到我们的数据上时需要做一点的转化。 首先来看一下NLTK官方文档中给出的一个简单明了的例子,在了解这个例子之后,再设法将同样的模型应用到自己的数据集上。官方给出的例子是英文名中,在知道名字中最后
(1)找不到数据文件错误 Errors more Resource u'tokenizers/punkt/english.pickle' not found. Please use the NLTK Downloader to obtain the resource: >>> nltk.download() Searched in:
github 地址:https://github.com/nltk/nltk/ 官方地址:http://www.nltk.org/ 中文文档:http://download.csdn.net/detail/u013378306/9756747 安装及测试 Install NLTK: run sudo pip install -U nltk Install Num
隐马尔科夫模型(HMM): 图1. 隐马尔科夫模型 隐马尔科夫模型的缺点: 1、HMM只依赖于每一个状态和它对应的观察对象: 序列标注问题不仅和单个词相关,而且和观察序列的长度,单词的上下文,等等相关。 2、目标函数和预测目标函数不匹配: HMM学到的是状
以下是我国20大知名语料库,书到用时方恨少,还不赶快来收藏?! 1.中央研究院近代汉语标记语料库:http://www.sinica.edu.tw/Early_Mandarin/ 2.中央研究院汉籍电子文献(瀚典全文检索系统)http://www.sinica.edu.tw/ftms-bin/ftmsw3 3.国家现代汉语语料库:http://124.207.106
项目目录: nlp_server ├── db.sqlite3 ├── manage.py ├── nlp_server │ ├── __init__.py │ ├── __init__.pyc │ ├── nlp │ │ ├── __init__.py │ │ ├── __init__.pyc │ │ └── qg │ │ ├──
CRF,HMM(隐马模型),MEMM(最大熵隐马模型)都常用来做序列标注; HMM一个最大的缺点就是由于其输出独立性假设,导致其不能考虑上下文的特征,限制了特征的选择,而MEMM模型则解决了这一问题,可以任意的选择特征,但由于其在每一节点都要进行归一化,所以只能找到局部的最优值,同时也带来了标记偏见的问题(label bias),即凡是训练语料中未出现的情况全都忽略掉;而CR
了解HMM的人们,都知道HMM有五个基本要素,三个假设和解决的三个问题: 首先看下HMM的五个基本要素: HMM是个五元组λ =( S, O , π ,A,B) S:状态值集合,O:观察值集合,π:初始化概率,A:状态转移概率矩阵,B:给定状态下,观察值概率矩阵 其次,回忆下HMM的三个假设: 1、有限历史性假设,p(si|si-1,si
PhoneGap是一套能让你使用HTML5轻松调用本地API接口和发布应用到商店的应用开发平台。官方说有低成本,低开发周期,轻量化等优点,这些咱暂时也没法证明,略过不表。但是有一条跨平台,却是很明显的优势。因为它采用HTML5+JavaScript的模式来开发应用。PhoneGap用JavaScript统一封装了几大平台的本地api(Andriod,IOS,WP8/7,WINRT)等等
初次尝试用HTML/JS开发Android。 由于业务需求和大趋势导致,目前纵观很多APP。很多都是用H5+native的方式去开发。关于wepApp和nativeApp它们之前的是是非非就不说了。 下面是利用H5应该是JS去调用本地Android的代码。 不是什么特别高深的东西。 第一布局: 1 <RelativeLayou
1、安装iptables防火墙 怎么知道系统是否安装了iptables?执行iptables -V,如果显示如: iptables v1.3.5 说明已经安装了iptables。 如果没有安装iptables需要先安装,执行: yum install iptables-services在Linux中设置防火墙,以CentOS为例,打开iptables的配置文件: vi /etc/sysco
通过追加-t, –textmodel参数可以输出文本格式的CRF模型文件,通过该模型文本,可以加深对条件随机场的理解或为其他应用所利用。本文旨在介绍CRF++的文本模型格式,具体读取与解码将集成到HanLP中一并开源。 训练 语料 以BMES标注语料为例: 那 S 音 B 韵 E 如 S 轻 B 柔 E 的 S 夜 B 风 E , S 惊 S 溅
一 理论: 简版:猜(E-step),反思(M-step),重复; 啰嗦版: 你知道一些东西(观察的到的数据), 你不知道一些东西(观察不到的),你很好奇,想知道点那些不了解的东西。怎么办呢,你就根据一些假设(parameter)先猜(E-step),把那些不知道的东西都猜出来,假装你全都知道了; 然后有了这些猜出来的数据,你反思一下,更新一下你的假设(parameter)
摘要 本文对最大熵模型进行了系统性的学习和总结,从不同的角度来解读熵的概念以及最大熵的内涵。对最大熵的具体应用进行了梳理,并介绍了与最大熵相关的一些概念,最后通过一个简单的demo来对最大熵模型进行直观的认识和感悟。 引言 熵,忘了第一次接触是在物理课上还是在化学课上,总之是描述系统的无序性或者混乱状态,跟热力学第二定律的宏观方向性有关:在不加外力的情况下,总是往混乱状态改变;跟化
在上一篇文章《零基础入门深度学习(4):循环神经网络》中,我们介绍了循环神经网络以及它的训练算法。我们也介绍了循环神经网络很难训练的原因,这导致了它在实际应用中,很难处理长距离的依赖。在本文中,我们将介绍一种改进之后的循环神经网络:长短时记忆网络(Long Short Term Memory Network, LSTM),它成功地解决了原始循环神经网络的缺陷,成为当前最流行的RNN,在
在前面的文章系列文章中,我们介绍了全连接神经网络和卷积神经网络,以及它们的训练和使用。他们都只能单独的取处理一个个的输入,前一个输入和后一个输入是完全没有关系的。但是,某些任务需要能够更好的处理序列的信息,即前面的输入和后面的输入是有关系的。 比如,当我们在理解一句话意思时,孤立的理解这句话的每个词是不够的,我们需要处理这些词连接起来的整个序列;当我们处理视频的时候,我们也不
神经元 神经元和感知器本质上是一样的,只不过我们说感知器的时候,它的激活函数是阶跃函数;而当我们说神经元时,激活函数往往选择为sigmoid函数或tanh函数。如下图所示: sigmoid函数的定义如下: 将其带入前面的式子,得到 sigmoid函数是一个非线性函数,值域是(0,1)。函数图像如下图所示
零基础入门深度学习(1) - 感知器零基础入门深度学习(2) - 线性单元和梯度下降零基础入门深度学习(3) - 神经网络和反向传播算法零基础入门深度学习(4) - 卷积神经网络 零基础入门深度学习(5) - 循环神经网络。 零基础入门深度学习(6) - 长短时记忆网络(LSTM)。 无论即将到来的是大数据时代还是人工智能时代,亦或是传统行业使用人工智能在云上处理大数据的时代,作
假设 特征 和 结果 都满足线性。即不大于一次方。这个是针对 收集的数据而言。 收集的数据中,每一个分量,就可以看做一个特征数据。每个特征至少对应一个未知的参数。这样就形成了一个线性模型函数,向量表示形式: 这个就是一个组合问题,已知一些数据,如何求里面的未知参数,给出一个最优解。 一个线性矩阵方程,直接求解,很可能无法直接求解。有唯一解的数据集,微乎其微。 基本上都是解不存
TensorFlow入门教程之1: 基本概念以及理解 TensorFlow入门教程之2: 安装和使用 TensorFlow入门教程之3: CNN卷积神经网络的基本定义理解 TensorFlow入门教程之4: 实现一个自创的CNN卷积神经网络 TensorFlow入门教程之5: TensorBoard面板可视化管理 TensorFl
将这个 spring Boot 项目的打包方式设置为 war。 <packaging>war</packaging> 去除內嵌tomcat SpringBoot 默认有内嵌的 tomcat 模块,因此,我们要把这一部分排除掉。(注意不放在第三方tomcat不要去掉),可以先自测没问题,再去除,当然不去除在第三方tomcat下也可以运行 <d
本文根据官方文档深入讲解一段代码 简单例子 Spring Boot建议使用Maven或Gradle,本文以Maven为例。 首先创建一个一般的Maven项目,有一个pom.xml和基本的src/main/java结构。 在pom.xml中写上如下内容: <?xml version="1.0" encoding="UTF-8"?> <project x
一、About thrift 二、什么是thrift,怎么工作? 三、Thrift IDL 四、Thrift Demo 五、Thrift 协议栈 以及各层的使用(java 为例) 六、与protocolbuffer的区别 一、About thrift thrift是一种可伸缩的跨语言服务的发展软件框架。它结合了功能强大的软件堆栈的代
特点 1,支持三种分词模式: a,精确模式,试图将句子最精确地切开,适合文本分析; b,全模式,把句子中所有的可以成词的词语都扫描出来, 速度非常快,但是不能解决歧义; c,搜索引擎模式,在精确模式的基础上,对长词再次切分,提高召回率,适合用于搜索引擎分词。 2,支持繁体分词 3,支持自定义词典 安装 1,Python 2.x 下的安装 全自
(1) 准备文本 可以用爬虫爬,也可以去下载,必须是全文本。 (2)对数据进行分词处理 因为英文但此只见是空格所以不需要分词,二中文需要分词, 中文分词工具还是很多的,我自己常用的: - 中科院NLPIR - 哈工大LTP - 结巴分词 注意:分词后保存的文件将会作为word2vec的输入文件进行训练 (3)训练与实验 python 需要先安装gensim,参
(1)安装gensim pip install --upgrade setuptools pip install gensim sudo pip install pattern (2)使用上次训练好的词向量vectors.bin vectors.bin 的生成参考http://blog.csdn.net/u013378306/article/details/54
归一化化定义:我是这样认为的,归一化化就是要把你需要处理的数据经过处理后(通过某种算法)限制在你需要的一定范围内。首先归一化是为了后面数据处理的方便,其次是保正程序运行时收敛加快。 数据归一化的目的是为了把不同来源的数据统一到一个参考系下,这样比较起来才有意义。 数据归一化,很重要。比如在用SVM分类时,数据尺度不统一对分类准确率影响很大。归一化一般将数据规整到一个小范围之间,如[0,
google的下载地址国内已无法连接,下载地址http://download.csdn.net/detail/u013378306/9741439 安装步骤 1、下载word2vec,其目录结构如下: 2、进入word2vec所在目录,使用make指令进行安装 make 可以发现在安装的时候,会出现如下error: gcc wor
一、基本概念 word2vec是Google在2013年开源的一个工具,核心思想是将词表征映 射为对应的实数向量。 目前采用的模型有一下两种 CBOW(Continuous Bag-Of-Words,即连续的词袋模型) Skip-Gram 项目链接:https://code.google.com/archive/p/word2vec 二、背景知识 词向量 词向量就是用
word2vec 要解决问题: 在神经网络中学习将word映射成连续(高维)向量,这样通过训练,就可以把对文本内容的处理简化为K维向量空间中向量运算,而向量空间上的相似度可以用来表示文本语义上的相似度。 一般来说, word2vec输出的词向量可以被用来做很多 NLP 相关的工作,比如聚类、找同义词、词性分析等等。另外还有其向量的加法组合算法。官网上的例子是 : vector('
源码安装好crf++后,可能会遇到以下问题. (1)如果python要使用CRFPP包,必须安装python的依赖包,在下载源码解压后的 CRF++-0.58/python路径下运行以下命令 python setup.py build sudo python setup.py install (2)然后在Python 或者Ipython 里输入 import CRFPP
在平时工作中经常用到条件随机场(CRF)进行任务处理,比如做一些标注工作和命名实体识别工作。自己比较常用的工具就是CRF++。下载地址为:https://code.google.com/p/crfpp/(此下载地址已不可用)。官网地址为:https://taku910.github.io/crfpp/ windows下面直接使用即可,Linux需要做一些编译任务。下载后解压缩进入目录
CRF简介 Conditional Random Field:条件随机场,一种机器学习技术(模型) CRF由John Lafferty最早用于NLP技术领域,其在NLP技术领域中主要用于文本标注,并有多种应用场景,例如: 分词(标注字的词位信息,由字构词) 词性标注(标注分词的词性,例如:名词,动词,助词) 命名实体识别(识别人名,地名,机构名,商品名等具有一定内在规律的实体名
apache spring @RequiresRoles 不起作用,只需要把下面代码添加到spring-mvc 配置文件中 <!-- Support Shiro Annotation --> <bean class="org.springframework.web.servlet.handler.SimpleMappingExceptionResolver"
什么是熵(Entropy) 简单来说,熵是表示物质系统状态的一种度量,用它老表征系统的无序程度。熵越大,系统越无序,意味着系统结构和运动的不确定和无规则;反之,,熵越小,系统越有序,意味着具有确定和有规则的运动状态。熵的中文意思是热量被温度除的商。负熵是物质系统有序化,组织化,复杂化状态的一种度量。 熵最早来原于物理学. 德国物理学家鲁道夫·克劳修斯首次提出熵的概念,用来表示任何一种能
mybatis版本 1.数据源配置: jdbc_multiple.properties: # MySQL #============================================================================ jdbc.mysql.driver=com.mysql.jdbc.Driver jdbc.mysql.url=jd
本人在scrapy-redis项目中的setting.py中配置,可时中有问题。但是可以使用以下方法: 首先,你要确保安装了splash,并且已经启动 (1)先安装scrapy-splash库: [python] view plain copy pip install scrapy-splash (2)然后
首先给出splash官网地址:http://splash.readthedocs.io/en/stable/api.html#render-html 1.安装和准备 (1)先安装scrapy-splash库: pip install scrapy-splash (2)然后将我们的docker起起来 docker run -p 8050:8
前言:几种渲染js,ajax插件对比 (1)selenium+webdriver(如firefox,chrome等)。这要求你系统有对应浏览器,并且过程中要全程开浏览器。说白了,就是你通过浏览器能看到啥,就能抓到啥。一般遇到特别复杂的验证码时,这个方法是有必要的,当然,开着浏览器爬虫的效率可想而知。 (2)selenium+phantomjs。PhantomJS是一个WebKit,他的
(1)ubuntu上运行的django出现No space left on device错误 运行django出现错误信息: [2016-12-24 14:33:24,476 pyinotify ERROR] add_watch: cannot watch /usr/local/lib/python2.7/dist-packages/django/contrib/sessi
(1)安装 pip 命令安装方法 pip install Django 源码安装方法 下载源码包:https://www.djangoproject.com/download/ 输入以下命令并安装: tar xzvf Django-X.Y.tar.gz # 解压下载包 cd Django-X.Y # 进入 Djang
callback 函数可以写自己的方法校验 issueInvoiceForm.validation = function(){ $('#issueInvoiceForm').on('init.field.bv', function(e, data) { var $icon = data.element.data('bv.icon'),
My97DatePicker日期范围限制 1.动态时间范围限制: 可以通过系统给出的动态变量,如%y(当前年),%M(当前月)等来限制日期范围,还可以通过{}进行表达式运算,如:{%d+1}:表示明天。 格式 说明
原因: (1)连接后没有关闭(2)死锁(3)程序重开的连接数太多等 解决 : (1)连接后如果不用及时关闭, (2)手动关闭不用连接 mysql> show processlist; +----+------+-----------+--------------------+---------+------+-------+------------------+ | Id
上一篇文件浅析了Netty中的事件驱动过程,这篇主要写一下异步相关的东东。 首先,什么是异步了? 异步的概念和同步相对。当一个异步过程调用发出后,调用者不能立刻得到结果。实际处理这个调用的部件在完成后,通过状态、通知和回调来通知调用者。 异步的好处是不会造成阻塞,在高并发情形下会更稳定和更高的吞吐量。 说到Netty中的异步,就不得不提ChannelFuture。Netty中
本篇文章着重于浅析一下Netty的事件处理流程,Netty版本为netty-3.6.6.Final。 Netty定义了非常丰富的事件类型,代表了网络交互的各个阶段。并且当各个阶段发生时,触发相应的事件交给pipeline中定义的handler处理。 举个例子,如下一段简单的代码: ChannelFactory factory = new NioServ
两种I/O多路复用模式:Reactor和Proactor 两者都是基于事件驱动,都是在完成之前把一个回调方法注册到事件中,当人物完成后会回调此方法。区别在于 Reactor 是同步IO,Proactor是异步IO,即把IO操作交给操作系统。 一般地,I/O多路复用机制都依赖于一个事件多路分离器(Event Demultiplexer)。分离器对象可将来自事件源的I/O事件分
Java NIO 的核心组成部分: 1.Channels 2.Buffers 3.Selectors 我们首先来学习Channels(java.nio.channels): 通道 1)通道基础 通道(Channel)是java.nio的第二个主要创新。它们既不是一个扩展也不是一项增强,而是全新、极好的Java I/O示例,提供与I/O服务的直接连接。Channel
异步channel API 主要引入三个异步类: AsynchronousFileChannel,AsynchronousSocketChannel, and AsynchronousServerSocketChannel. AsynchronousFileChannel跟FileChannel区别:不保存全局的position和offset,可以制定访问位置,也支持并发访问文件不