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 ...
随机推荐
- 读书笔记:JavaScript DOM 编程艺术(第二版)
读完还是能学到很多的基础知识,这里记录下,方便回顾与及时查阅. 内容也有自己的一些补充. JavaScript DOM 编程艺术(第二版) 1.JavaScript简史 JavaScript由Nets ...
- 总结:Mac前端开发环境的搭建(配置)
新年新气象,在2016年的第一天,我入手了人生中第一台自己的电脑(大一时好友赠送的电脑在一次无意中烧坏了主板,此后便不断借用别人的或者网站的).macbook air,身上已无分文...接下来半年的房 ...
- 详解树莓派Model B+控制蜂鸣器演奏乐曲
步进电机以及无源蜂鸣器这些都需要脉冲信号才能够驱动,这里将用GPIO的PWM接口驱动无源蜂鸣器弹奏乐曲,本文基于树莓派Mode B+,其他版本树莓派实现时需参照相关资料进行修改! 1 预备知识 1.1 ...
- 恢复SQL Server被误删除的数据(再扩展)
恢复SQL Server被误删除的数据(再扩展) 大家对本人之前的文章<恢复SQL Server被误删除的数据> 反应非常热烈,但是文章里的存储过程不能实现对备份出来的日志备份里所删数据的 ...
- 【翻译】MongoDB指南/CRUD操作(四)
[原文地址]https://docs.mongodb.com/manual/ CRUD操作(四) 1 查询方案(Query Plans) MongoDB 查询优化程序处理查询并且针对给定可利用的索引选 ...
- 关于python的bottle框架跨域请求报错问题的处理
在用python的bottle框架开发时,前端使用ajax跨域访问时,js代码老是进入不了success,而是进入了error,而返回的状态却是200.url直接在浏览器访问也是正常的,浏览器按F12 ...
- 对Thoughtworks的有趣笔试题实践
记得2014年在网上看到Thoughtworks的一道笔试题,当时觉得挺有意思,但是没动手去写.这几天又在网上看到了,于是我抽了一点时间写了下,我把程序运行的结果跟网上的答案对了一下,应该是对的,但是 ...
- PHP之使用网络函数和协议函数
使用其他Web站点的数据 <html> <head> <title> Stock Quote From NASDAQ </title> </hea ...
- AJAX操作数据
本文使用AJAX访问数据库文件,并显示在网页中.另外还有AJAX对数据库的删除操作,网页不加载,只刷新数据. 随意使用数据库中的一张表: 使用AJAX显示表中内容,首先打入body代码: <h1 ...
- AJAX 大全
本章内容: 简介 伪 AJAX 原生 AJAX XmlHttpRequest 的属性.方法.跨浏览器支持 jQuery AJAX 常用方法 跨域 AJAX JsonP CORS 简单请求.复制请求.请 ...