AI人工智能系列随笔:syntaxnet 初探(1)
人工智能是 最近的一个比较火的名词,相信大家对于阿尔法狗都不陌生吧?其实我对人工智能以前也是非常抵触的,因为我认为机器人会取代人类,成为地球乃至宇宙的霸主,但是人工智能带给我的这种冲击,我个人感觉是欲罢不能的,进入正题,网上找了一个人工智能的框架,它的名字叫做syntaxnet ,有兴趣的可以去看看,底层是用C++实现的。
由于人工智能是一个比较新的名词,连我自己接触的也很少;所以也只能带大家一起摸索了,如果园子里有人工智能 方面的大牛,还希望多多请教。
syntaxnet 官方的解释是:有序的神经网络模型。它有另外一个奇怪的名字,叫做:TensorFlow 。TensorFlow实现的模型的描述这里可以找到;GOOGLE花费了大量的时间去研究怎么才能让机器更聪明的学习人类的语言,以及以更快的方式学习人类的语言;
这里有必要去科普一下TensorFlow,我刚刚查了下;官方的解释是:TensorFlow是一款开源的使用使用数据流图的数值计算类库。在图形中的节点(Node)呈现了各种不同的数学操作等等...剩下的就不翻译了,有感兴趣的可以谷歌一下。其实我外语不太好,各位抱歉了,翻译啥的,慢慢来吧。
训练模型
下面的教程当中,我将告诉大家 如何训练模型,会介绍更多的和NPL相关的东西;重点关注点是NPL 管道。
词性标注器
考虑如下句子,它有 很多种不同的意思;I saw the man with glasses 以上句子由下面几部分组成:
不同的字符串可以分割成如下几组:例如:"I","saw","the" 就是3组,分隔符为空格,每一个单词都有它们不同的意思,大家学过英语的人都知道,英语有时候一个词有10几个意思,并且这次意思在不同的语境中的意思都是不同的;比如这里面的saw是to see的过去式,然而已经提到过,不同的词在不同 的语境当中有不同的意思,比如saw在某些情况下可以作为名词,也有可能是现在时,上面说的需要一点英语基础的。
如果要理解不同的词的意思,首先是需要知道不同的词在在这个句子中所扮演的不同角色,这个过程就叫做Part-of-Speech (POS) Tagging,也就是词性标注器,这些角色叫做POS Tags,虽然一个单词可能对于这个句子来说拥有不同的上下文,但是对于任何的一个组成句子的单词来说,当它们的语义组合在一起的时候,往往Tag(释义)的个数会大幅减少,一般来说就是一种意思。
对于POS Tagging来说,对于一个句子当中定义动词,是一个很有挑战性的东西。当动词和名词的意思很相近的时候,对于任何语言来说,定义动词或者名词,都是极其困难的。 Universal Dependencies 的目的就是为了解决这个问题,有兴趣的可以点开看看。
训练SyntaxNet POS Tagger
要得到这个句子的所有单词的正确Tag,我们首先必须让机器能够理解这个句子的具体意思,在当前上下文当中。这里我们可以采用一种句子当中的就近原则去分析,比如I saw the man with glasses, saw 的前面是I,saw 的后面是the;比如the的后面,一般来说是接名词或者形容词,而并不是动词。
为了达到预估什么意思的目的,一般使用如下步骤:从左到右。我们先把这个句子的所有的临近的词配合起来,然后把这些意思都算出来,然后发送给神经网络分类器的前馈,用来分析POS Tags在不同的语境当中的不同意思。因为我们是按照从左到右的顺序,所以下一个单词的意思,也可能是由前一个或者几个单词的意思来判断的,比如I saw the man with glasses,中saw 如果 确定是动词了,the 肯定不是动词,man在句子中的意思或者是语法作用,肯定是前面的the来修饰的,所以后面的单词就算有不同的意思,也能由前面的单词,来进行筛选。
所有的在这个包里面的模型都使用了灵活的标记语言去定义特性。比如POS Tag ,带参数brain_pos_features
在TaskSpec中,看起来像这样:
- stack(3).word stack(2).word stack(1).word stack.word input.word input(1).word input(2).word input(3).word;
- input.digit input.hyphen;
- stack.suffix(length=2) input.suffix(length=2) input(1).suffix(length=2);
- stack.prefix(length=2) input.prefix(length=2) input(1).prefix(length=2)
注意stack
的意思是表示这个单词已经被Tagged了。所以,详细的说,有3种不同的Types对于这个功能来说:单词,后缀和前缀。所以更像一个嵌入式的矩阵,就好比Table里面又有个Table一样,串联起来了,送入了隐藏的层的链表中。
下面给大家一张图先睹为快哦~~~
未完待续~~敬请期待~~~
AI人工智能系列随笔:syntaxnet 初探(1)的更多相关文章
- AI人工智能系列随笔
初探 AI人工智能系列随笔:syntaxnet 初探(1)
- 《zw版·Halcon-delphi系列原创教程》 Halcon分类函数002·AI人工智能
<zw版·Halcon-delphi系列原创教程> Halcon分类函数002·AI人工智能 AI人工智能:包括knn.gmm.svm等 为方便阅读,在不影响说明的前提下,笔者对函数进行了 ...
- AI人工智能专业词汇集
作为最早关注人工智能技术的媒体,机器之心在编译国外技术博客.论文.专家观点等内容上已经积累了超过两年多的经验.期间,从无到有,机器之心的编译团队一直在积累专业词汇.虽然有很多的文章因为专业性我们没能尽 ...
- AI人工智能天机芯芯片
AI人工智能天机芯芯片 描述 2019年刊出的<自然>封面文章,展示了清华大学类脑计算研究中心团队研发的新型人工智能芯片"天机芯(Tianjic)".这是世界首款异构融 ...
- ASP.NET MVC 系列随笔汇总[未完待续……]
ASP.NET MVC 系列随笔汇总[未完待续……] 为了方便大家浏览所以整理一下,有的系列篇幅中不是很全面以后会慢慢的补全的. 学前篇之: ASP.NET MVC学前篇之扩展方法.链式编程 ASP. ...
- 使用Beautiful Soup编写一个爬虫 系列随笔汇总
这几篇博文只是为了记录学习Beautiful Soup的过程,不仅方便自己以后查看,也许能帮到同样在学习这个技术的朋友.通过学习Beautiful Soup基础知识 完成了一个简单的爬虫服务:从all ...
- MyBitis(iBitis)系列随笔之五:多表(一对多关联查询)
MyBitis(iBitis)系列随笔之一:MyBitis入门实例 MyBitis(iBitis)系列随笔之二:类型别名(typeAliases)与表-对象映射(ORM) MyBitis(iBitis ...
- AI 人工智能 探索 (四)
在写之前,先对昨天寻路插件再做一些补充,因为该插件不是很完善,所以当我发现有不能满足需求的时候,就会试图更改源代码,或增加接口来符合我的需求. 昨天补充了一条是 自身转向代码,今天补充另外一条,是及时 ...
- 从大数据技术变迁猜一猜AI人工智能的发展
目前大数据已经成为了各家互联网公司的核心资产和竞争力了,其实不仅是互联网公司,包括传统企业也拥有大量的数据,也想把这些数据发挥出作用.在这种环境下,大数据技术的重要性和火爆程度相信没有人去怀疑. 而A ...
随机推荐
- Android游戏开发实践(1)之NDK与JNI开发03
Android游戏开发实践(1)之NDK与JNI开发03 前面已经分享了两篇有关Android平台NDK与JNI开发相关的内容.以下列举前面两篇的链接地址,感兴趣的可以再回顾下.那么,这篇继续这个小专 ...
- maven的pom.xml关系依赖书写顺序
今天遇到了一个情况,以前代码编译没有问题,升级了hbase客户端phoenix驱动,又调整了thrift的关系依赖的位置,放到了这个驱动后面. 如下: 导致了一个thrift接口类编译报错: 检查这个 ...
- Git快速入门
如果你不想看长篇的Git教程,想快速了解Git的使用,那么本文可能会对你入门Git有所帮助.由于笔者用的是Windows系统,所以本文只写Git在Windows上的使用. 一.Git安装 去Git官网 ...
- hbase集群安装与部署
1.相关环境 centos7 hadoop2.6.5 zookeeper3.4.9 jdk1.8 hbase1.2.4 本篇文章仅涉及hbase集群的搭建,关于hadoop与zookeeper的相关部 ...
- ASP.NET Aries JSAPI 文档说明:AR.Form、AR.Combobox
AR.Form 文档 1:对象或属性: 名称 类型 说明 data 属性 编辑页根据主键请求回来的数据 method 属性 用于获取数据的函数指向,默认值Get objName 属性 用于拦截form ...
- ABP理论之CSRF
返回总目录 本篇目录 介绍 ASP.NET MVC ASP.NET WEB API ASP.NET Core[以后补上] 客户端类库 内部原理 介绍 CSRF[Cross-Site Request F ...
- .NET基础拾遗(2)面向对象的实现和异常的处理基础
Index : (1)类型语法.内存管理和垃圾回收基础 (2)面向对象的实现和异常的处理基础 (3)字符串.集合与流 (4)委托.事件.反射与特性 (5)多线程开发基础 (6)ADO.NET与数据库开 ...
- Leetcode 笔记 101 - Symmetric Tree
题目链接:Symmetric Tree | LeetCode OJ Given a binary tree, check whether it is a mirror of itself (ie, s ...
- CSharpGL(25)一个用raycast实现体渲染VolumeRender的例子
CSharpGL(25)一个用raycast实现体渲染VolumeRender的例子 本文涉及的VolumeRendering相关的C#代码是从(https://github.com/toolchai ...
- .net(c#)版RSA加密算法,拿走不谢
今天有同学对接一个支付平台,涉及到RSA的签名和验签.由于对方是java的sdk,翻成c#语言时,搞了半天也没搞定.网上搜的东西都是各种copy还不解决问题. 碰巧,我之前对接过连连银通的网银支付和代 ...