導航:首頁 > 編程語言 > Java語義相似度

Java語義相似度

發布時間:2025-03-19 16:55:55

㈠ 大數據核心技術有哪些

大數據技術的體系龐大且復雜,基礎的技術包含數據的採集、數據預處理、分布式存儲、NoSQL資料庫、數據倉庫、機器學習、並行計算、可視化等各種技術范疇和不同的技術層面。首先給出一個通用化的大數據處理框架,主要分為下面幾個方面:數據採集與預處理、數據存儲、數據清洗、數據查詢分析和數據可視化。

一、數據採集與預處理

對於各種來源的數據,包括移動互聯網數據、社交網路的數據等,這些結構化和非結構化的海量數據是零散的,也就是所謂的數據孤島,此時的這些數據並沒有什麼意義,數據採集就是將這些數據寫入數據倉庫中,把零散的數據整合在一起,對這些數據綜合起來進行分析。數據採集包括文件日誌的採集、資料庫日誌的採集、關系型資料庫的接入和應用程序的接入等。在數據量比較小的時候,可以寫個定時的腳本將日誌寫入存儲系統,但隨著數據量的增長,這些方法無法提供數據安全保障,並且運維困難,需要更強壯的解決方案。

Flume NG作為實時日誌收集系統,支持在日誌系統中定製各類數據發送方,用於收集數據,同時,對數據進行簡單處理,並寫到各種數據接收方(比如文本,HDFS,Hbase等)。Flume NG採用的是三層架構:Agent層,Collector層和Store層,每一層均可水平拓展。其中Agent包含Source,Channel和 Sink,source用來消費(收集)數據源到channel組件中,channel作為中間臨時存儲,保存所有source的組件信息,sink從channel中讀取數據,讀取成功之後會刪除channel中的信息。

NDC,Netease Data Canal,直譯為網易數據運河系統,是網易針對結構化資料庫的數據實時遷移、同步和訂閱的平台化解決方案。它整合了網易過去在數據傳輸領域的各種工具和經驗,將單機資料庫、分布式資料庫、OLAP系統以及下游應用通過數據鏈路串在一起。除了保障高效的數據傳輸外,NDC的設計遵循了單元化和平台化的設計哲學。

Logstash是開源的伺服器端數據處理管道,能夠同時從多個來源採集數據、轉換數據,然後將數據發送到您最喜歡的 「存儲庫」 中。一般常用的存儲庫是Elasticsearch。Logstash 支持各種輸入選擇,可以在同一時間從眾多常用的數據來源捕捉事件,能夠以連續的流式傳輸方式,輕松地從您的日誌、指標、Web 應用、數據存儲以及各種 AWS 服務採集數據。

Sqoop,用來將關系型資料庫和Hadoop中的數據進行相互轉移的工具,可以將一個關系型資料庫(例如Mysql、Oracle)中的數據導入到Hadoop(例如HDFS、Hive、Hbase)中,也可以將Hadoop(例如HDFS、Hive、Hbase)中的數據導入到關系型資料庫(例如Mysql、Oracle)中。Sqoop 啟用了一個 MapRece 作業(極其容錯的分布式並行計算)來執行任務。Sqoop 的另一大優勢是其傳輸大量結構化或半結構化數據的過程是完全自動化的。

流式計算是行業研究的一個熱點,流式計算對多個高吞吐量的數據源進行實時的清洗、聚合和分析,可以對存在於社交網站、新聞等的數據信息流進行快速的處理並反饋,目前大數據流分析工具有很多,比如開源的strom,spark streaming等。

Strom集群結構是有一個主節點(nimbus)和多個工作節點(supervisor)組成的主從結構,主節點通過配置靜態指定或者在運行時動態選舉,nimbus與supervisor都是Storm提供的後台守護進程,之間的通信是結合Zookeeper的狀態變更通知和監控通知來處理。nimbus進程的主要職責是管理、協調和監控集群上運行的topology(包括topology的發布、任務指派、事件處理時重新指派任務等)。supervisor進程等待nimbus分配任務後生成並監控worker(jvm進程)執行任務。supervisor與worker運行在不同的jvm上,如果由supervisor啟動的某個worker因為錯誤異常退出(或被kill掉),supervisor會嘗試重新生成新的worker進程。

當使用上游模塊的數據進行計算、統計、分析時,就可以使用消息系統,尤其是分布式消息系統。Kafka使用Scala進行編寫,是一種分布式的、基於發布/訂閱的消息系統。Kafka的設計理念之一就是同時提供離線處理和實時處理,以及將數據實時備份到另一個數據中心,Kafka可以有許多的生產者和消費者分享多個主題,將消息以topic為單位進行歸納;Kafka發布消息的程序稱為procer,也叫生產者,預訂topics並消費消息的程序稱為consumer,也叫消費者;當Kafka以集群的方式運行時,可以由一個服務或者多個服務組成,每個服務叫做一個broker,運行過程中procer通過網路將消息發送到Kafka集群,集群向消費者提供消息。Kafka通過Zookeeper管理集群配置,選舉leader,以及在Consumer Group發生變化時進行rebalance。Procer使用push模式將消息發布到broker,Consumer使用pull模式從broker訂閱並消費消息。Kafka可以和Flume一起工作,如果需要將流式數據從Kafka轉移到hadoop,可以使用Flume代理agent,將Kafka當做一個來源source,這樣可以從Kafka讀取數據到Hadoop。

Zookeeper是一個分布式的,開放源碼的分布式應用程序協調服務,提供數據同步服務。它的作用主要有配置管理、名字服務、分布式鎖和集群管理。配置管理指的是在一個地方修改了配置,那麼對這個地方的配置感興趣的所有的都可以獲得變更,省去了手動拷貝配置的繁瑣,還很好的保證了數據的可靠和一致性,同時它可以通過名字來獲取資源或者服務的地址等信息,可以監控集群中機器的變化,實現了類似於心跳機制的功能。

二、數據存儲

Hadoop作為一個開源的框架,專為離線和大規模數據分析而設計,HDFS作為其核心的存儲引擎,已被廣泛用於數據存儲。

HBase,是一個分布式的、面向列的開源資料庫,可以認為是hdfs的封裝,本質是數據存儲、NoSQL資料庫。HBase是一種Key/Value系統,部署在hdfs上,克服了hdfs在隨機讀寫這個方面的缺點,與hadoop一樣,Hbase目標主要依靠橫向擴展,通過不斷增加廉價的商用伺服器,來增加計算和存儲能力。

Phoenix,相當於一個Java中間件,幫助開發工程師能夠像使用JDBC訪問關系型資料庫一樣訪問NoSQL資料庫HBase。

Yarn是一種Hadoop資源管理器,可為上層應用提供統一的資源管理和調度,它的引入為集群在利用率、資源統一管理和數據共享等方面帶來了巨大好處。Yarn由下面的幾大組件構成:一個全局的資源管理器ResourceManager、ResourceManager的每個節點代理NodeManager、表示每個應用的Application以及每一個ApplicationMaster擁有多個Container在NodeManager上運行。

Mesos是一款開源的集群管理軟體,支持Hadoop、ElasticSearch、Spark、Storm 和Kafka等應用架構。

Redis是一種速度非常快的非關系資料庫,可以存儲鍵與5種不同類型的值之間的映射,可以將存儲在內存的鍵值對數據持久化到硬碟中,使用復制特性來擴展性能,還可以使用客戶端分片來擴展寫性能。

Atlas是一個位於應用程序與MySQL之間的中間件。在後端DB看來,Atlas相當於連接它的客戶端,在前端應用看來,Atlas相當於一個DB。Atlas作為服務端與應用程序通訊,它實現了MySQL的客戶端和服務端協議,同時作為客戶端與MySQL通訊。它對應用程序屏蔽了DB的細節,同時為了降低MySQL負擔,它還維護了連接池。Atlas啟動後會創建多個線程,其中一個為主線程,其餘為工作線程。主線程負責監聽所有的客戶端連接請求,工作線程只監聽主線程的命令請求。

Ku是圍繞Hadoop生態圈建立的存儲引擎,Ku擁有和Hadoop生態圈共同的設計理念,它運行在普通的伺服器上、可分布式規模化部署、並且滿足工業界的高可用要求。其設計理念為fast analytics on fast data。作為一個開源的存儲引擎,可以同時提供低延遲的隨機讀寫和高效的數據分析能力。Ku不但提供了行級的插入、更新、刪除API,同時也提供了接近Parquet性能的批量掃描操作。使用同一份存儲,既可以進行隨機讀寫,也可以滿足數據分析的要求。Ku的應用場景很廣泛,比如可以進行實時的數據分析,用於數據可能會存在變化的時序數據應用等。

在數據存儲過程中,涉及到的數據表都是成千上百列,包含各種復雜的Query,推薦使用列式存儲方法,比如parquent,ORC等對數據進行壓縮。Parquet 可以支持靈活的壓縮選項,顯著減少磁碟上的存儲。

三、數據清洗

MapRece作為Hadoop的查詢引擎,用於大規模數據集的並行計算,」Map(映射)」和」Rece(歸約)」,是它的主要思想。它極大的方便了編程人員在不會分布式並行編程的情況下,將自己的程序運行在分布式系統中。

隨著業務數據量的增多,需要進行訓練和清洗的數據會變得越來越復雜,這個時候就需要任務調度系統,比如oozie或者azkaban,對關鍵任務進行調度和監控。

Oozie是用於Hadoop平台的一種工作流調度引擎,提供了RESTful API介面來接受用戶的提交請求(提交工作流作業),當提交了workflow後,由工作流引擎負責workflow的執行以及狀態的轉換。用戶在HDFS上部署好作業(MR作業),然後向Oozie提交Workflow,Oozie以非同步方式將作業(MR作業)提交給Hadoop。這也是為什麼當調用Oozie 的RESTful介面提交作業之後能立即返回一個JobId的原因,用戶程序不必等待作業執行完成(因為有些大作業可能會執行很久(幾個小時甚至幾天))。Oozie在後台以非同步方式,再將workflow對應的Action提交給hadoop執行。

Azkaban也是一種工作流的控制引擎,可以用來解決有多個hadoop或者spark等離線計算任務之間的依賴關系問題。azkaban主要是由三部分構成:Relational Database,Azkaban Web Server和Azkaban Executor Server。azkaban將大多數的狀態信息都保存在MySQL中,Azkaban Web Server提供了Web UI,是azkaban主要的管理者,包括project的管理、認證、調度以及對工作流執行過程中的監控等;Azkaban Executor Server用來調度工作流和任務,記錄工作流或者任務的日誌。

流計算任務的處理平台Sloth,是網易首個自研流計算平台,旨在解決公司內各產品日益增長的流計算需求。作為一個計算服務平台,其特點是易用、實時、可靠,為用戶節省技術方面(開發、運維)的投入,幫助用戶專注於解決產品本身的流計算需求。

四、數據查詢分析

Hive的核心工作就是把SQL語句翻譯成MR程序,可以將結構化的數據映射為一張資料庫表,並提供 HQL(Hive SQL)查詢功能。Hive本身不存儲和計算數據,它完全依賴於HDFS和MapRece。可以將Hive理解為一個客戶端工具,將SQL操作轉換為相應的MapRece jobs,然後在hadoop上面運行。Hive支持標準的SQL語法,免去了用戶編寫MapRece程序的過程,它的出現可以讓那些精通SQL技能、但是不熟悉MapRece 、編程能力較弱與不擅長Java語言的用戶能夠在HDFS大規模數據集上很方便地利用SQL 語言查詢、匯總、分析數據。

Hive是為大數據批量處理而生的,Hive的出現解決了傳統的關系型資料庫(MySql、Oracle)在大數據處理上的瓶頸 。Hive 將執行計劃分成map->shuffle->rece->map->shuffle->rece…的模型。如果一個Query會被編譯成多輪MapRece,則會有更多的寫中間結果。由於MapRece執行框架本身的特點,過多的中間過程會增加整個Query的執行時間。在Hive的運行過程中,用戶只需要創建表,導入數據,編寫SQL分析語句即可。剩下的過程由Hive框架自動的完成。

Impala是對Hive的一個補充,可以實現高效的SQL查詢。使用Impala來實現SQL on Hadoop,用來進行大數據實時查詢分析。通過熟悉的傳統關系型資料庫的SQL風格來操作大數據,同時數據也是可以存儲到HDFS和HBase中的。Impala沒有再使用緩慢的Hive+MapRece批處理,而是通過使用與商用並行關系資料庫中類似的分布式查詢引擎(由Query Planner、Query Coordinator和Query Exec Engine三部分組成),可以直接從HDFS或HBase中用SELECT、JOIN和統計函數查詢數據,從而大大降低了延遲。Impala將整個查詢分成一執行計劃樹,而不是一連串的MapRece任務,相比Hive沒了MapRece啟動時間。

Hive 適合於長時間的批處理查詢分析,而Impala適合於實時互動式SQL查詢,Impala給數據人員提供了快速實驗,驗證想法的大數據分析工具,可以先使用Hive進行數據轉換處理,之後使用Impala在Hive處理好後的數據集上進行快速的數據分析。總的來說:Impala把執行計劃表現為一棵完整的執行計劃樹,可以更自然地分發執行計劃到各個Impalad執行查詢,而不用像Hive那樣把它組合成管道型的map->rece模式,以此保證Impala有更好的並發性和避免不必要的中間sort與shuffle。但是Impala不支持UDF,能處理的問題有一定的限制。

Spark擁有Hadoop MapRece所具有的特點,它將Job中間輸出結果保存在內存中,從而不需要讀取HDFS。Spark 啟用了內存分布數據集,除了能夠提供互動式查詢外,它還可以優化迭代工作負載。Spark 是在 Scala 語言中實現的,它將 Scala 用作其應用程序框架。與 Hadoop 不同,Spark 和 Scala 能夠緊密集成,其中的 Scala 可以像操作本地集合對象一樣輕松地操作分布式數據集。

Nutch 是一個開源Java 實現的搜索引擎。它提供了我們運行自己的搜索引擎所需的全部工具,包括全文搜索和Web爬蟲。

Solr用Java編寫、運行在Servlet容器(如Apache Tomcat或Jetty)的一個獨立的企業級搜索應用的全文搜索伺服器。它對外提供類似於Web-service的API介面,用戶可以通過http請求,向搜索引擎伺服器提交一定格式的XML文件,生成索引;也可以通過Http Get操作提出查找請求,並得到XML格式的返回結果。

Elasticsearch是一個開源的全文搜索引擎,基於Lucene的搜索伺服器,可以快速的儲存、搜索和分析海量的數據。設計用於雲計算中,能夠達到實時搜索,穩定,可靠,快速,安裝使用方便。

還涉及到一些機器學習語言,比如,Mahout主要目標是創建一些可伸縮的機器學習演算法,供開發人員在Apache的許可下免費使用;深度學習框架Caffe以及使用數據流圖進行數值計算的開源軟體庫TensorFlow等,常用的機器學習演算法比如,貝葉斯、邏輯回歸、決策樹、神經網路、協同過濾等。

五、數據可視化

對接一些BI平台,將分析得到的數據進行可視化,用於指導決策服務。主流的BI平台比如,國外的敏捷BI Tableau、Qlikview、PowrerBI等,國內的SmallBI和新興的網易有數(可點擊這里免費試用)等。

在上面的每一個階段,保障數據的安全是不可忽視的問題。

基於網路身份認證的協議Kerberos,用來在非安全網路中,對個人通信以安全的手段進行身份認證,它允許某實體在非安全網路環境下通信,向另一個實體以一種安全的方式證明自己的身份。

控制許可權的ranger是一個Hadoop集群許可權框架,提供操作、監控、管理復雜的數據許可權,它提供一個集中的管理機制,管理基於yarn的Hadoop生態圈的所有數據許可權。可以對Hadoop生態的組件如Hive,Hbase進行細粒度的數據訪問控制。通過操作Ranger控制台,管理員可以輕松的通過配置策略來控制用戶訪問HDFS文件夾、HDFS文件、資料庫、表、欄位許可權。這些策略可以為不同的用戶和組來設置,同時許可權可與hadoop無縫對接。

㈡ 什麼是P2P是下載器

P2P普及系列之一

拓撲結構是指分布式系統中各個計算單元之間的物理或邏輯的互聯關系,結點之間的拓撲結構一直是確定系統類型的重要依據。目前互聯網路中廣泛使用集中式、層次式等拓撲結構,Interne本身是世界上最大的非集中式的互聯網路,但是九十年代所建立的一些網路應用系統卻是完全的集中式的系統、很多Web應用都是運行在集中式的伺服器系統上。集中式拓撲結構系統目前面臨著過量存儲負載、Dos攻擊等一些難以解決的問題。

P2P系統一般要構造一個非集中式的拓撲結構,在構造過程中需要解決系統中所包含的大量結點如何命名、組織以及確定結點的加入/離開方式、出錯恢復等問題。

根據拓撲結構的關系可以將P2P研究分為4種形式:中心化拓撲(Centralized Topology);全分布式非結構化拓撲(Decentralized Unstructured Topology);全分布式結構化拓撲(Decentralized Structured Topology,也稱作DHT網路)和半分布式拓撲(Partially Decentralized Topology)。

其中,中心化拓撲最大的優點是維護簡單發現效率高。由於資源的發現依賴中心化的目錄系統,發現演算法靈活高效並能夠實現復雜查詢。最大的問題與傳統客戶機/伺服器結構類似,容易造成單點故障,訪問的「熱點」現象和法律等相關問題,這是第一代P2P網路採用的結構模式,經典案例就是著名的MP3共享軟體Napster。

Napster是最早出現的P2P系統之一,並在短期內迅速成長起來。Napster實質上並非是純粹的P2P系統,它通過一個中央伺服器保存所有Napster用戶上傳的音樂文件索引和存放位置的信息。當某個用戶需要某個音樂文件時,首先連接到Napster伺服器,在伺服器進行檢索,並由伺服器返回存有該文件的用戶信息;再由請求者直接連到文件的所有者傳輸文件。

Napster首先實現了文件查詢與文件傳輸的分離,有效地節省了中央伺服器的帶寬消耗,減少了系統的文件傳輸延時。這種方式最大的隱患在中央伺服器上,如果該伺服器失效,整個系統都會癱瘓。當用戶數量增加到105或者更高時,Napster的系統性能會大大下降。另一個問題在於安全性上,Napster並沒有提供有效的安全機制。

在Napster模型中,一群高性能的中央伺服器保存著網路中所有活動對等計算機共享資源的目錄信息。當需要查詢某個文件時,對等機會向一台中央伺服器發出文件查詢請求。中央伺服器進行相應的檢索和查詢後,會返回符合查詢要求的對等機地址信息列表。查詢發起對等機接收到應答後,會根據網路流量和延遲等信息進行選擇,和合適的對等機建立連接,並開始文件傳輸。

這種對等網路模型存在很多問題,主要表現為:
(1)中央伺服器的癱瘓容易導致整個網路的崩饋,可靠性和安全性較低。
(2)隨著網路規模的擴大,對中央索引伺服器進行維護和更新的費用將急劇增加,所需成本過高。
(3)中央伺服器的存在引起共享資源在版權問題上的糾紛,並因此被攻擊為非純粹意義上的P2P網路模型。對小型網路而言,集中目錄式模型在管理和控制方面佔一定優勢。但鑒於其存在的種種缺陷,該模型並不適合大型網路應用。

P2P普及系列之二

Pastry是微軟研究院提出的可擴展的分布式對象定位和路由協議,可用於構建大規模的P2P系統。在Pastry中,每個結點分配一個128位的結點標識符號(nodeID) ,所有的結點標識符形成了一個環形的nodeID空間,范圍從0到2128 - 1 ,結點加入系統時通過散列結點IP地址在128位nodeID空間中隨機分配。

在MIT,開展了多個與P2P相關的研究項目:Chord,GRID和RON。Chord項目的目標是提供一個適合於P2P環境的分布式資源發現服務,它通過使用DHT技術使得發現指定對象只需要維護O(logN)長度的路由表。

在DHT技術中,網路結點按照一定的方式分配一個唯一結點標識符(Node ID) ,資源對象通過散列運算產生一個唯一的資源標識符(Object ID) ,且該資源將存儲在結點ID與之相等或者相近的結點上。需要查找該資源時,採用同樣的方法可定位到存儲該資源的結點。因此,Chord的主要貢獻是提出了一個分布式查找協議,該協議可將指定的關鍵字(Key) 映射到對應的結點(Node) 。從演算法來看,Chord是相容散列演算法的變體。MIT GRID和RON項目則提出了在分布式廣域網中實施查找資源的系統框架。

T&T ACIRI中心的CAN(Content Addressable Networks) 項目獨特之處在於採用多維的標識符空間來實現分布式散列演算法。CAN將所有結點映射到一個n維的笛卡爾空間中,並為每個結點盡可能均勻的分配一塊區域。CAN採用的散列函數通過對(key, value) 對中的key進行散列運算,得到笛卡爾空間中的一個點,並將(key, value) 對存儲在擁有該點所在區域的結點內。CAN採用的路由演算法相當直接和簡單,知道目標點的坐標後,就將請求傳給當前結點四鄰中坐標最接近目標點的結點。CAN是一個具有良好可擴展性的系統,給定N個結點,系統維數為d,則路由路徑長度為O(n1/d) ,每結點維護的路由表信息和網路規模無關為O(d) 。

DHT類結構最大的問題是DHT的維護機制較為復雜,尤其是結點頻繁加入退出造成的網路波動(Churn)會極大增加DHT的維護代價。DHT所面臨的另外一個問題是DHT僅支持精確關鍵詞匹配查詢,無法支持內容/語義等復雜查詢。

半分布式結構(有的文獻稱作 Hybrid Structure)吸取了中心化結構和全分布式非結構化拓撲的優點,選擇性能較高(處理、存儲、帶寬等方面性能)的結點作為超級點(英文文獻中多稱作:SuperNodes, Hubs),在各個超級點上存儲了系統中其他部分結點的信息,發現演算法僅在超級點之間轉發,超級點再將查詢請求轉發給適當的葉子結點。半分布式結構也是一個層次式結構,超級點之間構成一個高速轉發層,超級點和所負責的普通結點構成若干層次。最典型的案例就是KaZaa。

KaZaa是現在全世界流行的幾款p2p軟體之一。根據CA公司統計,全球KaZaa的下載量超過2.5億次。使用KaZaa軟體進行文件傳輸消耗了互聯網40%的帶寬。之所以它如此的成功,是因為它結合了Napster和Gnutella共同的優點。從結構 上來說,它使用了Gnutella的全分布式的結構,這樣可以是系統更好的擴展,因為它無需中央索引伺服器存儲文件名,它是自動的把性能好的機器成為SuperNode,它存儲著離它最近的葉子節點的文件信息,這些SuperNode,再連通起來形成一個Overlay Network. 由於SuperNode的索引功能,使搜索效率大大提高。

P2P普及系列之三

全分布非結構化網路在重疊網路(overlay)採用了隨機圖的組織方式,結點度數服從"Power-law"[a][b]規律,從而能夠較快發現目的結點,面對網路的動態變化體現了較好的容錯能力,因此具有較好的可用性。同時可以支持復雜查詢,如帶有規則表達式的多關鍵詞查詢,模糊查詢等,最典型的案例是Gnutella。

Gnutella是一個P2P文件共享系統,它和Napster最大的區別在於Gnutella是純粹的P2P系統,沒有索引伺服器,它採用了基於完全隨機圖的洪泛(Flooding)發現和隨機轉發(Random Walker)機制。為了控制搜索消息的傳輸,通過TTL (Time To Live)的減值來實現。具體協議參照〔Gnutella協議中文版〕

在Gnutella分布式對等網路模型N中,每一個聯網計算機在功能上都是對等的,既是客戶機同時又是伺服器,所以被稱為對等機(Servent,Server+Client的組合)。

隨著聯網節點的不斷增多,網路規模不斷擴大,通過這種洪泛方式定位對等點的方法將造成網路流量急劇增加,從而導致網路中部分低帶寬節點因網路資源過載而失效。所以在初期的Gnutella網路中,存在比較嚴重的分區,斷鏈現象。也就是說,一個查詢訪問只能在網路的很小一部分進行,因此網路的可擴展性不好。所以,解決Gnutella網路的可擴展性對該網路的進一步發展至關重要。

由於沒有確定拓撲結構的支持,非結構化網路無法保證資源發現的效率。即使需要查找的目的結點存在發現也有可能失敗。由於採用TTL(Time-to-Live)、洪泛(Flooding)、隨機漫步或有選擇轉發演算法,因此直徑不可控,可擴展性較差。

因此發現的准確性和可擴展性是非結構化網路面臨的兩個重要問題。目前對此類結構的研究主要集中於改進發現演算法和復制策略以提高發現的准確率和性能。

全分布非結構化網路在重疊網路(overlay)採用了隨機圖的組織方式,結點度數服從"Power-law"[a][b]規律,從而能夠較快發現目的結點,面對網路的動態變化體現了較好的容錯能力,因此具有較好的可用性。同時可以支持復雜查詢,如帶有規則表達式的多關鍵詞查詢,模糊查詢等,最典型的案例是Gnutella。

Gnutella是一個P2P文件共享系統,它和Napster最大的區別在於Gnutella是純粹的P2P系統,沒有索引伺服器,它採用了基於完全隨機圖的洪泛(Flooding)發現和隨機轉發(Random Walker)機制。為了控制搜索消息的傳輸,通過TTL (Time To Live)的減值來實現。具體協議參照〔Gnutella協議中文版〕

在Gnutella分布式對等網路模型N中,每一個聯網計算機在功能上都是對等的,既是客戶機同時又是伺服器,所以被稱為對等機(Servent,Server+Client的組合)。

隨著聯網節點的不斷增多,網路規模不斷擴大,通過這種洪泛方式定位對等點的方法將造成網路流量急劇增加,從而導致網路中部分低帶寬節點因網路資源過載而失效。所以在初期的Gnutella網路中,存在比較嚴重的分區,斷鏈現象。也就是說,一個查詢訪問只能在網路的很小一部分進行,因此網路的可擴展性不好。所以,解決Gnutella網路的可擴展性對該網路的進一步發展至關重要。

由於沒有確定拓撲結構的支持,非結構化網路無法保證資源發現的效率。即使需要查找的目的結點存在發現也有可能失敗。由於採用TTL(Time-to-Live)、洪泛(Flooding)、隨機漫步或有選擇轉發演算法,因此直徑不可控,可擴展性較差。

因此發現的准確性和可擴展性是非結構化網路面臨的兩個重要問題。目前對此類結構的研究主要集中於改進發現演算法和復制策略以提高發現的准確率和性能。

P2P普及系列之四

半分布式結構的優點是性能、可擴展性較好,較容易管理,但對超級點依賴性大,易於受到攻擊,容錯性也受到影響。下表比較了4種結構的綜合性能,比較結果如表1-1所示。

比較標准/拓撲結構 中心化拓撲 全分布式非結構化拓撲 全分布式結構化拓撲 半分布式拓撲
可擴展性 差 差 好 中
可靠性 差 好 好 中
可維護性 最好 最好 好 中
發現演算法效率 最高 中 高 中
復雜查詢 支持 支持 不支持 支持

表1:4種結構的性能比較

P2P普及系列之五

國外開展P2P研究的學術團體主要包括P2P工作組(P2PWG) 、全球網格論壇(Global Grid Forum ,GGF) 。P2P工作組成立的主要目的是希望加速P2P計算基礎設施的建立和相應的標准化工作。P2PWG成立之後,對P2P計算中的術語進行了統一,也形成相關的草案,但是在標准化工作方面工作進展緩慢。目前P2PWG已經和GGF合並,由該論壇管理P2P計算相關的工作。GGF負責網格計算和P2P計算等相關的標准化工作。

從國外公司對P2P計算的支持力度來看,Microsoft公司、Sun公司和Intel公司投入較大。Microsoft公司成立了Pastry項目組,主要負責P2P計算技術的研究和開發工作。目前Microsoft公司已經發布了基於Pastry的軟體包SimPastry/ VisPastry。Rice大學也在Pastry的基礎之上發布了FreePastry軟體包。

在2000年8月,Intel公司宣布成立P2P工作組,正式開展P2P的研究。工作組成立以後,積極與應用開發商合作,開發P2P應用平台。2002年Intel發布了. Net基礎架構之上的Accelerator Kit (P2P加速工具包) 和P2P安全API軟體包,從而使得微軟. NET開發人員能夠迅速地建立P2P安全Web應用程序。

Sun公司以Java技術為背景,開展了JXTA項目。JXTA是基於Java的開源P2P平台,任何個人和組織均可以加入該項目。因此,該項目不僅吸引了大批P2P研究人員和開發人員,而且已經發布了基於JXTA的即時聊天軟體包。JXTA定義了一組核心業務:認證、資源發現和管理。在安全方面,JXTA加入了加密軟體包,允許使用該加密包進行數據加密,從而保證消息的隱私、可認證性和完整性。在JXTA核心之上,還定義了包括內容管理、信息搜索以及服務管理在內的各種其它可選JXTA服務。在核心服務和可選服務基礎上,用戶可以開發各種JXTA平台上的P2P應用。

P2P實際的應用主要體現在以下幾個方面:

P2P分布式存儲
P2P分布式存儲系統是一個用於對等網路的數據存儲系統,它可以提供高效率的、魯棒的和負載平衡的文件存取功能。這些研究包括:OceanStore,Farsite等。其中,基於超級點結構的半分布式P2P應用如Kazza、Edonkey、Morpheus、Bittorrent等也是屬於分布式存儲的范疇,並且用戶數量急劇增加。

計算能力的共享
加入對等網路的結點除了可以共享存儲能力之外,還可以共享CPU處理能力。目前已經有了一些基於對等網路的計算能力共享系統。比如SETI@home。目前SETI@home採用的仍然是類似於Napster的集中式目錄策略。Xenoservers向真正的對等應用又邁進了一步。這種計算能力共享系統可以用於進行基因資料庫檢索和密碼破解等需要大規模計算能力的應用。

P2P應用層組播
應用層組播,就是在應用層實現組播功能而不需要網路層的支持。這樣就可以避免出現由於網路層遲遲不能部署對組播的支持而使組播應用難以進行的情況。應用層組播需要在參加的應用結點之間實現一個可擴展的,支持容錯能力的重疊網路,而基於DHT的發現機制正好為應用層組播的實現提供了良好的基礎平台。
Internet間接訪問基礎結構(Internet Indirection Infrastructure)。

為了使Internet更好地支持組播、單播和移動等特性,Internet間接訪問基礎結構提出了基於匯聚點的通信抽象。在這一結構中,並不把分組直接發向目的結點,而是給每個分組分配一個標識符,而目的結點則根據標識符接收相應的分組。標識符實際上表示的是信息的匯聚點。目的結點把自己想接收的分組的標識符預先通過一個觸發器告訴匯聚點,當匯聚點收到分組時,將會根據觸發器把分組轉發該相應的目的結點。Internet間接訪問基礎結構實際上在Internet上構成了一個重疊網路,它需要對等網路的路由系統對它提供相應的支持。

P2P技術從出現到各個領域的應用展開,僅用了幾年的時間。從而證明了P2P技術具有非常廣闊的應用前景。

P2P普及系列之六

隨著P2P應用的蓬勃發展,作為P2P應用中核心問題的發現技術除了遵循技術本身的邏輯以外,也受到某些技術的發展趨勢、需求趨勢的深刻影響。

如上所述,DHT發現技術完全建立在確定性拓撲結構的基礎上,從而表現出對網路中路由的指導性和網路中結點與數據管理的較強控制力。但是,對確定性結構的認識又限制了發現演算法效率的提升。研究分析了目前基於DHT的發現演算法,發現衡量發現演算法的兩個重要參數度數(表示鄰居關系數、路由表的容量)和鏈路長度(發現演算法的平均路徑長度)之間存在漸進曲線的關系。

研究者採用圖論中度數(Degree)和直徑(Diameter)兩個參數研究DHT發現演算法,發現這些DHT發現演算法在度數和直徑之間存在漸進曲線關系,如下圖所示。在N個結點網路中,圖中直觀顯示出當度數為N時,發現演算法的直徑為O(1);當每個結點僅維護一個鄰居時,發現演算法的直徑為O(N)。這是度數和直徑關系的2種極端情況。同時,研究以圖論的理論分析了O(d)的度和O(d)的直徑的演算法是不可能的。

從漸進曲線關系可以看出,如果想獲得更短的路徑長度,必然導致度數的增加;而網路實際連接狀態的變化造成大度數鄰居關系的維護復雜程度增加。另外,研究者證明O(logN)甚至O(logN/loglogN)的平均路徑長度也不能滿足狀態變化劇烈的網路應用的需求。新的發現演算法受到這種折衷關系制約的根本原因在於DHT對網路拓撲結構的確定性認識。

非結構化P2P系統中發現技術一直採用洪泛轉發的方式,與DHT的啟發式發現演算法相比,可靠性差,對網路資源的消耗較大。最新的研究從提高發現演算法的可靠性和尋找隨機圖中的最短路徑兩個方面展開。也就是對重疊網路的重新認識。其中,small world特徵和冪規律證明實際網路的拓撲結構既不是非結構化系統所認識的一個完全隨機圖,也不是DHT發現演算法採用的確定性拓撲結構。

實際網路體現的冪規律分布的含義可以簡單解釋為在網路中有少數結點有較高的「度」,多數結點的「度」較低。度較高的結點同其他結點的聯系比較多,通過它找到待查信息的概率較高。

Small-world[a][b]模型的特性:網路拓撲具有高聚集度和短鏈的特性。在符合small world特性的網路模型中,可以根據結點的聚集度將結點劃分為若干簇(Cluster),在每個簇中至少存在一個度最高的結點為中心結點。大量研究證明了以Gnutella為代表的P2P網路符合small world特徵,也就是網路中存在大量高連通結點,部分結點之間存在「短鏈」現象。

因此,P2P發現演算法中如何縮短路徑長度的問題變成了如何找到這些「短鏈」的問題。尤其是在DHT發現演算法中,如何產生和找到「短鏈」是發現演算法設計的一個新的思路。small world特徵的引入會對P2P發現演算法產生重大影響。

P2P普及系列之七

有DHT演算法由於採用分布式散列函數,所以只適合於准確的查找,如果要支持目前Web上搜索引擎具有的多關鍵字查找的功能,還要引入新的方法。主要的原因在於DHT的工作方式。

基於DHT的P2P系統採用相容散列函數根據精確關鍵詞進行對象的定位與發現。散列函數總是試圖保證生成的散列值均勻隨機分布,結果兩個內容相似度很高但不完全相同的對象被生成了完全不同的散列值,存放到了完全隨機的兩個結點上。因此,DHT可以提供精確匹配查詢,但是支持語義是非常困難的。

目前在DHT基礎上開展帶有語義的資源管理技術的研究還非常少。由於DHT的精確關鍵詞映射的特性決定了無法和信息檢索等領域的研究成果結合,阻礙了基於DHT的P2P系統的大規模應用。

P2P發現技術中最重要的研究成果應該是基於small world理論的非結構化發現演算法和基於DHT的結構化發現演算法。尤其是DHT及其發現技術為資源的組織與查找提供了一種新的方法。

隨著P2P系統實際應用的發展,物理網路中影響路由的一些因素開始影響P2P發現演算法的效率。一方面,實際網路中結點之間體現出較大的差異,即異質性。由於客戶機/伺服器模式在Internet和分布式領域十幾年的應用和大量種類的電子設備的普及,如手提電腦、行動電話或PDA。這些設備在計算能力、存儲空間和電池容量上差別很大。另外,實際網路被路由器和交換機分割成不同的自治區域,體現出嚴密的層次性。

另一方面,網路波動的程度嚴重影響發現演算法的效率。網路波動(Churn、fluctuation of network)包括結點的加入、退出、失敗、遷移、並發加入過程、網路分割等。DHT的發現演算法如Chord、CAN、Koorde等都是考慮網路波動的最差情況下的設計與實現。由於每個結點的度數盡量保持最小,這樣需要響應的成員關系變化的維護可以比較小,從而可以快速恢復網路波動造成的影響。但是每個結點僅有少量路由狀態的代價是發現演算法的高延時,因為每一次查找需要聯系多個結點,在穩定的網路中這種思路是不必要的。

同時,作為一種資源組織與發現技術必然要支持復雜的查詢,如關鍵詞、內容查詢等。盡管信息檢索和數據挖掘領域提供了大量成熟的語義查詢技術,由於DHT精確關鍵詞映射的特性阻礙了DHT在復雜查詢方面的應用。

P2P普及系列之八

Internet作為當今人類社會信息化的標志,其規模正以指數速度高速增長.如今Internet的「面貌」已與其原型ARPANET大相徑庭,依其高度的復雜性,可以將其看作一個由計算機構成的「生態系統」.雖然Internet是人類親手建造的,但卻沒有人能說出這個龐然大物看上去到底是個什麼樣子,運作得如何.Internet拓撲建模研究就是探求在這個看似混亂的網路之中蘊含著哪些還不為我們所知的規律.發現Internet拓撲的內在機制是認識Internet的必然過程,是在更高層次上開發利用Internet的基礎.然而,Internet與生俱來的異構性動態性發展的非集中性以及如今龐大的規模都給拓撲建模帶來巨大挑戰.Internet拓撲建模至今仍然是一個開放性問題,在計算機網路研究中佔有重要地位.

Internet拓撲作為Internet這個自組織系統的「骨骼」,與流量協議共同構成模擬Internet的3個組成部分,即在拓撲網路中節點間執行協議,形成流量.Internet拓撲模型是建立Internet系統模型的基礎,由此而體現的拓撲建模意義也可以說就是Internet建模的意義,即作為一種工具,人們用其來對Internet進行分析預報決策或控制.Internet模型中的拓撲部分刻畫的是Internet在宏觀上的特徵,反映一種總體趨勢,所以其應用也都是在大尺度上展開的.對Internet拓撲模型的需求主要來自以下幾個方面1) 許多新應用或實驗不適合直接應用於Internet,其中一些具有危害性,如蠕蟲病毒在大規模網路上的傳播模擬;(2) 對於一些依賴於網路拓撲的協議(如多播協議),在其研發階段,當前Internet拓撲只能提供一份測試樣本,無法對協議進行全面評估,需要提供多個模擬拓撲環境來進行實驗;(3) 從國家安全形度考慮,需要在線控制網路行為,如美國國防高級研究計劃局(DARPA)的NMS(network modeling and simulation)項目。

隨機網路是由N個頂點構成的圖中,可以存在條邊,我們從中隨機連接M條邊所構成的網路。還有一種生成隨機網路的方法是,給一個概率p,對於中任何一個可能連接,我們都嘗試一遍以概率p的連接。如果我們選擇M = p,這兩種隨機網路模型就可以聯系起來。對於如此簡單的隨機網路模型,其幾何性質的研究卻不是同樣的簡單。隨機網路幾何性質的研究是由Paul,Alfréd Rényi和Béla Bollobás在五十年代到六十年代之間完成的。隨機網路在Internet的拓撲中佔有很重要的位置。

隨機網路參數
描述隨機網路有一些重要的參數。一個節點所擁有的度是該節點與其他節點相關聯的邊數,度是描述網路局部特性的基本參數。網路中並不是所有節點都具有相同的度,系統中節點度的分布情況,可以用分布函數描述,度分布函數反映了網路系統的宏觀統計特徵。理論上利用度分布可以計算出其他表徵全局特性參數的量化數值。

聚集系數是描述與第三個節點連接的一對節點被連接的概率。從連接節點的邊的意義上,若為第i個節點的度,在由k.個近鄰節點構成的子網中,實際存在的邊數E(i)與全部k.個節點完全連接時的總邊數充的比值定義為節點i的聚集系數。

㈢ 英語翻譯軟體的原理

機器翻譯基本工作原理和基本分類

機器翻譯(Machine Translation,MT)是建立在多學科基礎上的綜合學科,現代理論語言學的發展,計算機科學的進步,信息學和概率統計學的應用,對機器翻譯的發展和演變產生了重要影響。機器翻譯的基本思想是利用計算機對自然語言進行翻譯,而各種機器翻譯系統採用的技術和理念不盡相同;面對各種各樣的機器翻譯系統,文獻上有各種分類方式。本文根據所應用的基本工作原理對機器翻譯系統分類作一綜述。
1. 基本類型的機器翻譯系統:現有的機器翻譯系統按照其基本工作原理,可以分為基於規則的(Rule-Based)機器翻譯,基於實例的(Example-Based)機器翻譯和統計型的(Statistical)機器翻譯這三種基本類型。
1.1. 基於規則的機器翻譯系統(Rule-Based Machine Translation, RBMT):其基本工作原理基於一個假設,即語言無限的句子可以由有限的規則推導出來。基於這個假設的機器翻譯方法又可以分為三類:直接翻譯法(Direct Translation),中間語言法(Interlingual Approach),和轉換法(Transfer Approach)。它們都需要用到大規模的雙語詞典,需要用到源語言推導規則,語言轉換規則和目標語言生成規則;其不同點在於對語言進行的分析深度不同。如直譯法幾乎不需要進行語言分析,中間語言法和轉換法需要對源語言和目標語言進行某種程度的語言分析。
1.1.1直接翻譯法(Direct Translation):這種翻譯方法直接對源文字中的字詞進行逐個翻譯,譯後文字順序按照原文順序進行排列。這是基於規則的機器翻譯的最早的工作方法。這種譯法簡單、直觀,其弊端也是明顯的:由這種方法得到的翻譯結果質量很不令人滿意。人們已經逐漸不再使用這種直接翻譯法。
1.1.2中間語言法(Interlingual Approach):這種翻譯方法對源語言文字進行透徹的語言分析,將其轉化為一種中間語言表達形式,進而由這種中間語言(Interlingua)進一步生成和輸出符合目標語言語法規則的文字。這種中間語言是一種非自然語言,即不是任何國家地區人們使用的語言;而且它是一種沒有歧義的表達方式。此外,中間語言不是唯一的,不同的系統採用不同的中間語言。任意一種語言經由中間語言譯為其它任意一種語言,理論上這種中間語言法是最有效率的一種翻譯方式。假定世界上總共有n種自然語言,使用中間語言法,只需2n個模塊就可以解決所有自然語言之間的互譯問題。不使用中間語言,這些語言間的互譯則需要n(n-1)個模塊。當n大於3時,2n小於n(n-1)。我們知道,世界上的自然語言種類遠大於3,因此2n個模塊的數量遠小於n(n-1)個模塊的數量。
1.1.3 轉換法(Transfer Approach):這種翻譯方法先對源語言文字進行一定程度的語言分析,去除語法的因素,生成源語言的中間表達方式,然後經由轉換,生成目標語言的中間表達方式,再由目標語言的中間表達方式生成和輸出符合目標語言語法規則的文字。目前來說,轉換法的語言分析和實現方法在三種方法中最為復雜,得到的翻譯質量在三種方法中也是最好的,是目前商業上最常使用的翻譯方法,在商業上最為成功。
在許多基於規則的機器翻譯系統中,由語言學家輔助編寫一系列關於源語言和目標語言的語法規則,以及將源語言數據轉換為目標語言數據的轉換規則。然而使用全人工來製作這些規則非常昂貴、費時,而且易於出錯。一個解決方法便是將以往的歷史翻譯結果作為資源庫,其中的源語言文字和它對應的目標語言譯文作為例子,從中嘗試提取出恰當的規則。方法之一是對源文字和目標語言譯文作人工標記以示關聯。Sato言和Nagao[1]研發出一個系統,用「平面依賴關系樹」來表示源語言文字和目標語言文字。這種關系樹型數據結構是計算機高效識別的一種形式。通常用兩個層次代表源語言和目標語言之間的關聯:第一層次依賴於文字的表面形式(如字、詞順序),用於源語言的分析和目標語言的生成;第二層次依賴於字詞間的語義關聯,用於從源語言向目標語言的轉換。這種機器翻譯系統在基於規則的機器翻譯基礎上,利用了實例庫的優勢。
隨著大量歷史翻譯結果的積累,出現了基於實例的機器翻譯系統,人們將這些已經完成的翻譯結果作為資源庫,利用到機器翻譯中來。
1.2. 基於實例的機器翻譯(Example-Based Machine Translation,EBMT):其基本工作原理是基於類比(Analogy)的原則,從實例庫中匹配出與源文字片段最相似的文字片段,取出實例文字片段對應的目標語言翻譯結果,進行適當的改造,最終得出完整的翻譯結果。基於實例的機器翻譯其核心思想最早由MakonNagao 提出,他提出:人們在翻譯簡單句子時並不作深層語言分析,而是翻譯。首先把源句子分解成若乾片段,然後將這些片段譯為目標語言,每個片段的翻譯都是通過與例句做匹配以類比的原則得到的,最後將這些譯後句子組合成一個長句子。
1.2.1. 實例庫的構成:實例庫也稱為語料庫(Corpus),由已經完成的翻譯結果構成。這些現成的翻譯結果也稱為語料,包括人工翻譯的結果和經過人工編輯的機器翻譯結果。語料庫由雙語對構成,包括源語言文字片段和目標語言譯文文字片段兩部分。這些翻譯結果要先經過拆分和對齊處理,才可以成為語料庫中的可用語料。因此語料庫也稱為平行雙語語料庫(Parallel的 Corpus)。拆分和對齊目前有多種形式,如句子水平的對齊和短語水平的對齊。對齊的文字片段大小的選擇,會直接影響匹配的效率和翻譯結果。
1.2.2. 語料拆分的碎片化問題:Nirenburg等(1993)指出,在基於實例的機器翻譯系統(EBMT) 中,實例語料存在一個文字片段長度和相似度之間的一個矛盾。文字片段越長,越不易得到一個相似度高的匹配;文字片段越短,越可能得到一個大致匹配,但是得到低質量翻譯結果的風險也越大。比如由段落劃分邊界產生的重疊問題以及不恰當的劃分導致的翻譯質量下降。直觀上似乎是選擇以句子為單位劃分得到的語料對比較好,有諸多優勢如:句子的邊界劃分清楚,一些簡單句子的結構清晰。然而在實際應用中,以句子為單位並不是最恰當的方式。實踐證明匹配和重組過程需要使用更加短小的片段。(當然,這些研究結果是以歐美語系語言之間的翻譯研究結果為基礎的。)
1.2.3. 實例庫定製:實例語料的的范圍和質量影響著基於實例的機器翻譯系統(EBMT)的翻譯質量水平。在某特定領域獲取高質量語料可以大大提高機器翻譯在此領域的翻譯質量,稱為語料(實例)庫的定製。
1.3. 統計型機器翻譯系統(Statistical MT):IBM公司的Brown在1990年首先將統計模型用於法-英機器翻譯。其基本思想是:把機器翻譯問題看成是一個雜訊信道問題,然後用信道模型來進行解碼。翻譯過程被看作是一個解碼的過程,進而變成尋求最優翻譯結果的過程。基於這種思想的機器翻譯重點是定義最合適的語言概率模型和翻譯概率模型,然後對語言模型和翻譯模型的概率參數進行估計。語言模型的參數估計需要大量的單語語料,翻譯模型的參數估計需要大量平行雙語語料。統計機器翻譯的質量很大程度上取決於語言模型和翻譯模型的性能,此外,要找到最優的譯文,還需要有好的搜索演算法。簡單說,統計機器翻譯首先建立統計模型,然後使用實例庫中的實例對統計模型進行訓練,得到需要的語言模型和翻譯模型用於翻譯。
統計型機器翻譯,除了基於雜訊信道理論的系統以外,還有基於最大熵方法的系統。博格(A.L.Berger)在1996年 提出自然語言處理中「最大熵方法」(Maximum Entropy Approach)。德國人奧赫 (Franz Joseph Och)等發現, 把IBM公司的統計機器翻譯基本方程式中的翻譯模型轉變為反向翻譯模型,總體的翻譯正確率並沒有降低,由此,他們提出基於最大熵方法的機器翻譯模型。
統計型機器翻譯取得了一定的成績,然而純統計設計卻不能解決所有困難。統計型的方法不考慮語言的語義、語法因素,單純用數學的方法來處理語言問題,有著巨大的局限性。於是人們開始探索基於統計方法和其它翻譯方法的聯合應用。如統計的和基於實例的機器翻譯系統,統計的和基於規則的機器翻譯系統,等等。
2. 綜合類型的機器翻譯系統:
以上三個基本機器翻譯系統各有優勢和長處,同時又不可避免的具有某種缺陷和局限性。如基於規則的機器翻譯系統(RBMT)可以准確的描述語言學特徵和規律,然而制定適用和完備的語言規則卻不是一件容易的事;基於實例的機器翻譯系統(EBMT)可以充分利用已有的翻譯結果,但是實例庫的維護需要大量的人工和費用;統計型的機器翻譯(Statistical以MT)可以緩解知識獲取的瓶頸問題,但是純數學的方法難於完全解決語言中的復雜問題。為進一步提高機器翻譯系統的翻譯水平,人們綜合以上幾個基本類型的優勢,又發明了混合型機器翻譯系統(Hybrid器MT),多引擎機器翻譯系統(Multi-Engine MT)和提出了基於知識的機器翻譯系統(Knowledge-Based MT)的理論。
2.1 混合型機器翻譯系統(Hybrid MT):翻譯過程使用兩種或以上機器翻譯原理。比如:基於規則的機器翻譯方法的核心是構造完備的、適應性較強的規則系統。如何得到完備和適應性強的規則系統成為研究焦點。使用傳統的方法,語法規則庫的建立需要大量的人力、物力,大量的語言語法規則之間往往存在著不可避免的沖突,規則的完備性和適應性不能得到保證。隨著人們翻譯工作的進行,生成大量已完成的翻譯結果,形成大量語料。人們想到了使用統計方法從現有語料中自動提取我們需要的語言語法信息。從實例中抽取語言轉換規則,將基於實例的機器翻譯作為研究技術來建立語言規則基礎,而不是單純用來進行類比翻譯。通過一個歸納的過程,從大量例句中提出抽象的規則 。這樣傳統的基於規則的機器翻譯方法發展成為以規則為基礎,語料庫為輔助的機器翻譯方法。這種翻譯模型可以稱之為混合型機器翻譯系統(Hybrid MT)。
2.2 多引擎機器翻譯系統(Multi-Engine MT):這種機器翻譯系統的基本思想是幾架機器翻譯引擎同時進行並行翻譯,並行翻譯的這幾架翻譯引擎分別基於不同的工作原理,給出多個翻譯結果,然後通過某種機制或演算法篩選並生成最優翻譯結果進行輸出。多引擎機器翻譯系統的一種工作方式如:接收到源文字後,先將文字轉化為若干文字片段,由多個機器翻譯引擎進行並行翻譯,型各個文字片段均得到多個翻譯結果, 通過某種機制選擇最優的翻譯片段組成最優組合,最後輸出最優的翻譯結果。或者是接收到源文字後,由多個機器翻譯引擎進行並行翻譯,得到多個翻譯結果,然後對各個翻譯結果進行字詞的比較,通過某種假設檢驗和演算法,選擇適當的字詞翻譯組成最優翻譯結果輸出。
2.3. 基於知識的機器翻譯系統(Knowledge-Based MT):在機器翻譯研究中,人們越來越發現在翻譯過程中正確的理解、領會源語言的重要性。語言有著其復雜性。其中語言的模糊性是各種機器翻譯系統所面對的最頑固的難題。語言的模糊性指語言文字同一表層結構對應著兩種或兩種以上的深層結構,簡單說就是一種形式對應著兩種或兩種以上的解釋,必須通過上下文內容的提示和綜合知識背景、常識才可能做出正確的詮釋。受人工智慧,知識工程的發展影響,人們開始強調對源語言更為徹底的理解,提出不僅需要進行深層語言分析,還需要進行世界知識的積累和處理,建立知識庫,以助於理解語言。通過對世界知識的了解,解決機器翻譯中遇到的語言模糊問題。為了從根本上徹底的解決機器翻譯所面對的語言的模糊性問題,人們提出了基於知識的機器翻譯系統。
2.3.1 基於語義網的機器翻譯(Semantic Web based Machine Translation, SWMT):是基於知識的機器翻譯系統的一種實現方式。語義網(Semantic Web),指通過某種技術,將現有網路上的知識內容轉化為機器可以辨識的內容,成為機器翻譯的「世界知識庫」。這些理論基於Tim Berners-Lee提出的觀點「知識一旦經定義和形式化後,便可以通過任意方式訪問」。萬維網最初的設計是希望它簡單,去中心化並且盡可能的易於互動。網路的發展證明它是一個巨大的成功。然而,網路上面的信息都是面向人類大腦的。為了讓計算機也能夠接受和利用這些信息資源,在新的世紀一種擴展和補充性質的技術出現了,分稱為W3C,Semantic Web3 (三維語義網)。三維語義網路的基礎技術是數據格式的「資源描述構架」( 『Resource Description Framework』,RDF), 它定義了一種結構,用一種自然的方式來描述計算機處理的巨大量的數據[8]。目前人們已經 在嘗試將現有的機器翻譯系統整合入語義網,以充分利用世界知識/專家知識, 提高機器翻譯質量。
3.語音翻譯(Speech Translation):語音翻譯是與文字翻譯相對應的一種機器翻譯分類,與前面的分類有著不同。但是有著廣泛的應用,如日常交談、電話通話、會議講話等對語音交流內容的自動翻譯,在實際應用中非常重要。語音翻譯在翻譯之前增加了一個語言識別(SpeechB Recognition)過程,形成正確的文字內容輸入,並且在翻譯過程完成後增加了一個語音合成(Speech Synthesis)過程,
形成一個正確的語音內容輸出。其中語音識別技術和語音合成技術都有著專門研究,這里不再贅述。

作者姓名:洪潔
工作單位:傳神語聯網網路科技股份有限公司 多語工程中心
作者姓名:洪雷
工作單位:中國科學院大學 外語系

閱讀全文

與Java語義相似度相關的資料

熱點內容
程序員在東南亞被毒打 瀏覽:284
php內存操作 瀏覽:6
1加手機號碼放哪個文件夾 瀏覽:728
大兵程序員 瀏覽:785
青桔app福利中心在哪裡 瀏覽:170
演算法安全是智能化戰爭的博弈焦點 瀏覽:497
編譯器用vs多少 瀏覽:316
pc單機游戲壓縮包下載 瀏覽:570
伺服器鎖定什麼意思 瀏覽:731
吐司解壓神器 瀏覽:70
程序員的電腦一般用什麼 瀏覽:934
如何從伺服器中查詢表是否存在 瀏覽:323
android首頁布局源碼 瀏覽:46
虎牙主播是怎麼安卓投屏的 瀏覽:782
redmonk編程語言排行榜 瀏覽:110
android嵌入html5 瀏覽:676
雲伺服器能永久使用嗎 瀏覽:904
linux安裝openresty 瀏覽:386
ubunt配置php 瀏覽:975
達達取貨碼在app哪裡 瀏覽:49