精华内容
下载资源
问答
  • npl-开源

    2021-04-24 10:07:55
    NPL是一种旨在简化代码可视化的编程语言。 它可视化程序的静态和动态方面以及其语义,从而使读取代码更容易。
  • NPL或神经并行语言是一种开源的高性能脚本语言。 它的语法与 100%兼容。 NPL运行时提供了构建在windows/linux/android/iOS上运行的3D/2D/Server应用程序的基本功能。 安装指南 git clone ...
  • 如何入门NPL

    万次阅读 2017-07-03 10:33:02
    在确认进入一个领域之后,按照建议一所述,需要找到本领域的开源项目或者工具,仔细研究一遍现有的主要流派和方法,先入门。 反复阅读本领域最新发表的文章,多阅读本领域牛人发表的文章。在深入了解已有工作的基础...
    作者:微软亚洲研究院
    链接:https://www.zhihu.com/question/19895141/answer/149475410
    来源:知乎
    著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

    自然语言处理(简称NLP),是研究计算机处理人类语言的一门技术,包括:

    1.句法语义分析:对于给定的句子,进行分词、词性标记、命名实体识别和链接、句法分析、语义角色识别和多义词消歧。

    2.信息抽取:从给定文本中抽取重要的信息,比如,时间、地点、人物、事件、原因、结果、数字、日期、货币、专有名词等等。通俗说来,就是要了解谁在什么时候、什么原因、对谁、做了什么事、有什么结果。涉及到实体识别、时间抽取、因果关系抽取等关键技术。

    3.文本挖掘(或者文本数据挖掘):包括文本聚类、分类、信息抽取、摘要、情感分析以及对挖掘的信息和知识的可视化、交互式的表达界面。目前主流的技术都是基于统计机器学习的。

    4.机器翻译:把输入的源语言文本通过自动翻译获得另外一种语言的文本。根据输入媒介不同,可以细分为文本翻译、语音翻译、手语翻译、图形翻译等。机器翻译从最早的基于规则的方法到二十年前的基于统计的方法,再到今天的基于神经网络(编码-解码)的方法,逐渐形成了一套比较严谨的方法体系。

    5.信息检索:对大规模的文档进行索引。可简单对文档中的词汇,赋之以不同的权重来建立索引,也可利用1,2,3的技术来建立更加深层的索引。在查询的时候,对输入的查询表达式比如一个检索词或者一个句子进行分析,然后在索引里面查找匹配的候选文档,再根据一个排序机制把候选文档排序,最后输出排序得分最高的文档。

    6.问答系统: 对一个自然语言表达的问题,由问答系统给出一个精准的答案。需要对自然语言查询语句进行某种程度的语义分析,包括实体链接、关系识别,形成逻辑表达式,然后到知识库中查找可能的候选答案并通过一个排序机制找出最佳的答案。

    7.对话系统:系统通过一系列的对话,跟用户进行聊天、回答、完成某一项任务。涉及到用户意图理解、通用聊天引擎、问答引擎、对话管理等技术。此外,为了体现上下文相关,要具备多轮对话能力。同时,为了体现个性化,要开发用户画像以及基于用户画像的个性化回复。

    随着深度学习在图像识别、语音识别领域的大放异彩,人们对深度学习在NLP的价值也寄予厚望。再加上AlphaGo的成功,人工智能的研究和应用变得炙手可热。自然语言处理作为人工智能领域的认知智能,成为目前大家关注的焦点。很多研究生都在进入自然语言领域,寄望未来在人工智能方向大展身手。但是,大家常常遇到一些问题。俗话说,万事开头难。如果第一件事情成功了,学生就能建立信心,找到窍门,今后越做越好。否则,也可能就灰心丧气,甚至离开这个领域。这里针对给出我个人的建议,希望我的这些粗浅观点能够引起大家更深层次的讨论。

    建议1:如何在NLP领域快速学会第一个技能?

    我的建议是:找到一个开源项目,比如机器翻译或者深度学习的项目。理解开源项目的任务,编译通过该项目发布的示范程序,得到与项目示范程序一致的结果。然后再深入理解开源项目示范程序的算法。自己编程实现一下这个示范程序的算法。再按照项目提供的标准测试集测试自己实现的程序。如果输出的结果与项目中出现的结果不一致,就要仔细查验自己的程序,反复修改,直到结果与示范程序基本一致。如果还是不行,就大胆给项目的作者写信请教。在此基础上,再看看自己能否进一步完善算法或者实现,取得比示范程序更好的结果。

    建议2:如何选择第一个好题目?

    工程型研究生,选题很多都是老师给定的。需要采取比较实用的方法,扎扎实实地动手实现。可能不需要多少理论创新,但是需要较强的实现能力和综合创新能力。而学术型研究生需要取得一流的研究成果,因此选题需要有一定的创新。我这里给出如下的几点建议。

    • 先找到自己喜欢的研究领域。你找到一本最近的ACL会议论文集, 从中找到一个你比较喜欢的领域。在选题的时候,多注意选择蓝海的领域。这是因为蓝海的领域,相对比较新,容易出成果。
    • 充分调研这个领域目前的发展状况。包括如下几个方面的调研:方法方面,是否有一套比较清晰的数学体系和机器学习体系;数据方面,有没有一个大家公认的标准训练集和测试集;研究团队,是否有著名团队和人士参加。如果以上几个方面的调研结论不是太清晰,作为初学者可能不要轻易进入。
    • 在确认进入一个领域之后,按照建议一所述,需要找到本领域的开源项目或者工具,仔细研究一遍现有的主要流派和方法,先入门。
    • 反复阅读本领域最新发表的文章,多阅读本领域牛人发表的文章。在深入了解已有工作的基础上,探讨还有没有一些地方可以推翻、改进、综合、迁移。注意做实验的时候,不要贪多,每次实验只需要验证一个想法。每次实验之后,必须要进行分析存在的错误,找出原因。
    • 对成功的实验,进一步探讨如何改进算法。注意实验数据必须是业界公认的数据。
    • 与已有的算法进行比较,体会能够得出比较一般性的结论。如果有,则去写一篇文章,否则,应该换一个新的选题。

    建议3:如何写出第一篇论文?

    • 接上一个问题,如果想法不错,且被实验所证明,就可开始写第一篇论文了。
    • 确定论文的题目。在定题目的时候,一般不要“…系统”、“…研究与实践”,要避免太长的题目,因为不好体现要点。题目要具体,有深度,突出算法。
    • 写论文摘要。要突出本文针对什么重要问题,提出了什么方法,跟已有工作相比,具有什么优势。实验结果表明,达到了什么水准,解决了什么问题。
    • 写引言。首先讲出本项工作的背景,这个问题的定义,它具有什么重要性。然后介绍对这个问题,现有的方法是什么,有什么优点。但是(注意但是)现有的方法仍然有很多缺陷或者挑战。比如(注意比如),有什么问题。本文针对这个问题,受什么方法(谁的工作)之启发,提出了什么新的方法并做了如下几个方面的研究。然后对每个方面分门别类加以叙述,最后说明实验的结论。再说本文有几条贡献,一般写三条足矣。然后说说文章的章节组织,以及本文的重点。有的时候东西太多,篇幅有限,只能介绍最重要的部分,不需要面面俱到。
    • 相关工作。对相关工作做一个梳理,按照流派划分,对主要的最多三个流派做一个简单介绍。介绍其原理,然后说明其局限性。
    • 然后可设立两个章节介绍自己的工作。第一个章节是算法描述。包括问题定义,数学符号,算法描述。文章的主要公式基本都在这里。有时候要给出简明的推导过程。如果借鉴了别人的理论和算法,要给出清晰的引文信息。在此基础上,由于一般是基于机器学习或者深度学习的方法,要介绍你的模型训练方法和解码方法。第二章就是实验环节。一般要给出实验的目的,要检验什么,实验的方法,数据从哪里来,多大规模。最好数据是用公开评测数据,便于别人重复你的工作。然后对每个实验给出所需的技术参数,并报告实验结果。同时为了与已有工作比较,需要引用已有工作的结果,必要的时候需要重现重要的工作并报告结果。用实验数据说话,说明你比人家的方法要好。要对实验结果好好分析你的工作与别人的工作的不同及各自利弊,并说明其原因。对于目前尚不太好的地方,要分析问题之所在,并将其列为未来的工作。
    • 结论。对本文的贡献再一次总结。既要从理论、方法上加以总结和提炼,也要说明在实验上的贡献和结论。所做的结论,要让读者感到信服,同时指出未来的研究方向。
    • 参考文献。给出所有重要相关工作的论文。记住,漏掉了一篇重要的参考文献(或者牛人的工作),基本上就没有被录取的希望了。
    • 写完第一稿,然后就是再改三遍。
    • 把文章交给同一个项目组的人士,请他们从算法新颖度、创新性和实验规模和结论方面,以挑剔的眼光,审核你的文章。自己针对薄弱环节,进一步改进,重点加强算法深度和工作创新性。
    • 然后请不同项目组的人士审阅。如果他们看不明白,说明文章的可读性不够。你需要修改篇章结构、进行文字润色,增加文章可读性。
    • 如投ACL等国际会议,最好再请英文专业或者母语人士提炼文字。
    展开全文
  • 易观开源项目DolphinScheduler进入Apache孵化器 美国时间2019年8月29日,易观开源的分布式任务调度引擎DolphinScheduler(原EasyScheduler)正式通过顶级开源组织Apache基金会的投票决议,以全票通过的优秀表现...

                      全票通过!易观开源项目DolphinScheduler进入Apache孵化器

     

    美国时间2019年8月29日,易观开源的分布式任务调度引擎DolphinScheduler(原EasyScheduler)正式通过顶级开源组织Apache基金会的投票决议,以全票通过的优秀表现正式成为Apache孵化器项目!

    根据Apache基金会邮件列表显示,在包含11个约束性投票(binding votes)和2个无约束性投票(non-binding votes)的投票全部持赞同意见,无弃权票和反对票,投票顺利通过。

                   “Welcome to Apache incubator,DolphinScheduler!”

     

     

    易观贡献的DolphinScheduler进入 Apache 孵化器,是易观开源项目的重要里程碑, DolphinScheduler社区将遵循「The Apache Way」, 秉承更加兼容并包与开放多样化的心态,由衷欢迎更多的开发者参与到社区中来,Committer虚位以待!

     

    DolphinScheduler是一个分布式易扩展的可视化 DAG 工作流任务调度系统,致力于解决数据处理流程中错综复杂的依赖关系,同时具有强大的可视化操作界面。DolphinScheduler曾用名为“EasyScheduler”,由于名称已在国外某App使用,经社区讨论与投票后改名为DolphinScheduler,简称”DS”, 中文名 “小海豚调度”(海豚聪明、人性化,有左右脑可互相换班,终生不用睡觉)。我们希望DolphinScheduler就像它的名字一样,成为一个“开箱即用”的灵活易用的调度系统。

     

    易观缘何开发DolphinScheduler?

    2017年,易观在运营自己6.8Pb大小、6.02亿月活、每天近万个调度任务的大数据平台时,受到ETL复杂的依赖关系、平台易用性、可维护性及二次开发等方面掣肘,我们渴望找到一个具有以下功能的数据调度工具:

    • 易于使用,开发人员可以通过非常简单的拖拽操作构建ETL过程。不仅对于ETL开发人员,无法编写代码的人也可以使用此工具进行ETL操作,例如系统管理员和分析师
    • 解决“复杂任务依赖”问题,并且可以实时监视ETL运行状态
    • 支持多租户
    • 支持许多任务类型:Shell,MR,Spark,SQL(mysql,postgresql,hive,sparksql),Python,Sub_Process,Procedure等
    • 支持HA和线性可扩展性

    易观技术团队意识到现有开源项目没有能够达到我们要求的,因此决定自行开发这个工具。我们在2017年底设计了DolphinScheduler的主要架构;2018年5月完成第一个内部使用版本,后来我们又迭代了几个内部版本后,系统逐渐稳定下来。

    家有DolphinScheduler初长成

    易观技术团队——这一支自百度、阿里、百分点、Ptmind、热云等团队的“数据极客”,秉持易观“让数据能力平民化”的初心,积极拥抱开源,曾贡献过Presto Hbase Connector, Presto Kudu Connector等令开发者称赞的项目。此次在公司的支持下,也积极将自己的开发的调度工具推动开源,旨在回馈开源的同时,助力打造更为强大的开源生态。

     

    团队在2019年3月初,小范围(10多家公司)开放了DS的种子用户试用,得到了非常正能量的反馈,在4月初的正式对外开放源码后,很快就获得了许多开发人员的关注兴趣,目前github上的star现在已超过1700个,参与开发和使用的公司包括嘀嗒出行、雪球、凤凰金融、水滴互助、华润万家等(参见https://github.com/apache/incubator-dolphinscheduler/issues/57)。

     

    DolphinScheduler的特点

    DolphinScheduler提供了许多易于使用的功能,可加快数据ETL工作开发流程的效率。其主要特点如下:

    • 通过拖拽以DAG 图的方式将 Task 按照任务的依赖关系关联起来,可实时可视化监控任务的运行状态
    • 支持丰富的任务类型
    • 支持工作流定时调度、依赖调度、手动调度、手动暂停/停止/恢复,同时支持失败重试/告警、从指定节点恢复失败、Kill 任务等操作
    • 支持工作流全局参数及节点自定义参数设置
    • 支持集群HA,通过 Zookeeper实现 Master 集群和 Worker 集群去中心化
    • 支持工作流运行历史树形/甘特图展示、支持任务状态统计、流程状态统计
    • 支持补数,并行或串行回填数据

     

    欢迎调度小伙伴加入共建世界顶级的开源项目!

    目前,DolphinScheduler在中国已经拥有了一个1300多位伙伴组成的用户及开发者社区。它也被许多公司和组织广泛采用作为其ETL调度工具。我们热烈欢迎更多的用户和开发者加入到贡献的队伍中来,让我们国人开源的调度引擎在世界开源生态中占据一席之地!

     

    感谢参与社区的贡献者!

    特别感谢愿意给DolphinScheduler提供指导的champion和mentors:

       Champion:

    1. Sheng Wu ( Apache Incubator PMC, Apache officer, wusheng@apache.org)

    Mentors:

    1. Sheng Wu ( Apache Incubator PMC, Apache officer, wusheng@apache.org)
    2. ShaoFeng Shi ( Apache Incubator PMC, shaofengshi@apache.org)
    3. Liang Chen ( Apache Incubator PMC, Apache member, chenliang613@apache.org)
    4. Furkan KAMACI ( Apache Incubator PMC, Apache member, kamaci@apache.org)
    5. Kevin Ratnasekera ( Apache Incubator PMC, Apache member, djkevincr@apache.org)

    initial committers:

    1. William-GuoWei(guowei20m@outlook.com)
    2. Lidong Dai(lidong.dai@outlook.com)
    3. Zhanwei Qiao(qiaozhanwei@outlook.com)
    4. Liang Bao(baoliang.leon@gmail.com)
    5. Gang Li(lgcareer2019@outlook.com)
    6. Zijian Gong(quanquansy@gmail.com)
    7. Jun Gao(gaojun2048@gmail.com)
    8. Baoqi Wu(wubaoqi@gmail.com)

    积极参与的贡献者:

    chongchongzi 、 lfyeemnloveyx李林

    白强杨孟霏胡将王金海风清扬林忠俊

    jiangzhxHangtongLeehymzcnjimmy201602

    feloxxxianhuyangqinlonghebin

    shafi-1mchczjamescheng16xtonychekore

    LgbDemo马泽国刘小春Crossoverrrjxauwxj

     

     

    此外还要感谢数百位提出issue和建议以及使用的伙伴们的贡献和大力支持;感谢在项目早期提出指导的来自华为、京东、teradata、百分点、趣头条等公司负责调度的伙伴!

    特别感谢github mybatis-plus社区 ,在得知DolphinScheduler想使用mybatis-plus来支持多数据库,特地发版去掉了NPL协议;感谢易观前端团队开源的高质量 UI 组件库ans-ui

     

    写在最后

    我们坚信将DolphinScheduler引入Apache可以推动更强大,更多样化的开源社区的发展。我们将努力践行“Community Over Code“的Apache文化,同时欢迎更多的公司和个人参与到开发者队伍中来,让DolphinScheduler社区更加健壮、健康的发展,让更多人享受开源带来的技术革命!

    目前DolphinScheduler的所有源代码和所有相关文档已捐赠给Apache Software Foundation。这些代码已经在Apache License Version 2.0下:

    代码库:https://github.com/apache/incubator-dolphinscheduler

    文档:https://analysys.github.io/easyscheduler_docs_cn/

    在线demo:http://106.75.43.194:8888

    为促进技术圈的茁壮发展,增进Apache DolphinScheduler使用者的交流与学习,易观举办 “Apache DolphinScheduler(incubator) User Meetup” 全国巡回活动,2019 年将陆续在北京、上海等地举行,邀请业内资深的技术专家,分享实战经验,促进互联网技术的普及。

     

    本次巡回 Meetup首站将于10月26日在上海和大家见面,报名链接:https://www.huodongxing.com/event/6510540610400

    11月23日,北京站报名链接https://www.huodongxing.com/event/2510544145000

    欢迎大家来交流!

    Apache DolphinScheduler(incubator) User Meetup·Shanghai

     

    Date: 2019Oct, 26 20191026日)

    Meetup Place: Fourth Floor, Building 1, Founder 1107 Yuyuan Road, Changning District, Shanghai.(上海长宁区愚园路1107号创邑1号楼4楼)

    Agenda(议程):

    1Introduction/overview of DolphinScheduler (William-GuoWei).

    2DolphinScheduler internals, fairly technical: how DolphinScheduler works and so on (Zhanwei Qiao).

    3DolphinScheduler practiceDraw up

    4DolphinScheduler from Zero to One Draw up

    5DolphinScheduler practiceDraw up

    6Recently released features and Roadmap (Lidong Dai)

    7Free discussion

     

    附:DolphinScheduler部分功能截图:

     

     

     

    展开全文
  • 开源文化

    2013-04-18 22:10:59
    开源运动发展到现在,这种能够积极促进人类文明发展的文化已经渗透到信息、教育、健康等领域,融入了哲学范畴。 开放源码运动 开放源码运动的史前史包括了整个Unix,自由软件和黑客文化的历史。“开放源码”一词...

    开放源码软件运动是计算机科学领域的一种文化现象,源自黑客对智慧成果共享、自由的追求。开源运动发展到现在,这种能够积极促进人类文明发展的文化已经渗透到信息、教育、健康等领域,融入了哲学范畴。

    放源码运动

    开放源码 运动的史前史包括了整个 Unix 自由软件 和黑客文化的历史。“ 开放源码 ”一词来源于1997年春天在 加州 的Palo Alto召开的一个所谓“纯粹 程序员 ”参与的战略研讨会。参加会议的有Todd Anderson, 来自Foresight研究所Chris Peterson, 来自Linux国际协会的John Hall 和Larry Augustin,有硅谷Linux用户协会的Sam Ockman,以及Eric Raymond。 它们关系的是寻找一种方式,来像以前躲避自由 软件 的人们来推广这种思想,自由软件和 自由软件基金会 的反商业信条让很多人对自由软件敬而远之。在Eric Raymond的坚持下,他们一致通过了用新的术语:OpenSource( 开源软件 )来描述他们所推进的软件。
    1998年2月23日网景宣布它将发布Navigator 浏览器 源代码 成为 开源软件 发展历史的转折点,经过一番激烈争辩,“ 开放源码 ”取代“ 自由软件 ”成为 黑客 们对开放原始码软件的代名词。


    开源软件与自由软件

    Linus Torvalds创建Linux以来,开源思想在 软件 界可谓盛极一时。那么,什么是开源呢?简单来说,"开源软件"就是源代码开放的软件。
    由于开源思想源于计算机 软件 界,所以发展至今,计算机类开源产品的种类、数量都是很多的,使用也比较广泛。如在 操作系统 领域, Linux 在服务器市场就占据了相当大的份额,并持续扩张, IBM 公司销售的薄片式服务器中大约有75%就运行着 Linux操作系统 ;Web方面,全球有百分之五十以上的Web服务器在使用开源的Apache系统;数据库,有针对互联网应用的轻量级数据库MySQL,也有针对大型应用的PostgreSQL, 中国 最大的门户网站Sina的后端数据库就采用了开源的 MySQL数据库 软件 。其他还有各种非常流行的 软件 ,如GNU的编辑软件Emacs、Linux的图形处理界面Xfree86、排版软件TeX等等,都获得了广泛的应用。
    开源被很多 黑客 认为是计算机科学的一种文化复兴,是计算机科学真正成为科学并能够与其他科学一起同步发展的手段。开源发展到今天,不仅仅有数以万计的 黑客 在积极地参与,像IBM、HP、CA、SUN等一些软硬件厂商也在加大在开源方面的投入并积极向开源社区贡献优秀 开源软件 ,因为开源催化了软件业快速向服务也蜕变的速度并为IBM这样的硬件和集成服务提供商提供了新的商机。

    开源软件与许可证授权

    获得开放 软件 源码 是免费的,但对所获取源码的使用却需要遵循该 开源软件 所作的许可声明。 开源软件 常用的许可证方式包括BSD、Apache Licence、GPL等,其中GNU的GPL被最多的开源软件组织所采用。 开源软件 许可模式主要分为两类:一类是 copyleft ,一类是non-copyleft。 copyleft 许可, 比如 GNU GPL类型,坚持认为在 开源软件 基础上作修改后的软件,仍旧是 自由软件
    自1998年2月 美国 OSI成立之后,经其正式认可的开源许可类型已达30种(2002年1月止)。同时,在GNU工程/自由软件基金会的"自由软件许可"页面上包含了15种与GPL兼容的自由软件许可、2种文档许可以及总共42个软件许可再加上4种非软件许可。

    些著名开源许可类型

    (1)BSD许可--它要求版权和著者身份申明;
    (2)GPL--通用公共许可("CopyLeft")禁止派生或发行产品的限制;
    (3)LGPL--库/次级GPL,它不同于GPL许可证,在这个许可证下,库(函
    数库)可以自由地联接到专有 软件
    (4)Artistic许可--使作者保持对进一步开发的控制。
    (5)Netscape公共许可(NPL)--基于GPL精神的新的许可证,但是保持
    了对源码更多的控制和所有权;
    (6)公共域(Public Domain)--通常用于决定性的算法以鼓励广泛使用,通常由 美国 政府使用。

    BSD

    BSD是"Berkely Software Distribution"的缩写,意思是" 伯克利 软件发行版"。显然,BSD这个名称并不是我们现在所理解的 操作系统 ,而且其原意也并非简单的操作系统,而是一整套 软件 发行版的统称。从 软件 发行版到 操作系统 的演变是有历史过程的,这一点对FreeBSD很重要。
    BSD于1983年8月正式发布,在18个月内就签发了1000多份站点许可证,是非常具有知名度的版本。到了1986年6月,4.3BSD发布,而到了1988年,CSRG发布了4.3BSD-Tahoe,这是第一个把BSD内核分解为依赖于机器和独立于机器的两部分的版本,这是非常有价值的,它使BSD得以移植到众多不同的体系结构中。
    由于BSD使用了AT&T Unix的部分 源代码 ,当AT&T源代码许可证费用不断增加的时候,一些希望能够使用BSD代码为PC生产基于TCP/IP联网产品的厂商要求Berkely将AT&T代码从BSD发行版中分离出来,并给他们签发单独的许可证条款,而不需要AT&T的源代码许可证。因此,到了1989年6月,一个完全没有AT&T Unix代码的BSD版本诞生了,称之为"Networking Release 1"。这是第一套由Berkely发布的自由可再发行(freely-redistributable)的代码,,它允许被授权的用户以 源代码 或者二进制的形式发布修改过的或为修改过的代码,并且可以不向Berkely申报版税,唯一要求是在源代码文件 中原 封不动的保留Berkely的版权声明,并且在含有以上代码的其他产品文档中声明其产品包括来自于 加州大学 和其他贡献者的代码。这就是著名的 BSD许可证 的起源。
    GPL许可证是 自由软件 的应用最广泛的 软件许可证 ,人们可以修改程式的一个或几个副本或程式的任何部分,以此形成基於这些程式的衍生作品。必须在修改过的档案中附有明显的说明:您修改了此一档案及任何修改的日期。 您必须让您发布或出版的作品,包括本程式的全部或一部分,或内含本程式的全部或部分所衍生的作品,允许第三方在此许可证条款下使用,并且不得因为此项授权行为而收费。
    最普遍的是 开放源代码 后,满足GPL许可,然后通过发行、咨询、增加用户定制功能来收费。另一种是将 开放源代码 和有版权的 软件 捆绑发行,这样,赚取版权费用。 一种是通过开放全部或部分 源代码 ,收集补丁程序,并满足用户知情权的要求。作为 商业软件 的补充。通过发行多许可证的方式,从其他许可证赚钱。通过 开放源代码 和免费使用赚取垄断标准的地位。
    LGPL是GPL的派生,它是微软件 库尔 设计的。与GPL不同,LGPL化的程序可以合并到专有版权程序中。与LINUX以其提供的C语言库就是LGPL许可的实例。
    NPL是1998年 网景 公司把Netscape开源之后,由Netscape公司以公众可以对他进行测试版本测试的形势提出的,它试图在商业企业推广 自由软件 开发和保护自由软件开发之间达成一种妥协,受NPL约束的代码在授权给第三方时的条款与NPL的不同使NPL无法让开源社区接受。
    对于将来提供 开源软件 的人来说,一般情况下从上述一些许可协议中选择一种既可,而没有必要花费精力再去编写新的许可协议。

    开源教育
    自由的交换想法? 协作创造一套健壮、对大家有益的系统?不仅仅Linux是开源哲学的受益产物,在学校教学领域也在探索开源模式的应用,以期能够为教学带来一个更高效、更先进、更丰富的教学体系——这就是开源教育。
    开源教育模式下,教师们以互联网为媒介共享课件、协作开发课件、交流教学心得。
    人类对世界的人是主要通过两种途径:学习他人经历或亲身体验。教育的本质之一就是通过让人们通过学习多少辈先人积累下来的经验,更快更好的建立对世界的正确认识和树立良好的世界观。从这点看,科学的发展、教育的发展和开源的发展所采用的方法论是一致的,而开源正是这种方法论的代名词。
    展开全文
  • 使用LSTM网络实现简单的智能问答系统 问答系统最重要的一步就是对问答者的问话进行错误分析,只要识别出提问者的提示,就可以调用相应的处理模块进行进一步的信息提取和相应的处理模块进行回答。...
  • jm_rpv2_npl_16.pdf

    2020-05-20 10:36:30
    ASP.NET Core 是一个跨平台的高性能开源框架,用于生成基于云且连接 Internet 的新式应用程序。 使用 ASP.NET Core,您可以: 创建 Web 应用和服务、IoT 应用和移动后端。 在 Windows、macOS 和 Linux 上使用喜爱的...
  • NLP开源工具详解

    千次阅读 2019-06-19 23:33:11
    面向工业应用的中文NLP开源工具集、基于PaddlePaddle深度学习框架打造的工业级NLP开源工具集。 一、文本分类 1、文本情感分析 情感是人类的一种高级智能行为,为了识别文本的情感倾向,需要深入的语义建模。另外,...

    一、PaddleNLP
    面向工业应用的中文NLP开源工具集、基于PaddlePaddle深度学习框架打造的工业级NLP开源工具集。
    一、文本分类
    1、文本情感分析
    情感是人类的一种高级智能行为,为了识别文本的情感倾向,需要深入的语义建模。另外,不同领域(如餐饮、体育)在情感的表达各不相同,因而需要有大规模覆盖各个领域的数据进行模型训练。为此,我们通过基于深度学习的语义模型和大规模数据挖掘解决上述两个问题。百度自主研发的中文特色情感倾向分析模型(Sentiment Classification,简称Senta)针对带有主观描述的中文文本,可自动判断该文本的情感极性类别并给出相应的置信度。情感类型分为积极、消极。情感倾向分析能够帮助企业理解用户消费习惯、分析热点话题和危机舆情监控,为企业提供有利的决策支持。

    基于开源情感倾向分类数据集ChnSentiCorp评测结果如下表所示,此外,PaddleNLP还开源了百度基于海量数据训练好的模型,该模型在ChnSentiCorp数据集上fine-tune之后(基于开源模型进行Finetune的方法详见Github),可以得到更好的效果。

    BOW(Bag Of Words)模型,是一个非序列模型,使用基本的全连接结构。
    
    CNN(Convolutional Neural Networks),是一个基础的序列模型,能处理变长序列输入,提取局部区域之内的特征。
    
    GRU(Gated Recurrent Unit),序列模型,能够较好地解决序列文本中长距离依赖的问题。
    
    LSTM(Long Short Term Memory),序列模型,能够较好地解决序列文本中长距离依赖的问题。
    
    BI-LSTM(Bidirectional Long Short Term Memory),序列模型,采用双向LSTM结构,更好地捕获句子中的语义特征。
    
    ERNIE(Enhanced Representation through kNowledge IntEgration),百度自研基于海量数据和先验知识训练的通用文本语义表示模型,并基于此在情感倾向分类数据集上进行fine-tune获得。
    
    ERNIE+BI-LSTM,基于ERNIE语义表示对接上层BI-LSTM模型,并基于此在情感倾向分类数据集上进行Fine-tune获得。
    

    在这里插入图片描述
    项目地址:https://github.com/PaddlePaddle/models/tree/develop/PaddleNLP/sentiment_classification

    2.对话情绪识别
    对话情绪识别适用于聊天、客服等多个场景,能够帮助企业更好地把握对话质量、改善产品的用户交互体验,也能分析客服服务质量、降低人工质检成本。对话情绪识别(Emotion Detection,简称EmoTect),专注于识别智能对话场景中用户的情绪,针对智能对话场景中的用户文本,自动判断该文本的情绪类别并给出相应的置信度,情绪类型分为积极、消极、中性。

    基于百度自建测试集(包含闲聊、客服)和nlpcc2014微博情绪数据集评测效果如下表所示,此外,PaddleNLP还开源了百度基于海量数据训练好的模型,该模型在聊天对话语料上fine-tune之后,可以得到更好的效果。

    BOW:Bag Of Words,是一个非序列模型,使用基本的全连接结构。
    
    CNN:浅层CNN模型,能够处理变长的序列输入,提取一个局部区域之内的特征。
    
    TextCNN:多卷积核CNN模型,能够更好地捕捉句子局部相关性。
    
    LSTM:单层LSTM模型,能够较好地解决序列文本中长距离依赖的问题。
    
    BI-LSTM:双向单层LSTM模型,采用双向LSTM结构,更好地捕获句子中的语义特征。
    
    ERNIE:百度自研基于海量数据和先验知识训练的通用文本语义表示模型,并基于此在对话情绪分类数据集上进行fine-tune获得。
    
    

    在这里插入图片描述
    项目地址:
    https://github.com/PaddlePaddle/models/tree/develop/PaddleNLP/emotion_detection

    二、文本匹配
    1、短文本语义匹配

    百度自主研发的短文本语义匹配语义匹配框架(SimilarityNet, SimNet)是一个计算短文本相似度的框架,可以根据用户输入的两个文本,计算出相似度得分。SimNet 在语义表示上沿袭了隐式连续向量表示的方式,但对语义匹配问题在深度学习框架下进行了 End-to-End 的建模,将point-wise与 pair-wise两种有监督学习方式全部统一在一个整体框架内。在实际应用场景下,将海量的用户点击行为数据转化为大规模的弱标记数据,在网页搜索任务上的初次使用即展现出极大威力,带来了相关性的明显提升。SimNet框架在百度各产品上广泛应用,主要包括BOW、CNN、RNN、MMDNN等核心网络结构形式,提供语义相似度计算训练和预测框架,适用于信息检索、新闻推荐、智能客服等多个应用场景,帮助企业解决语义匹配问题。

    基于百度海量搜索数据,PaddleNLP训练了一个SimNet-BOW-Pairwise语义匹配模型,在一些真实的FAQ问答场景中,该模型效果比基于字面的相似度方法AUC提升5%以上。基于百度自建测试集(包含聊天、客服等数据集)和语义匹配数据集(LCQMC)进行评测,效果如下表所示。

    LCQMC数据集以Accuracy为评测指标,而pairwise模型的输出为相似度,因此采用0.958作为分类阈值,相比于基线模型中网络结构同等复杂的CBOW模型(准确率为0.737),BOW_Pairwise的准确率提升为0.7532。
    在这里插入图片描述
    项目地址:
    https://github.com/PaddlePaddle/models/tree/develop/PaddleNLP/similarity_net

    三、序列标注
    1、词法分析

    百度自主研发中文特色模型词法分析任务(Lexical Analysis of Chinese),输入是一个字符串,而输出是句子中的词边界和词性、实体类别。序列标注是词法分析的经典建模方式。LAC使用基于 GRU 的网络结构学习特征,将学习到的特征接入 CRF 解码层完成序列标注。CRF 解码层本质上是将传统 CRF 中的线性模型换成了非线性神经网络,基于句子级别的似然概率,因而能够更好的解决标记偏置问题。LAC能整体性地完成中文分词、词性标注、专名识别任务。

    基于自建的数据集上对分词、词性标注、专名识别进行整体的评估效果,效果如下表所示。此外,在飞桨开放的语义表示模型 ERNIE 上 finetune,并对比基线模型、BERT finetuned 和 ERNIE finetuned 的效果,可以看出会有显著的提升。

    项目代码:
    https://github.com/PaddlePaddle/models/tree/develop/PaddleNLP/lexical_analysis

    四、文本生成
    1、机器翻译

    机器翻译(machine translation, MT)是利用计算机将一种自然语言(源语言)转换为另一种自然语言(目标语言)的过程,输入为源语言句子,输出为相应的目标语言的句子。Transformer是论文 「Attention Is All You Need 」中提出的用以完成机器翻译(machine translation, MT)等序列到序列(sequence to sequence, Seq2Seq)学习任务的一种全新网络结构。

    其同样使用了 Seq2Seq 任务中典型的编码器-解码器(Encoder-Decoder)的框架结构,但相较于此前广泛使用的循环神经网络(Recurrent Neural Network, RNN),其完全使用注意力(Attention)机制来实现序列到序列的建模,基于公开的 WMT’16 EN-DE 数据集训练 Base、Big 两种配置的Transformer 模型后,在相应的测试集上进行评测,效果如下表所示。

    项目代码:
    https://github.com/PaddlePaddle/models/tree/develop/PaddleNLP/neural_machine_translation/transformer

    五、语义表示与语言模型
    1、语言表示工具箱

    BERT 是一个迁移能力很强的通用语义表示模型,以 Transformer 为网络基本组件,以双向 Masked Language Model和 Next Sentence Prediction 为训练目标,通过预训练得到通用语义表示,再结合简单的输出层,应用到下游的 NLP 任务,在多个任务上取得了 SOTA 的结果。

    ELMo(Embeddings from Language Models) 是重要的通用语义表示模型之一,以双向 LSTM 为网路基本组件,以 Language Model 为训练目标,通过预训练得到通用的语义表示,将通用的语义表示作为Feature 迁移到下游 NLP 任务中,会显著提升下游任务的模型性能。PaddleNLP发布了基于百科类数据训练的预训练模型。

    百度自研的语义表示模型ERNIE 通过建模海量数据中的词、实体及实体关系,学习真实世界的语义知识。相较于 BERT 学习原始语言信号,ERNIE直接对先验语义知识单元进行建模,增强了模型语义表示能力。

    这里我们举个例子:

    Learnt by BERT :哈 [mask] 滨是 [mask] 龙江的省会,[mask] 际冰 [mask] 文化名城。

    Learnt by ERNIE:[mask] [mask][mask] 是黑龙江的省会,国际 [mask] [mask] 文化名城。

    在 BERT 模型中,我们通过『哈』与『滨』的局部共现,即可判断出『尔』字,模型没有学习与『哈尔滨』相关的任何知识。而 ERNIE 通过学习词与实体的表达,使模型能够建模出『哈尔滨』与『黑龙江』的关系,学到『哈尔滨』是『黑龙江』的省会以及『哈尔滨』是个冰雪城市。

    训练数据方面,除百科类、资讯类中文语料外,ERNIE 还引入了论坛对话类数据,利用 DLM(Dialogue Language Model)建模 Query-Response 对话结构,将对话 Pair 对作为输入,引入 Dialogue Embedding 标识对话的角色,利用 Dialogue Response Loss学习对话的隐式关系,进一步提升模型的语义表示能力。

    ERNIE在自然语言推断,语义相似度,命名实体识别,情感分析,问答匹配多项NLP中文任务上效果领先。

    项目地址:
    https://github.com/PaddlePaddle/LARK/tree/develop/ERNIE

    https://github.com/PaddlePaddle/LARK/tree/develop/BERT

    https://github.com/PaddlePaddle/LARK/tree/develop/ELMo

    2、语言模型

    基于LSTM的语言模型任务是给定一个输入词序列(中文分词、英文tokenize),计算其PPL(语言模型困惑度,用户表示句子的流利程度),基于循环神经网络语言模型的介绍可以参阅论文「Recurrent Neural Network Regularization」。相对于传统的方法,基于循环神经网络的方法能够更好的解决稀疏词的问题。此任务采用了序列任务常用的RNN网络,实现了一个两层的LSTM网络,然后LSTM的结果去预测下一个词出现的概率。

    在small、meidum、large三个不同配置情况的ppl对比如下表所示。

    项目地址:
    https://github.com/PaddlePaddle/models/tree/develop/PaddleNLP/language_model

    六、复杂任务
    1、对话模型工具箱

    Auto Dialogue Evaluation

    对话自动评估模块主要用于评估开放领域对话系统的回复质量,能够帮助企业或个人快速评估对话系统的回复质量,减少人工评估成本。

    1)在无标注数据的情况下,利用负采样训练匹配模型作为评估工具,实现对多个对话系统回复质量排序;
    
    2)利用少量标注数据(特定对话系统或场景的人工打分),在匹配模型基础上进行微调,可以显著提高该对话系统或场景的评估效果。
    

    以四个不同的对话系统(seq2seq_naive/seq2seq_att/keywords/human)为例,使用对话自动评估工具进行自动评估。

    1)无标注数据情况下,直接使用预训练好的评估工具进行评估;在四个对话系统上,自动评估打分和人工评估打分spearman相关系数,如下表所示。
    在这里插入图片描述
    2) 对四个系统平均得分排序:
    在这里插入图片描述
    3)利用少量标注数据微调后,自动评估打分和人工打分spearman相关系数,如下表所示。
    在这里插入图片描述
    项目地址:
    https://github.com/PaddlePaddle/models/tree/develop/PaddleNLP/dialogue_model_toolkit/auto_dialogue_evaluation

    Deep Attention Matching Network

    深度注意力机制模型是开放领域多轮对话匹配模型。根据多轮对话历史和候选回复内容,排序出最合适的回复。

    多轮对话匹配任务输入是多轮对话历史和候选回复,输出是回复匹配得分,根据匹配得分排序,更多内容请参阅论文「Multi-Turn Response Selection for Chatbots with Deep Attention Matching Network」。

    两个公开数据集上评测效果如下表所示。
    在这里插入图片描述
    项目地址:
    https://github.com/PaddlePaddle/models/tree/develop/PaddleNLP/dialogue_model_toolkit/deep_attention_matching

    对话通用理解模型DGU

    对话相关的任务中,Dialogue System常常需要根据场景的变化去解决多种多样的任务。任务的多样性(意图识别、槽位解析、DA识别、DST等等),以及领域训练数据的稀少,给Dialogue System的研究和应用带来了巨大的困难和挑战,要使得dialogue system得到更好的发展,需要开发一个通用的对话理解模型。基于BERT的对话通用理解模块(DGU: Dialogue General Understanding),通过实验表明,使用base-model(BERT)并结合常见的学习范式,在几乎全部对话理解任务上取得比肩甚至超越各个领域业内最好的模型的效果,展现了学习一个通用对话理解模型的巨大潜力。

    DGU针对数据集开发了相关的模型训练过程,支持分类,多标签分类,序列标注等任务,用户可针对自己的数据集,进行相关的模型定制。基于对话相关的业内公开数据集进行评测,效果如下表所示。
    在这里插入图片描述
    项目地址:
    https://github.com/PaddlePaddle/models/tree/develop/PaddleNLP/dialogue_model_toolkit/dialogue_general_understanding

    2、知识驱动对话

    人机对话是人工智能(AI)中最重要的话题之一,近年来受到学术界和工业界的广泛关注。目前,对话系统仍然处于起步阶段,通常是被动地进行交谈,并且更多地将他们的言论作为回应而不是他们自己的倡议,这与人与人的谈话不同。因此,我们在一个名为知识驱动对话的新对话任务上设置了这个竞赛,其中机器基于构建的知识图与人交谈。它旨在测试机器进行类似人类对话的能力。

    我们提供基于检索和基于生成的基线系统。这两个系统都是由PaddlePaddle(百度深度学习平台)和Pytorch(Facebook深度学习框架)实现的。两个系统的性能如下表所示。
    在这里插入图片描述
    项目地址:
    https://github.com/baidu/knowledge-driven-dialogue/tree/master

    3、阅读理解

    在机器阅读理解(MRC)任务中,我们会给定一个问题(Q)以及一个或多个段落§/文档(D),然后利用机器在给定的段落中寻找正确答案(A),即Q + P or D => A. 机器阅读理解(MRC)是自然语言处理(NLP)中的关键任务之一,需要机器对语言有深刻的理解才能找到正确的答案。基于PaddlePaddle的阅读理解升级了经典的阅读理解BiDAF模型,去掉了char级别的embedding,在预测层中使用了pointer network,并且参考了R-NET中的一些网络结构,效果上有了大幅提升(在DuReader2.0验证集、测试集的表现见下表)。

    DuReader是一个大规模、面向真实应用、由人类生成的中文阅读理解数据集。DuReader聚焦于真实世界中的不限定领域的问答任务。相较于其他阅读理解数据集,DuReader的优势包括:

    问题来自于真实的搜索日志
    
    文章内容来自于真实网页
    
    答案由人类生成
    
     面向真实应用场景
    
    标注更加丰富细致
    

    在这里插入图片描述
    项目地址:
    https://github.com/PaddlePaddle/models/tree/develop/PaddleNLP/reading_comprehension

    参考:https://nlp.baidu.com/homepage/nlptools

    展开全文
  • datawhale--NPL-task1

    2020-06-25 00:48:30
    word2vec word2vec 是 Google 于 2013 年开源推出的一个用于获取 word vector 的工具包. word2vec模型可以理解为简单化的神经网络. 它的输入就是onehot编码, 经过 一系列的权重矩阵等矩阵的作用之后,得到一个输出, ...
  • 中文分词的工具有很多种,例如HanLP、jieba分词、FudanNLP、LTP、THULAC、NLPIR等,这些都是开源的分词工具,大多支持Java、C++、Python,本文对基于python的jieba分词的使用作出具体介绍。 三种模式 jieba分词支持...
  • matlab导入excel代码utl_npl_star_trek_universal_language_translator_sort_of NLP_Star Trek通用语言翻译器。 关键字:sas sql join合并大数据分析宏oracle teradata mysql sas社区stackoverflow statistics人工...
  • 开源协议列表

    千次阅读 2019-09-16 09:02:01
    SPDX License List The SPDX License List is a list of commonly found licenses and exceptions used in free and open source and other collaborative software or documentation. The purpose of the SPDX Lic...
  • 了解开源文化

    千次阅读 2014-04-12 17:38:36
    开源运动发展到现在,这种能够积极促进人类文明发展的文化已经渗透到信息、教育、健康等领域,融入了哲学范畴。  开放源码运动的史前史包括了整个Unix,自由软件和黑客文化的历史。“开放源码”一词来源于1997年...
  • NLP开源框架

    千次阅读 2017-11-30 21:19:36
    NLP全系列处理框架 名称 包含模块和下载地址 开发语言 哈工大的Ltp 中文分词、词性标注、未登录词、句法分析、语义角色标注。网址: C++ Standford NLP 中文分词、词性标注、未登录词识别、句法分析等。...
  • UoM代理为UNICORE网格系统提供资源代理功能。 对这个项目的捐款将全部转到SourceForge.net
  • openNPL是一个用于管理贷款资产组合数据的开源平台,尤其侧重于不良贷款。 openNPL实施并以详细的欧洲银行业监督贷款模板为基础来提供NPL数据。 因此,它可以根据最佳实践来收集和轻松管理不良贷款数据。 该平台...
  • 自然语言(NPL)处理入门之单词计数

    万次阅读 2018-08-11 10:54:33
    1.软件基础: python 3.7 pandas库 excel(选用) 2.思路分析: 读文本→拆分文本→单词计数→归纳整合→最终效果展示 3.代码: #coding=utf-8 #designed by liuxiawei1996@outlook.com ... f=open(in...
  • 开源Liecense介绍

    千次阅读 2007-06-12 11:28:00
    开源在今天的软件业已经很普遍,但开源是否意味着使用者可以对开源后的代码为所欲为呢?答案是否定的。开源运动同样有自己的游戏规则和道德准则。不遵行这些规则不但损害开源运动的健康发展,也会对违规者造成名誉和...
  • NPL系列之分词和分词框架(二)

    千次阅读 2018-07-01 13:22:42
    当然 这里讨论的中文的分词,因为英文的分词技术是比较单一,基本上按照空格进行标准分词就可以了,但是中文就比较复杂了,所以今天就一起简单的学习一下NPL的基础工作之分词技术和对应的分词开源框架 尽管中文的分词是...
  • Date: 2018.10.12 按照使用条件不同,分为三类: 1、 使用该开源软件的代码再发布时,源码也必须以相同授权协议公开(因此不能...代表授权协议类型:LGPL、MPL、CPL、EPL、CDDL、NPL、Sun Public License、Nokia...
  • NPL系列之分词常用原则以及算法(三)

    千次阅读 2018-07-01 21:34:00
    这个时候就需要对分词常用的算法需要有所了解,才有可能根据自己公司或者特定的业务数据来完善开源的分词或者自研发分词.对于分词算法而言可以大体上分为两大类,一类是基于概率,一类是基于词典 基于概率: 优点:是不...
  • #Copy Right 2020 Jacky Zong . #All rights reserved . Version 3.1.2 import ast def dump(node, annotate_fields=True, include_attributes=False, indent=' '): """ Return a formatted dump of the tree in ...
  • 1、 允许各种链接,但被链接的整个产品需要开源2、 允许修改,但被修改部分及整个产品均需要开源 由于可能导致产品整体负有开源义务,不建议使用   LGPL: 1、 允许各种链接,但除动态链接外其他链接形式被...
  • 一些开源许可类型简介
  • 开源License及分类

    2011-04-13 17:18:52
    允许商业集成且没有开源风险的许可证 许可证名称 BSD license X11 license 即MIT license FreeBSD MIT license Apache license Openssl license Zope Public license boost software license V1 ...
  • 论文《Efficient Estimation of Word Representations in Vector Space》的作者开源了一个模型,对一个足够大的可用的语料库进行预训练,将其中的一些语义纳入我们的模型中。预训练的向量可以在这篇文章相关的资源库...

空空如也

空空如也

1 2 3 4 5 ... 14
收藏数 273
精华内容 109
关键字:

npl开源