开源软件介绍
开源软件的原理与开发技术

开源软件的原理与开发技术随着互联网的发展,开源软件越来越受到人们的关注和喜爱。
开源软件不仅可以免费使用,而且可以修改、拓展和共享。
那么,开源软件的原理是什么?开发技术有哪些?概述开源软件原理开源软件是指软件的源代码是公开的,任何人都可以查看、修改、拓展和共享代码。
这与封闭软件形成鲜明对比。
封闭软件的源代码是未公开的,只有厂商可以修改和拓展。
用户只能购买许可证,并按照许可证规定的方式使用。
开源软件所依赖的原理是自由软件。
自由软件是指用户可以自由地使用、复制、分发、拓展、研究和修改软件的自由。
自由软件是在GNU计划下诞生的,主张计算机技术是一种服务社会的工具,而不是奴役社会的统治者。
开源软件具有以下优点:1.安全性高开源软件的源代码是公开的,可以被任何人检查,从而发现和修复漏洞和错误。
2.可定制化用户可以按照自己的需求修改和拓展开源软件,从而得到更加适合自己的软件。
3.低成本开源软件可以免费使用,无需花费高昂的许可费用。
4.生态系统强大开源软件的生态系统庞大而强大,有大量的用户和开发者一起共同改进和拓展软件。
开源软件的开发技术开源软件的开发技术涉及到多个方面,以下是其中的几个方面:1.源代码管理开源软件的源代码管理非常重要。
许多开源软件使用Git进行源代码管理。
Git是一种分布式版本控制系统,可以方便地对源代码进行管理。
开发者可以在自己的本地环境中进行开发和测试,然后将代码上传到共享代码库中,其他开发者也可以下载和使用该代码。
2.社区协作开源软件的开发依赖于全球志愿者的贡献。
社区协作是保持开发者之间良好合作关系的关键。
开源软件社区通常采用讨论板块、邮件列表和社交媒体等形式来进行协作和交流。
通过这些形式,开发者可以相互帮助、分享经验和讨论问题。
3.文档编写开源软件的文档编写也非常重要。
文档可以帮助使用者更好地了解软件的使用方法和功能,也可以帮助开发者更好地了解软件的开发和维护。
许多开源软件项目都有一个专门的网站,其中包括软件的各种文档和教程。
开源软件的优势和风险管理

开源软件的优势和风险管理作为当今数字时代的主宰者,软件在我们的日常生活中扮演着极为重要的角色。
无论是电脑、手机、平板还是其他智能设备,都需要软件的支持才能完成各种操作。
随着科技的不断进步和应用场景的扩大,软件作为连接人类与数字世界的桥梁,已经成为了一项广泛需求的产品。
在这样的情况下,软件的来源和质量自然成为了人们最为关注的问题之一。
开源软件在这个问题中扮演着极为重要的角色。
开源软件的优势什么是开源软件?简单来说,开源软件是一种可以被自由复制、修改、分发和使用的软件类型。
在开源软件中,任何人都可以拥有源代码,并且可以通过复制源代码进行针对性的修改或者加强,以达到更好的适合性。
同样,任何人可以自由的分发这个软件,并且可以发布修改后的版本。
开源软件的优势主要表现在以下几个方面。
1. 安全性更高开源软件可以享受众多人的审查和测试,因此一旦出现问题,问题会很快被发现并修复。
而闭源软件则只有内部程序员进行测试和审查,这样就可能存在漏洞或者隐藏的问题,这些问题可能存在很长时间,直到攻击者发现并利用这些漏洞。
2. 开发效率更高开源软件可以被大量开发者在自己的基础上进行扩展和修改,从而使软件能够快速的产生创新。
这种模式下,开源软件比闭源软件更有可能获得更高的更新速度和开发效率,这在如今以用户需求为中心的市场环境中,是非常重要的一个优势。
3. 成本更低闭源软件的使用通常需要支付许可证费用。
而开源软件通常是免费的,并且可能拥有更灵活的许可证。
另外,由于开源软件可以进行修改和定制,其适应性更高,这往往可以节约企业需要为软件进行定制或者适应所需要的功能花费的时间和费用。
开源软件的风险管理开源软件虽然有很多的优点,但是也存在一些风险需要我们注意和管理。
在使用开源软件时,应引起我们的重视。
1. 许可证合规性开源软件通常有多种不同的许可证,有一些许可证非常严格,要求使用者遵循其条款。
因此,开源软件在使用时需要注意许可证类型和使用条款,遵守许可证规定的限制和义务。
开源软件的应用和管理

开源软件的应用和管理1.什么是开源软件-开源软件是指源代码可以公开访问、查看、使用、修改和分发的软件。
开源软件通常是由志愿者或组织共同开发,其开发过程公开透明,最终产物可以被广泛应用和改进。
2.开源软件的优点-开放和透明的开发过程:开源软件的开发过程对所有人开放,任何人都可以参与其中,这样导致软件的开发过程更加透明和自由,从而增加了软件的创新和质量。
-低成本:开源软件通常是免费的,这对于个人和小型企业来说是一个重大优势,因为他们不需要为购买许可证或专有软件而支付高额费用。
-可自定义性:开源软件提供源代码,因此用户可以自行修改软件以满足其特定需求,从而增加了软件的灵活性和适应性。
-社区支持:开源软件通常有庞大的社区支持,用户可以通过社区获取帮助和解决问题,这对于用户来说是一个重要的资源。
-安全性:开源软件的安全性通常比专有软件更好,因为开源软件有更多的人参与审查和改进代码,从而增加了软件的稳定性和安全性。
3.开源软件的应用领域-操作系统:开源操作系统如Linux和FreeBSD已经得到广泛的应用,特别是在服务器和嵌入式领域。
-数据库:开源数据库如MySQL和PostgreSQL已经成为了企业级数据库的主流选择。
-办公软件:开源办公软件如LibreOffice和OpenOffice已经得到广泛的应用,成为了微软Office的替代品。
-网络应用:开源网络应用如Apache和Nginx已成为了大型网站和互联网应用的不可或缺的一部分。
-编程工具:开源编程工具如Eclipse和NetBeans已经成为了许多开发者的首选。
-其他领域:开源软件在游戏开发、医疗健康、教育和科学研究等领域也有广泛的应用。
4.开源软件的管理-如何选择开源软件:在选择开源软件时,需要考虑软件的功能、稳定性、安全性、社区支持和可扩展性等因素。
-如何部署开源软件:部署开源软件需要考虑软件的安装、配置、集成和优化等方面,这需要有相关的技术知识和经验。
开源软件对研发行业的影响

开源软件遵循国际标准,保证了软件的兼容性和可扩展性。
03
开源软件在研发行业的应用
互联网公司
互联网公司是开源软件的主要推动者和使用者 ,它们在开发过程中大量使用开源软件,以降 低成本、提高开发效率。
互联网公司通过开源软件,实现了快速迭代和 优化产品,同时也为其他开发者提供了参与和 贡献的机会,促进了技术交流和共。
订阅服务模式
企业可以提供基于开源软件的定 制化服务,通过订阅服务模式获 取收益,同时保持软件的开源性 质。
开源与商业结合模
式
一些企业将开源软件与商业软件 相结合,提供更加全面的解决方 案,以满足客户的多样化需求。
THANKS
感谢观看
依赖风险
开源软件之间的依赖关系可能导致安全问题难以定位和解决,一旦 某个依赖的开源软件出现安全问题,可能会影响到整个系统。
配置风险
开源软件的配置不当也可能引发安全问题,例如未及时更新或错误配 置可能导致系统暴露于风险之中。
知识产权问题
版权侵犯
01
使用开源软件可能涉及到版权问题,如果未遵守开源许可证的
规定,可能会引发版权纠纷。
专利侵权
02
某些开源软件可能涉及到专利问题,使用这些软件可能会侵犯
某些专利权。
商业机密泄露
03
开源社区的开放性可能导致商业机密泄露的风险,例如源代码
中的敏感信息可能被恶意用户利用。
社区管理问题
1 2
社区分裂
开源软件的社区管理可能存在分歧和分裂,导致 软件的发展方向不明确,影响软件的质量和稳定 性。
详细描述
开源软件的优势在于其开放性和可定制性,用户可以根据自己的需求自由地修改和使用 软件。此外,由于源代码的公开,软件的透明度更高,安全性更强。然而,开源软件也
开源软件开发详解

开源软件开发详解开源软件是指让所有使用者都可以查看源代码,并且自由地使用、修改、分发软件的一种软件开发方式。
开源软件开发方式的发展,为软件开发者和使用者们提供了更多的发展和使用自由度,也极大地促进了软件行业的发展和创新。
下面,本文将从开源软件的概念、优势、开发过程、开源协作、开源生态以及相关资源等方面进行详细阐述。
一、开源软件的概念开源软件,全称为开放源代码软件,是一种由多个开发者共同编写、公开发布并且可以自由获取、使用及修改源代码的软件。
与闭源软件相比,开源软件不仅能够实现自由获取、使用和修改,还有助于开发者之间的合作交流,促进互相学习和创新。
二、开源软件的优势1.自由使用和修改开源软件的最大优势在于其自由开放的特性。
由于开源软件的源代码是公开的,任何人都可以获取和使用源代码,也可以修改和改进软件的不足。
这种自由的特性不仅让用户更灵活地使用软件,也让开发者可以在其他人的基础上进行开发创新。
2. 更好的品质保证由于开源软件开源的特性,更多的用户和开发者可以对软件源代码进行任意改动,修复软件中的缺陷和错误,并提供更好的代码复用和共享。
这种代码贡献的方式增加了软件的开发速度和产品质量,也减少了出现产品错误和安全漏洞的可能性。
3. 互通性和灵活性开源软件不仅与其他开源软件相兼容,而且适合在不同硬件、操作系统及其他软件平台上使用。
这种互通性和灵活性是开发者和用户在选择软件时所必须考虑的重要因素。
三、开源软件的开发过程开源软件的开发过程是由多个开发者进行共同协作,将每个阶段的代码改动、升级及测试等工作提交到共用的代码库中。
1. 设计:开源项目的设计通常是由社区或运营人员组织的讨论、规划和执行活动。
2. 实现:从代码结构,模块构成、代码写作到测试等全过程均有不同的开发者参与协作,订定必要的测试计划,指定团队负责人,进行经验交流、协作开发。
3. 测试:项目进入测试阶段之前,需要进行软件测试和代码贡献的集成和反馈。
开源软件的意义和使用

开源软件的意义和使用近年来,开源软件已经成为了很多人最为喜闻乐见的话题之一。
每年都会有很多新的开源软件涌现,吸引了越来越多的人去尝试。
那么,开源软件究竟是什么,它的意义是什么,我们应该如何使用呢?什么是开源软件?开源软件指的是软件的源代码是公开的,并可以被修改和重新分发的软件。
这与闭源软件相对。
通常情况下,如果一款软件是闭源的,那么用户是无法查看该软件的源代码的,这也就意味着用户在使用该软件时需要完全依赖开发者提供的功能和操作方式。
而开源软件则是完全不同的,因为其源代码是公开的,任何人都可以对其进行修改和定制,从而使得软件的功能和操作方式更加符合自己的需求。
开源软件的意义在数字化时代,软件已经成为了很多人生活和工作中不可或缺的一部分。
从手机 App 到网络应用程序,从个人电脑到服务器都需要软件进行支撑。
然而,尽管有很多商业软件可以让我们使用,但是商业软件往往价格昂贵,让很多人望而却步。
这时候,开源软件的出现就可以让人们进行选择。
首先,开源软件价格更加亲民。
很多开源软件是完全免费的,而且往往功能也非常齐全。
这意味着人们可以使用更加方便、实用的软件,同时避免了商业软件的高昂费用。
当然,也有一些开源软件会收取用户的费用,但这种费用通常比商业软件要便宜的多。
其次,开源软件可以提供更好的可定制性。
因为开源软件的源代码是公开的,人们可以对其进行修改和定制,从而使得软件的功能和操作方式更加符合自己的需求。
这给了人们更多的自由,使得人们可以使用更加适合自己的软件工具。
第三,开源软件可以提高软件行业的透明度和安全性。
因为开源软件的源代码是公开的,任何人都可以查看它,从而使得软件的缺陷和漏洞更加容易被发现和修复。
这可以大大提高软件的安全性,从而避免了一些重要的信息被黑客攻击。
最后,开源软件可以促进技术进步和创新。
开源软件对于开发者来说是一种资源共享,这意味着开发者可以方便的学习他人的代码,并将这些代码应用于自己的项目中。
开源软件的基本概念。

开源软件的基本概念。
开源软件是指允许用户查看、修改、使用和分销源代码的软件。
源代码是指由程序员编写的计算机程序的文本表示形式,它是构成软件程序的基本要素。
开源软件根据开放原始码的许可证可以被免费允许、使用和重新分发。
开源软件的使用越来越广泛,对于技术人员和企业来说都具有重要的意义。
开源软件的特点1.免费:大多数开源软件都是免费的,因为源代码可以被改变并重新分销。
2.源代码被完全公开:开源软件的源代码可以被任何人自由查看、修改和分布。
这使得任何人都可以改进软件以适应自己的需求。
3.社区分享:开源软件通常由一个社区或团体维护和开发,这使得它更加容易获得更广泛的知识、技能和经验。
4.自由的使用和分发:开源软件许可证允许任何人自由使用和分发软件,没有任何限制。
5.开放的标准:开源软件通常遵循标准化的编码规则,以确保代码的清晰和易读性。
这样可以使得多个软件开发者协同合作,从而加快软件开发的速度和效率。
开源软件的优势1.减少成本:企业使用开源软件可以避免购买其他昂贵的专有软件,从而减少了成本。
2.提高自由度:开源软件具有更大的自由度,因为用户不必担心某个公司会突然停止对软件的支持和更新。
3.自由的定制化:开源软件具有更大的灵活性,因为用户可以自由定制自己所需的功能,根据自身的需求改变代码。
4.发展速度快:由于开源软件的源代码是公开的,许多人都可以参与软件的开发和维护。
这样可以加快软件的开发速度,同时也更容易找到问题并得到更快的解决方案。
5.自由的风险控制:使用开源软件可以减少某些与专有软件相关的风险,比如单一供应商、厂商依赖和快速技术过时等。
由于许多开源软件都是由社区维护和改进的,因此不存在上述风险。
总结总之,开源软件具有免费、开放的特点,并有助于提高软件开发的效率和质量。
越来越多的企业和开发者使用开源软件,已经成为当前的软件开发和产品部署的趋势。
开源软件在技术上解决了许多问题,并提供了更广泛内部的东西,以便我们可以专注于我们的业务。
开源软件的优势与潜力

开源软件的优势与潜力开源软件是指源代码被公开,允许任何人以任何目的复制、修改和分发的软件。
相对于传统的封闭源代码软件,开源软件拥有许多优势和潜力。
在本文中,我们将介绍这些优势和潜力,以对开源软件的价值进行深入的探讨。
1.减少成本开源软件是完全免费的,而且可以通过自由获取源代码来进行修改和完善。
这意味着企业和组织可以避免花费大量资金在购买和维护闭源软件上。
对于个人或小团体来说,使用开源软件可以帮助他们避免支付高昂的软件费用。
因此,开源软件在减少成本上有着明显的优势。
2. 动态适应性开源社区的发展和参与者数量随着时间的推移而增加,这意味着开源软件会得到更多的修改和改进来应对新的需求。
这使得开源软件更加灵活和适应性强。
部分原因是开源软件的代码可以得到全球各地的开发者来修改和增强,这意味着当前的技术趋势和需求可以被更及时的反映和实现。
3. 更好的安全性封闭源代码软件的安全漏洞通常由更少的测试人员发现,而且维护者只能依靠少数程序员去修复这些漏洞。
开源软件相反,因为其源代码对所有人都是开放的,因此存在着数百甚至数千个安全漏洞测试人员。
由于这些人拥有多样的技能和经验背景,因此他们可以帮助尽早发现并修复可能存在的漏洞。
总之,开源软件在保障安全性方面表现更加优异。
4. 面向未来的潜力因为开源软件不会限制参与开发和维护这个项目的人数,也不受产品生命周期限制,所以开源软件一般拥有更长、更有前途的发展前景。
由于开源社区中的开发者和用户都可以贡献对软件的改进,因此开源软件在可持续的发展方面优于许多闭源软件。
5. 形成社区效应在开源软件社区中,人们会把目光更多的放在其他用户的合作开发和社区化的模式上。
开源项目从某种程度上可以解放原本被业界和其他组织掌控的开发模式,使开发者们可以通过协作和社区化来创造出更加灵活和更好的应用程序。
这种名为社区效应的协同合作可以推动更高水平的技术创新和能力发展。
总结起来,有以下几点可以概括开源软件的优势与潜力,包括减少成本、动态适应性、更好的安全性、面向未来的潜力以及形成社区效应。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
统计机器翻译开源软件介绍1990年代初IBM 公司的Brown 等人提出了5个模型来刻画统计机器翻译,取得了不错的效果,但是在此之后很长一段时间内都没有被大家认可和接受,原因是他们的模型非常复杂,难以理解和实现。
直到1999年,一些研究人员齐聚约翰霍普金斯大学(JHU)开办了一次讨论班,大家共同合作,重复了IBM 的实验,并在讨论班结束时发布了一个开源软件包Egypt,才使得IBM的模型被广泛研究和使用。
1. 第一个开源的统计机器翻译工具包Egypt它包括四个模块:Whittle :语料库预处理模块;GIZA :用于从句子对齐的双语语料库中训练词语对齐;Cairo :词语对齐的可视化工具;Decoder:解码器,即用来执行具体的翻译过程模块,这一模块没有开放源码。
随着技术的快速发展,Egypt中很多方法现在已经过时了,然而, 其中用于训练词语对齐的模块GIZA 现在仍然被广泛使用,利用它能够非常方便地从大规模的双语文本中获取统计知识。
现在大家使用的是它的改进版本GIZA++,GIZA++实现了IBM 公司提出的5 个模型,其主要思想是利用EM 算法对双语语料库迭代训练,由句子对齐得到词语对齐。
以汉英翻译为例,假设我们有如下的语料库:汉谄…已经勁「诃诰切兮」:新华社it京二月+-0 m斷隼社垃靜_月二日电记君先珍}英诰:Xinnua News Agency . Be屮ng T February 12 , by wireXlrhua News Agency , Lhasa P February 2 . (reporter Zhen Yang )这轉亍文件屮时应仃的汎诸和英诰足圧为儒枠的S ifiidGlZA++训瓠40冋以得到单词之詞的邮神骷牢.低如“芾丰計”觀洋力-Xinhua"的概率AlP (Xinhua儲华利* =0.8, 同时.虫冊幷了旬F之阿小词的时应兀系{祢之为词诒时齐h倒咖:新电社北玄二月 +二日电Xinhua News Agency , Buijing , February 12 , by wire这一过程完全由计算机自动进行,不用人工干预,节省了很多人力。
而且GIZA是独立于语言的,能够对任何两种语言进行训练,这也是统计机器翻译的优点之一。
现在几乎所有的统计机器翻译系统都利用这一工具进行词语对齐的训练。
2. 语言模型训练工具----SRILM语言模型被广泛的应用于自然语言处理的各个领域,来衡量某种语言中一个句子符合语法的程度。
语言模型实际上是一种概率分布,它给出了一种语言中所有可能的句子出现的概率。
在它看来,一种语言中,任何可能的单词排列都是可能被接受的句子,只是被接受的概率不同。
在统计机器翻译中,根据从语料库中获取的知识(例如单词的翻译概率等),一句话可能有很多译文。
有些符合语法和人们的表达习惯,有些则可能不符合语法。
语言模型赋予这些句子不同的概率,用以选择最优的译文。
SRILM 是一个建立和使用统计语言模型的开源工具包,从1995 年开始由SRI 口语技术与研究实验室(SRI Speech Technology and Research Laboratory开发,现在仍然不断推出新版本,被广泛的应用于语音识别、机器翻译等领域。
这个工具包包含一组C++类库、一组进行语言模型训练和应用的可执行程序等等。
利用它可以非常方便地训练和应用语言模型。
它的输入是经过分词的单语文本,输出是N 元文法的概率。
给定一组连续的词,调用SRILM 提供的接口,可以得到这组词出现的概率。
3. 机器翻译的自动评测工具Mteval 如何来评价一个机器翻译系统所产生的译文的好坏呢?这是一个比较困难的工作。
现在著名的统计机器翻译国际评测中普遍使用自动评测与人工评测相结合的方法,例如美国国家技术和标准研究所(NIST)举行的评测。
Mteval 便是他们开发的自动评测工具。
为了能够进行自动评测,我们必须事先有“标准答案” 。
在评测中,翻译系统要翻译几百乃至上千个句子。
这些句子由人事先进行翻译,作为标准答案。
为了更加客观,一般都由4 个不同的人来翻译。
评测工具通过比较系统译文和标准答案,根据评测指标进行打分。
现在普遍采用BLEU 作为机器翻译的评测指标,它是基于N 元语法来计算的。
4. 第一个基于短语的统计机器翻译系统法老(Pharaoh )“法老”是较早公开的统计机器翻译系统,是由美国南加州大学信息科学实验室(Information Scienee Institute)的菲利普科恩(Philipp Koehn)在2004年做博士论文期间编写的。
可能由于较早的开源软件以“埃及(Egypt)”命名的缘故吧,这一系统也采用埃及的代表性事物“法老(Pharaoh)”命名。
它是一个基于短语的统计机器翻译系统。
基于短语的方法是目前比较成熟的统计机器翻译技术,它的主要思想是以短语作为翻译的基本单元。
给定一个源语言句子,其翻译过程如下:(1)对源语言句子进行短语划分;(2)根据翻译模型翻译每个短语;(3)对短语进行重排序。
基于短语的翻译过程示例:“法老”正是基于这一思想的统计机器翻译系统。
它包括两大部分:训练和解码。
训练过程用来从语料库中获得统计知识,它利用了已有的开源软件GIZA++和SRILM。
既然是以短语作为翻译的基本单元,因此还需要获得关于短语翻译的知识。
通过GIZA++训练可以得到单词对齐,根据单词对齐我们可以进行短语抽取。
请注意,这里我们所说的短语是指任意连续的单词串,而不管它是否具有语法意义例如:我们能抽収捌的取语短错花(新华利I Xinhua News Agency(新华利北京I Xinhua New& Agency Beijing)< (新华右北京J \ I Xinhua News Agency^ Beijing, February). (9r 华*1 北京月+「,日IXinhun New^Agency, Ikiji略February 12)、(新华*1 北京月十~ I J I社I Xinliua News Agency. Beijing, Febii]ar>p 12* by wire h(」匕京I Bei j ing), r北京H 丨Hinjing. February).(北Jt 二月I - (Jl Beijing. February 12 k (北京二月卜二口电IBeijing, Februaiy 12, hy wti'eh(-月I February).(月十III February 12k(月十H >111 February 12, by wire). ( +I 12).(十二日电I 12, by wwek (屯I hy wire)□ 由此可见.从诉料库中学习到的短谄数帛楚卄希隨大的.法老系统结构图解码过程(即翻译过程)实际上是一个搜索的过程。
对于输入的句子,进行短语划分,然后根据已有的短语表搜索它们的最优组合,产生最终的译文。
这一部分并没有公开源码,不过在科恩写的文档中有非常详细的介绍,根据这些介绍可以很容易的进行实现。
“法老”的出现对于推动统计机器翻译的发展起到了非常大的作用,由于它原理简单,易于使用,很多研究者都在它的基础上进行实验,或者把它作为基线系统(baseli n®进行比较。
5. 中国第一个开源的统计机器翻译系统丝路(SilkRoad )“法老” 的出现揭开了统计机器翻译的神秘面纱,然而其核心部分解码器的源码仍然没有公开。
为此,中国的研究人员联合开发了一个完全开放源代码的统计机器翻译系统 -------- “丝路”。
该系统由中国的五家研究机构和高校(中科院计算所、中科院自动化所、中科院软件所、厦门大学、哈尔滨工业大学)联合开发,并在2006 年中国第二届统计机器翻译研讨会上发布。
“丝路”包括以下模块:语料预处理及后处理模块“仙人掌” ,词语对齐模块“楼兰”,短语抽取模块“胡杨”,以及三个解码器(“骆驼”、“绿洲”、“商队”)。
国内的统计机器翻译起步比较晚,在2004 年左右才陆续有单位开始做相关的研究工作。
很多人对统计机器翻译还非常陌生,对国际生的研究现状也不熟悉。
针对这种情况,国内几家从事统计机器翻译的研究单位联合开发了“丝路”系统,希望它能够像古代的“丝绸之路”一样贯通东西,藉此既能让国外的同行了解我们的工作,也能使我们学习到国外的先进技术。
“丝路”充分利用了国际上已有的开源工具,比如GIZA++ ,SRILM 等,此外,联合开发单位还开发了三个解码器,并完全开放了源代码,第一次将一个完整的统计机器翻译系统公开,极大地促进了国内统计机器翻译的快速发展。
6. Moses“摩西”是“法老”的升级版本,增加了许多功能。
它是由英国爱丁堡大学、德国亚琛工业大学等8 家单位联合开发的一个基于短语的统计机器翻译系统。
来自这8 家单位的研究人员于2006年在约翰霍普金斯大学召开了一次研讨会,利用6 个星期的时间共同开发了这一系统。
整个系统利用C++语言写成,从训练到解码完全开放源代码,可以运行在windows 平台和Linux 平台。
相比于“法老”,“摩西”主要有如下几个新的特性:(1)使用要素翻译模型(Factored Translation Model)在一般的统计机器翻译系统中,翻译的过程就是将源语言文本翻译为目标语言文本。
这一过程仅仅考虑单词的词形。
但是,语言现象是非常复杂的,在英语中,单词就有单复数形式、时态变化等等。
在一般的处理过程当中,“house"和“ houses'被看做完全不同的两个词,这显然不合理。
要素翻译模型就是为了处理这种情况而诞生的。
在要素翻译模型中,一个单词不仅仅是一个符号(token),而是一个包含多个要素的向量,例如词目、词性等。
这些要素共同作用来刻画一个单词。
例如对于“ house”,它有以下要素:词目是“housS, 词性是“ NN”。
表示为“ houses|house|NN。
在翻译的过程中这些要素被分别翻译。
在翻译完成后,根据这些要素来产生最终的单词,比如最终“房子”对应译文的要素是“名词,复数形式”,我们就可以选择“ houses*,而非“ house"。
词词性词形(2)混合网络解码当前的机器翻译系统能够接受的输入一般是纯文本形式的一串单词(一句话或者一篇文章),而现在将机器翻译系统作为一个大的信息处理系统的组成部分的需求日益增长,它的输入可能不再是纯文本的形式,而是其它模块的输出结果,例如,命名实体识别的结果, 或者语音识别的结果。
这样的输入不再是单一的,而是可能含有错误的、多种可能性的输入。
混合网络解码允许这种多可能性的输入,最终选择最优译文。