人工智能是 最近的一个比较火的名词,相信大家对于阿尔法狗都不陌生吧?其实我对人工智能以前也是非常抵触的,因为我认为机器人会取代人类,成为地球乃至宇宙的霸主,但是人工智能带给我的这种冲击,我个人感觉是欲罢不能的,进入正题,网上找了一个人工智能的框架,它的名字叫做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)的更多相关文章

  1. AI人工智能系列随笔

    初探 AI人工智能系列随笔:syntaxnet 初探(1)

  2. 《zw版·Halcon-delphi系列原创教程》 Halcon分类函数002·AI人工智能

    <zw版·Halcon-delphi系列原创教程> Halcon分类函数002·AI人工智能 AI人工智能:包括knn.gmm.svm等 为方便阅读,在不影响说明的前提下,笔者对函数进行了 ...

  3. AI人工智能专业词汇集

    作为最早关注人工智能技术的媒体,机器之心在编译国外技术博客.论文.专家观点等内容上已经积累了超过两年多的经验.期间,从无到有,机器之心的编译团队一直在积累专业词汇.虽然有很多的文章因为专业性我们没能尽 ...

  4. AI人工智能天机芯芯片

    AI人工智能天机芯芯片 描述 2019年刊出的<自然>封面文章,展示了清华大学类脑计算研究中心团队研发的新型人工智能芯片"天机芯(Tianjic)".这是世界首款异构融 ...

  5. ASP.NET MVC 系列随笔汇总[未完待续……]

    ASP.NET MVC 系列随笔汇总[未完待续……] 为了方便大家浏览所以整理一下,有的系列篇幅中不是很全面以后会慢慢的补全的. 学前篇之: ASP.NET MVC学前篇之扩展方法.链式编程 ASP. ...

  6. 使用Beautiful Soup编写一个爬虫 系列随笔汇总

    这几篇博文只是为了记录学习Beautiful Soup的过程,不仅方便自己以后查看,也许能帮到同样在学习这个技术的朋友.通过学习Beautiful Soup基础知识 完成了一个简单的爬虫服务:从all ...

  7. MyBitis(iBitis)系列随笔之五:多表(一对多关联查询)

    MyBitis(iBitis)系列随笔之一:MyBitis入门实例 MyBitis(iBitis)系列随笔之二:类型别名(typeAliases)与表-对象映射(ORM) MyBitis(iBitis ...

  8. AI 人工智能 探索 (四)

    在写之前,先对昨天寻路插件再做一些补充,因为该插件不是很完善,所以当我发现有不能满足需求的时候,就会试图更改源代码,或增加接口来符合我的需求. 昨天补充了一条是 自身转向代码,今天补充另外一条,是及时 ...

  9. 从大数据技术变迁猜一猜AI人工智能的发展

    目前大数据已经成为了各家互联网公司的核心资产和竞争力了,其实不仅是互联网公司,包括传统企业也拥有大量的数据,也想把这些数据发挥出作用.在这种环境下,大数据技术的重要性和火爆程度相信没有人去怀疑. 而A ...

随机推荐

  1. mapreduce中一个map多个输入路径

    package duogemap; import java.io.IOException; import java.util.ArrayList; import java.util.List; imp ...

  2. Xamarin+Prism开发详解六:DependencyService与IPlatformInitializer的关系

    祝各位2017年事业辉煌!开年第一篇博客,继续探索Xamarin.Forms… 为什么我做Xamarin开发的时候中意于Prism.Forms框架?本章为你揭晓. 实例代码地址:https://git ...

  3. nodejs进阶(3)—路由处理

    1. url.parse(url)解析 该方法将一个URL字符串转换成对象并返回. url.parse(urlStr, [parseQueryString], [slashesDenoteHost]) ...

  4. SQLServer执行命令出现“目录无效的提示”

    异常处理汇总-数据库系列  http://www.cnblogs.com/dunitian/p/4522990.html 一般都是清理垃圾清理过头了,把不该删的目录删了 网上说法: 问题描述: 1.s ...

  5. [干货来袭]C#6.0新特性

    微软昨天发布了新的VS 2015 ..随之而来的还有很多很多东西... .NET新版本 ASP.NET新版本...等等..太多..实在没消化.. 分享一下也是昨天发布的新的C#6.0的部分新特性吧.. ...

  6. CSS中强悍的相对单位之em(em-and-elastic-layouts)学习小记

    使用相对单位em注意点 1.浏览器默认字体是16px,即1em = 16px,根元素设置如下 html{ font-size: 100%; /* WinIE text resize correctio ...

  7. jQuery中取消后续执行内容

    <html xmlns="http://www.w3.org/1999/xhtml"><head>    <title></title&g ...

  8. Oracle SQL Developer 连接 MySQL

    1. 在ORACLE官网下载Oracle SQL Developer第三方数据库驱动 下载页面:http://www.oracle.com/technetwork/developer-tools/sq ...

  9. web.xml中welcome-file-list的作用

    今天尝试使用struts2+ urlrewrite+sitemesh部署项目,结果发现welcome-file-list中定义的欢迎页不起作用: <welcome-file-list> & ...

  10. 使用C#给Linux写Shell脚本

    在这个逼格决定人格,鄙视链盛行的年头,尤其是咱们IT界,请问您今天鄙视与被鄙视的次数分别是多少?如果手中没有一点压箱的本事,那就只有看的份了.今天我们也要提升下自己的格调,学习些脑洞大开的东西,学完之 ...