国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于Django 的漢維人名在線翻譯系統(tǒng)

2020-08-07 14:40西熱艾力海熱拉艾山吾買爾王路路
現(xiàn)代計算機 2020年18期
關(guān)鍵詞:調(diào)用命名實體

西熱艾力·海熱拉,艾山·吾買爾,王路路

(1.新疆大學(xué)信息科學(xué)與工程學(xué)院,烏魯木齊830046;2.新疆大學(xué)新疆多語種信息技術(shù)實驗室,烏魯木齊830046)

0 引言

命名實體主要包括人名、地名、組織機構(gòu)名、時間日期、量詞表達(dá)式等,表達(dá)文本關(guān)鍵的部分。因此,命名實體的準(zhǔn)確翻譯對原文內(nèi)容的理解具有較大影響。作為文本中表達(dá)關(guān)鍵信息的命名實體(Named Entity,NE)具有一定的組成規(guī)范,而且往往包含未登錄詞(Out-of-Vocabulary,OoV)和縮略詞,這就給翻譯帶來了極大的難度,并且相對于句子來說,實體翻譯對準(zhǔn)確性和規(guī)范性有更高的要求。命名實體翻譯有其自身的特點,這使得實體翻譯與句子翻譯之間存在著很大的差異,因此,將命名實體翻譯作為一個獨立于句子翻譯的問題進(jìn)行研究是很有必要的。已有研究表明,對命名實體進(jìn)行單獨翻譯處理后,可以使機器翻譯的BLEU(Bilingual Evaluation Understudy)值明顯提高。

命名實體翻譯概念提出以來眾多語言上獲得了相關(guān)的研究。命名實體中人名、地名、機構(gòu)名中,人名和機構(gòu)名是變化較大,而且不斷出現(xiàn)新的詞匯的部分。人名與機構(gòu)名差異也比較大,所以不少國內(nèi)外學(xué)者們開展了人名翻譯的研究[1-9],提出了針對具體語言的規(guī)則、統(tǒng)計或多種策略融合的方法。如,日語-英語[1,10]、漢語-英語[2-3]等語言對上紛紛開展相關(guān)研究工作。皺皮等人[4]對英漢人名的音譯方法進(jìn)行詳細(xì)的比較,雖然取得了不錯的效果。Zhang 等人[5]采用兩種方式的音節(jié)切分算法對英語音節(jié)映射到漢字提高了模型的準(zhǔn)確率。于恒等人[6]將多粒度的英文切分利用詞圖融合并利用層次短語模型解碼提高了模型的翻譯性能。

2010 年衣馬木艾山·阿布都力克木等人[11]研究維吾爾語人名漢文音譯規(guī)則,提出基于規(guī)則的維吾爾人名漢文機器翻譯算法。2017 年Murat 等人[8]提出自動學(xué)習(xí)人名語義信息的方法,對維吾爾族人名翻譯漢語的任務(wù)中引入了語義信息。

隨著基于神經(jīng)網(wǎng)絡(luò)的機器翻譯方法取得顯著的提升,國內(nèi)外學(xué)者們開始使用神經(jīng)網(wǎng)絡(luò)對人名進(jìn)行翻譯。本文中,使用基于注意力機制的循環(huán)神經(jīng)網(wǎng)絡(luò)(Recurrent Neural Network,RNN)模型實現(xiàn)了漢語-維吾爾語人名翻譯模型,并設(shè)計與實現(xiàn)了基于Django 的網(wǎng)絡(luò)服務(wù)接口,提供漢語-維吾爾語、維吾爾-漢語機器翻譯系統(tǒng)、關(guān)鍵詞翻譯系統(tǒng)等使用。為了演示系統(tǒng),設(shè)計與實現(xiàn)了基于Django 的漢語-維吾爾語人名翻譯在線系統(tǒng)。

1 模型及開源工具介紹

1.1 機器翻譯模型

本文中,使用Google 開發(fā)的基于RNN 的神經(jīng)機器翻譯模型GNMT[12],其由接受輸入序列的編碼器和產(chǎn)生目標(biāo)語句的解碼器兩部分構(gòu)成,模型架構(gòu)圖如圖1 所示。編碼器-解碼器均由8 層RNN 組成,其中編碼器的第一層用雙向長短期記憶網(wǎng)絡(luò)(Bidirectional Long Short-Term Memory,BiLSTM)組成。BiLSTM 在RNN的基礎(chǔ)上增加輸入門控單元、遺忘門控單元、記憶單元以及輸出門控單元。計算公式如下公式(1-4)所示:

除此之外,引入注意力機制使得模型更高效地處理長句子,計算注意力公式如下公式(5)所示。

圖1 GNMT模型架構(gòu)圖

1.2 Django Web應(yīng)用框架

Django 是基于Python 語言的開源Web 應(yīng)用框架。采用MTV 的框架模式,即M 表示模型(Model)映射業(yè)務(wù)對象和數(shù)據(jù)庫的關(guān)系;T 表示模板(Template)將頁面展示在瀏覽器上;V 表示視圖(View)在模型和業(yè)務(wù)之間協(xié)調(diào)業(yè)務(wù)邏輯關(guān)系。結(jié)構(gòu)圖如圖2 所示。

圖2 Django結(jié)構(gòu)圖

2 設(shè)計與實現(xiàn)

設(shè)計基于Django 的漢維人名翻譯服務(wù)的目的是給用戶提供將漢語人名翻譯為維吾爾語的服務(wù)。除此之外,考慮系統(tǒng)的擴建性并創(chuàng)造更多的應(yīng)用價值,系統(tǒng)提供了可擴展的翻譯任務(wù)接口和語言方向接口。根據(jù)需求訓(xùn)練翻譯模型,指定語言方向就能增加翻譯任務(wù),配置過程將下一章節(jié)詳細(xì)介紹。漢維人名翻譯服務(wù)的效果圖如圖3 所示。左側(cè)的輸入框用于輸入待翻譯的漢語人名,點擊翻譯按鈕之后服務(wù)接口將待翻譯的文本內(nèi)容發(fā)送給翻譯模型,翻譯模型經(jīng)過大量的計算將其翻譯成維吾爾文,翻譯結(jié)果通過服務(wù)接口顯示在翻譯頁面的右側(cè)框。

圖3 漢維人名翻譯頁面

2.1 服務(wù)接口的實現(xiàn)步驟

第一步:環(huán)境搭建

首先安裝Python 環(huán)境,其次打開命令行窗口通過pip 命令安裝Django 包。

第二步:創(chuàng)建基于Django Web 框架的項目

打開命令行窗口輸入命令django-admin.py startproject zh2uyNameTrans 創(chuàng)建漢維人名翻譯項目,其中zh2uyNameTrans 指的是項目名稱。第三步:創(chuàng)建應(yīng)用

進(jìn)入第二步所創(chuàng)建的項目的主目錄輸入命令python manage.py startapp personNameTrans 來在當(dāng)前項目中創(chuàng)建一個漢維人名翻譯應(yīng)用,其中person-NameTrans 指的是應(yīng)用名稱。隨后將已訓(xùn)練好的基于循環(huán)神經(jīng)網(wǎng)絡(luò)的漢維人名翻譯模型、數(shù)據(jù)和相關(guān)代碼放入創(chuàng)建好的應(yīng)用目錄中。

第四步:注冊應(yīng)用

打開所創(chuàng)建的目錄下的settings.py 文件,INSTALLED_APPS 里面注冊第三步創(chuàng)建的應(yīng)用名稱personNameTrans。

第五步:綁定URL

打開所創(chuàng)建的目錄下的urls.py 文件,urlpatterns 里面綁定URL 與調(diào)用的函數(shù),path(r'trans',views.trans),其中personNameTrans 指的是URL,views.trans 指的是調(diào)用的函數(shù)。

第六步:實現(xiàn)服務(wù)調(diào)用函數(shù)

打開第四步創(chuàng)建的應(yīng)用下的views.py 文件實現(xiàn)第五步所綁定的trans 函數(shù)。根據(jù)服務(wù)接口設(shè)計設(shè)置接口的輸入?yún)?shù)和返回數(shù)據(jù)。

第七步:啟動服務(wù)

打開命令行窗口進(jìn)入Django 項目主目錄,輸入命令python manage.py runserver 啟動Django 服務(wù),默認(rèn)使用8000 端口。

2.2 漢維人名翻譯接口的調(diào)用說明

本文開發(fā)的系統(tǒng)是基于Django 的漢維人名翻譯服務(wù)接口。任何服務(wù)接口的調(diào)用參數(shù)及返回數(shù)據(jù)類型對使用者至關(guān)重要,因此,下面詳細(xì)介紹漢維人名翻譯服務(wù)接口的調(diào)用參數(shù)、示例及服務(wù)接口的返回結(jié)果。具體調(diào)用信息如表1 所示,輸入示例如表2 所示,服務(wù)接口返回結(jié)果如表3 所示。

表1 服務(wù)接口調(diào)用信息表

其中task 參數(shù)表示為任務(wù)類型,根據(jù)需求增加翻譯任務(wù)后,新配任務(wù)代碼用于調(diào)用該服務(wù)。源語言和目標(biāo)語言同task 參數(shù)給不同的語言分配不同的語言代碼。

表2 輸入示例表

表3 返回示例表

服務(wù)接口返回結(jié)果中通過code 參數(shù)知道本次請求的狀態(tài),例如:200 表示調(diào)用服務(wù)成功,500 表示服務(wù)內(nèi)部錯誤。根據(jù)任務(wù)特性設(shè)置不同的錯誤代碼便于發(fā)現(xiàn)錯誤。

3 實驗結(jié)果與分析

本文使用的硬件環(huán)境是2 個GPU 為NVIDIA RTX 2080ti 11GB,CPU 位Intel Core i5 9400F,6 核,內(nèi)存為32GB。使用的軟件環(huán)境如下:Ubuntu 18.04 版本的64 位操作系統(tǒng),Python 3.6,TensorFlow 1.2 以及Django 3.0 版本。

本文利用一千條人名對漢維人名翻譯模型進(jìn)行測試,準(zhǔn)確率達(dá)到93.7%,然后將其模型應(yīng)用到設(shè)置的基于Django 的漢維人名翻譯服務(wù)接口。為了準(zhǔn)確驗證本文構(gòu)建的服務(wù)接口的翻譯速度和并發(fā)量兩個重要性能,本文使用長度為2 到9 個漢字的1 萬條人名,共31391 個字符進(jìn)行測試服務(wù)接口的并發(fā)量和速度,其中batch size 為每個線程單次處理的人名個數(shù)。具體的測試結(jié)果如表4 所示。

表4 漢維人名翻譯服務(wù)接口測試結(jié)果

表4 的實驗結(jié)果可以看出隨著并發(fā)線程數(shù)量的增加,翻譯服務(wù)接口的響應(yīng)時間縮短,翻譯速度更快。其中線程數(shù)量為8,batch-size 為100 時翻譯模型的翻譯速度達(dá)到每秒139.72 個字符。線程數(shù)量為256 時出現(xiàn)兩次丟包情況,從而可知請求數(shù)量和內(nèi)容過大時服務(wù)接口出現(xiàn)丟包現(xiàn)象。

4 結(jié)語

本文利用Django 作為Web 應(yīng)用框架開發(fā)了漢維人名翻譯系統(tǒng)。Django 以簡單易學(xué),高性能的特點受到了眾多開發(fā)者的喜歡,因此本文簡單介紹了Django服務(wù)的創(chuàng)建及配置。翻譯模型選用基于RNN 訓(xùn)練的漢維人名翻譯模型,并與Django 應(yīng)用框架相結(jié)合實現(xiàn)漢維人名翻譯在線系統(tǒng)。實驗發(fā)現(xiàn),漢維人名翻譯模型的準(zhǔn)確率達(dá)到了93.7%。翻譯服務(wù)接口的速度達(dá)到每秒139.72 個字符。實際應(yīng)用當(dāng)中翻譯質(zhì)量和速度的要求過高,因此未來將進(jìn)一步對漢維人名在線翻譯任務(wù)進(jìn)行探索。

猜你喜歡
調(diào)用命名實體
我國第三艘航空母艦下水命名“福建艦”
命名——助力有機化學(xué)的學(xué)習(xí)
從鹽瀆到鹽城——鹽城命名記
實體書店步入復(fù)興期?
有一種男人以“暖”命名
2017實體經(jīng)濟領(lǐng)軍者
基于Android Broadcast的短信安全監(jiān)聽系統(tǒng)的設(shè)計和實現(xiàn)
兩會進(jìn)行時:緊扣實體經(jīng)濟“釘釘子”
振興實體經(jīng)濟地方如何“釘釘子”
利用RFC技術(shù)實現(xiàn)SAP系統(tǒng)接口通信
芦山县| 潼关县| 平潭县| 辰溪县| 巴东县| 泰来县| 西和县| 射阳县| 元谋县| 巴彦淖尔市| 淳安县| 阜新市| 通江县| 沙湾县| 河曲县| 全南县| 巴东县| 广州市| 无为县| 射阳县| 锦州市| 江阴市| 房山区| 广安市| 望江县| 克拉玛依市| 八宿县| 惠东县| 汪清县| 洪江市| 阜城县| 临沭县| 弥勒县| 高碑店市| 阳西县| 桓仁| 社旗县| 阳山县| 荔浦县| 贺州市| 武鸣县|