亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        PERL語(yǔ)言在語(yǔ)料庫(kù)文本處理中的應(yīng)用

        2018-09-03 03:47:26侯晉榮
        智富時(shí)代 2018年7期
        關(guān)鍵詞:字符串語(yǔ)料庫(kù)

        侯晉榮

        【摘 要】Perl是一種強(qiáng)大的腳本語(yǔ)言,快捷實(shí)用,支持正則表達(dá)式,是處理字符串的理想程序。鑒于此,Perl語(yǔ)言可以廣泛應(yīng)用于語(yǔ)料庫(kù)的文本處理,尤其是文本中字符串的匹配、替換和轉(zhuǎn)換。經(jīng)驗(yàn)證,Perl可輕松實(shí)現(xiàn)語(yǔ)料庫(kù)文本標(biāo)注形式的替換以及XML和普通文檔之間的相互替換。

        【關(guān)鍵詞】Perl;字符串;替換;語(yǔ)料庫(kù)

        一、引言

        語(yǔ)料庫(kù)是指以電子形式保存的語(yǔ)言材料(Kennedy 2000:3),具有海量存儲(chǔ),共現(xiàn)語(yǔ)境等優(yōu)點(diǎn)。目前,語(yǔ)料庫(kù)已廣泛應(yīng)用于二語(yǔ)習(xí)得、外語(yǔ)教學(xué)、話語(yǔ)分析、語(yǔ)言測(cè)試、翻譯研究、文體分析等各個(gè)研究領(lǐng)域。語(yǔ)料庫(kù)語(yǔ)言學(xué)與計(jì)算語(yǔ)言學(xué)、理論語(yǔ)言學(xué)、描述語(yǔ)言學(xué)、應(yīng)用語(yǔ)言學(xué)、認(rèn)知語(yǔ)言學(xué)、翻譯等學(xué)科融會(huì)貫通,形成了一系列的交叉學(xué)科,如語(yǔ)料庫(kù)翻譯學(xué),語(yǔ)料庫(kù)文體學(xué)。

        文本處理是語(yǔ)料庫(kù)建設(shè)最基礎(chǔ)最關(guān)鍵的一步,文本清潔、格式統(tǒng)一對(duì)于后續(xù)研究的數(shù)據(jù)提取和數(shù)據(jù)分析具有至關(guān)重要的作用。簡(jiǎn)單的文本清潔和統(tǒng)一的格式處理可以通過(guò)Word的“查找、替換”實(shí)現(xiàn)。為便于深入分析文本特征,語(yǔ)料庫(kù)建設(shè)者往往“對(duì)語(yǔ)料庫(kù)添加信息”(Hunston, 2002:79)并且進(jìn)行詞類(lèi)標(biāo)注(POS tagging)和語(yǔ)義標(biāo)注(semantic annotation)。標(biāo)注代碼往往有幾十種甚至上百種,Word很難對(duì)標(biāo)注文本進(jìn)行統(tǒng)一的格式替換和更改,而應(yīng)用程序可輕松實(shí)現(xiàn)這一目的。PERL語(yǔ)言靈活自由,功能強(qiáng)大,正是文本處理的理想程序。

        二、PERL語(yǔ)言的功能

        1987年,Larry Wall開(kāi)發(fā)出Perl(Practical Extraction and Report Language),填補(bǔ)了C語(yǔ)言與Unix shell之間的空白,融合了編程語(yǔ)言和腳本語(yǔ)言的優(yōu)點(diǎn)。這種跨平臺(tái)的語(yǔ)言從各種匯編語(yǔ)言中借鑒了語(yǔ)法規(guī)則,提供了許多冗余語(yǔ)法,增加系統(tǒng)的穩(wěn)定性,使程序設(shè)計(jì)者可以忽略計(jì)算機(jī)內(nèi)部資料存儲(chǔ)、類(lèi)型、處理方法、運(yùn)算規(guī)則、甚至內(nèi)存越界等等的細(xì)節(jié),而將思考中心放在所需要的程序邏輯上。最重要的是Perl內(nèi)部集成了正則表達(dá)式的功能,以及巨大的第三方代碼庫(kù)CPAN(Comprehensive Perl Archive Network)。Perl突出的文本處理、豐富的正則表達(dá)式、面向?qū)ο蟪绦蛟O(shè)計(jì)以及免費(fèi)的自由軟件和易學(xué)易用的特性,使perl成為語(yǔ)料庫(kù)文本處理的首選程序語(yǔ)言。

        三、文本處理的程序設(shè)計(jì)

        只要計(jì)算機(jī)中裝載了Java平臺(tái)和ActivePerl,即可使用Perl進(jìn)行程序設(shè)計(jì)和操作。設(shè)計(jì)者可選擇編輯器如Notepad或者Editpad編寫(xiě)程序?;趶?qiáng)大的正則表達(dá)式功能,Perl可輕松地進(jìn)行字符串的匹配(m)、替換(s)和轉(zhuǎn)換(tr)。下面就語(yǔ)料庫(kù)文本處理中可能遇到的幾個(gè)問(wèn)題嘗試Perl程序的解決方案。

        不同語(yǔ)料標(biāo)注軟件采用的賦碼方式不盡相同,早期的語(yǔ)料庫(kù)標(biāo)注采用尖括號(hào)內(nèi)加詞類(lèi)代碼(如want),目前大部分軟件如Claws和Gotagger采用下劃線后接詞類(lèi)代碼的標(biāo)注方法(want_VAV)。中國(guó)科學(xué)院計(jì)算技術(shù)研究所研制的漢語(yǔ)詞法分析系統(tǒng)ICTCLASi對(duì)現(xiàn)代漢語(yǔ)進(jìn)行文本切分與詞性標(biāo)注則采用反斜線后加詞類(lèi)代碼(如舉行/v 活動(dòng)/vn)。研究者欲對(duì)搜集的多個(gè)語(yǔ)料庫(kù)的標(biāo)注文本進(jìn)行分析研究,必然要統(tǒng)一標(biāo)注形式。Perl語(yǔ)言的替換程序可滿足使用者不同的轉(zhuǎn)換要求,在各種標(biāo)注形式之間進(jìn)行轉(zhuǎn)換。

        (一)尖括號(hào)替換為下劃線

        程序1.

        步驟1 opendir (DIR, ".") or die "Could not open the current directory"; #open the current dir

        @files=readdir (DIR); #read all files in the dir and save them in an array

        closedir (DIR); #close the dir

        步驟2 foreach $file (sort (@files)) #loop dealing with each file

        {

        步驟3 next if ($file eq "."); #skip the file named "."

        next if ($file eq ".."); #skip file name ".."

        next if ($file=~/format\.pl/); #skip the perl script itself|

        步驟4 open (FHI, $file) or die "Could not open $file"; #open the file or exit

        步驟5 $output="new_".$file; #name the output file

        步驟6 open (FHO, ">$output") or die "Could not open $output"; #create output file

        步驟7 while ($line=) #read each line in the file

        {

        $line=~s/<(\S+)>/_$1/g; #matching and replacing all

        print FHO $line; #print to the output file

        }

        步驟8 close (FHI); #close the input file

        close (FHO); #close the output file

        }

        Perl是一種解釋性語(yǔ)言,其腳本由聲明(declaration)和語(yǔ)句(statement)兩部分構(gòu)成,在執(zhí)行字符串的替換前后,有必要對(duì)字符串的搜索和文件的處理進(jìn)行聲明解釋。步驟1調(diào)用opendir()函數(shù)打開(kāi)目錄句柄,從中讀取文件數(shù)列,然后關(guān)閉目錄句柄;步驟2是設(shè)置循環(huán)語(yǔ)句,依次處理各個(gè)文件,直至整個(gè)程序結(jié)束;步驟3跳過(guò)點(diǎn)文件(.),點(diǎn)點(diǎn)文件(..)以及程序文件.pl;步驟4打開(kāi)源文件;步驟5定義輸出文件名為“new_$file”($file指源文件);步驟6創(chuàng)建并將結(jié)果寫(xiě)入輸出文件(“>”表示寫(xiě)入);步驟7是整個(gè)程序的核心,while控制結(jié)構(gòu)內(nèi),定義$line為變量,用運(yùn)算符=~進(jìn)行匹配,s函數(shù)進(jìn)行替換(s///把第一個(gè)變量替換為第二個(gè))。Perl中自動(dòng)定義出現(xiàn)的第一個(gè)( )中的內(nèi)容為變量1,即$1,第二個(gè)( )中的內(nèi)容為變量2,即$2,在這里,$1指任何一個(gè)字符以上的非空格字符串(\S+),通過(guò)命令s/<(\S+)>/_$1/,文件中尖括號(hào)非空格字符串的組合,替換成下劃線后加相同的字符串。語(yǔ)句末尾的g是Perl中的常用參數(shù),表示匹配所有可能的模式,即所有符合條件的字符串都將被替換。需要注意的是,如果不添加參數(shù)g,Perl語(yǔ)句僅僅對(duì)符合條件的第一個(gè)字符串進(jìn)行替換。之后替換結(jié)果打印到輸出文件。步驟8關(guān)閉輸入文件和輸出文件。

        將上述編輯的命令以“另存為…”的方式選擇后綴名.pl保存,保存完畢后雙擊文件,程序即運(yùn)行。標(biāo)注方式Do you want to go there ?<?> 替換為

        Do_VBV you_PP want_VAV to_TO go_VB there_ADV ?_?

        如若下劃線替換為尖括號(hào)僅僅把步驟7中的字符串前后顛倒即可。程序如下:

        $line=~s/_(\S+)/<$1>/g; #matching and replacing all

        定義任何非空格字符串(\S+)為變量1,使用s函數(shù)替換所有含下劃線字符串為尖括號(hào)內(nèi)含相同字符串。將上述編輯的命令以“另存為…”的方式選擇后綴名.pl保存,保存完畢后運(yùn)行該程序,Do_VBV you_PP want_VAV to_TO go_VB there_ADV ?_?

        替換為Do you want to go there ?<?>

        (二) 普通文本替換為XML文本

        擴(kuò)展標(biāo)記語(yǔ)言XML(Extensible Markup Language)是一門(mén)新興的標(biāo)記語(yǔ)言,可以自定義標(biāo)簽,輕松表達(dá)多層結(jié)構(gòu)的數(shù)據(jù),方便地與數(shù)據(jù)庫(kù)中的表進(jìn)行相互轉(zhuǎn)換,使計(jì)算機(jī)能夠很簡(jiǎn)易地讀取和統(tǒng)計(jì)數(shù)據(jù)。XML文件內(nèi)容和形式分離的特性,使文檔的更改和搜索變得極為方便。鑒于XML文件的以上特征,大型語(yǔ)料庫(kù)多以XML文件格式存儲(chǔ)。下劃線標(biāo)注的普通文本可編寫(xiě)以下程序替換為XML文本。

        程序3

        $line=~s/(\S+)_(\S+)/$1<\/w>/g; #matching and replacing all

        XML使用表示單詞的開(kāi)始,表示單詞的結(jié)束。其中開(kāi)始標(biāo)記括號(hào)中可以添加標(biāo)簽的特性,意思是隨后的單詞標(biāo)記為名詞。定義下劃線前的單詞為變量1,下劃線后的賦碼標(biāo)記為變量2,使用s函數(shù)進(jìn)行替換,使詞類(lèi)標(biāo)記碼提到單詞前面開(kāi)始標(biāo)記內(nèi),在單詞之后添加結(jié)束標(biāo)記。將上述編輯的命令以“另存為…”的方式選擇后綴名.pl保存,保存完畢后運(yùn)行該程序

        堅(jiān)持_VV 和_CC 完善_VV 社會(huì)主義_NN 民主_NN 制度_NN 。_PU

        替換為:

        堅(jiān)持 完善 社會(huì)主義 民主 制度 。

        在文本開(kāi)頭添加指令<?xml version="1.0" encoding="GB2312"?>(XML支持多種語(yǔ)種,GB2312指簡(jiǎn)體中文),添加文本開(kāi)始標(biāo)簽和結(jié)束標(biāo)簽,以及等元數(shù)據(jù),XML文檔就替換完成了。

        四、結(jié)語(yǔ)

        以上探討了Perl語(yǔ)言輔助語(yǔ)料庫(kù)文本處理的兩種情況,這僅僅是Perl語(yǔ)言在語(yǔ)料庫(kù)應(yīng)用中發(fā)揮的少許作用,Perl語(yǔ)言的強(qiáng)大功能有待于進(jìn)一步的探索??傊琍erl是一種強(qiáng)大腳本語(yǔ)言,快捷實(shí)用,支持正則表達(dá)式,是處理字符串的一把好手。

        注釋?zhuān)?/p>

        i ICTCLAS: Institute of Computing Technology, Chinese Lexical Analysis System中科院漢語(yǔ)詞法分析系統(tǒng)

        【參考文獻(xiàn)】

        [1] Conway, D. Perl Best Practices. OReilly公司編譯. Perl語(yǔ)言最佳實(shí)踐[M]. 南京:東南大學(xué)出版社, 2008.

        [2] Hoffman, P. Perl for Dummies(3rd edition). 楊皓譯. 輕松學(xué)用Perl[M]. 北京:電子工業(yè)出版社, 2001.

        [3] Hunston, S. Corpora in Applied Linguistics [M]. Cambridge: Cambridge University Press, 2002.

        [4] Kennedy, G. An Introduction to Corpus Linguistics[M]. Beijing: Foreign Language Teaching and Research Press, 2000.

        [5] Martin C. Perl Programmes Reference. 何黎芳等譯. Perl5 語(yǔ)言命令詳解[M]. 北京:電子工業(yè)出版社, 2001.

        [6] Thackeray , W. M. Vanity Fair. 楊必譯.名利場(chǎng)[M].北京:人民文學(xué)出版社, 1957.

        猜你喜歡
        字符串語(yǔ)料庫(kù)
        基于文本挖掘的語(yǔ)詞典研究
        《語(yǔ)料庫(kù)翻譯文體學(xué)》評(píng)介
        基于語(yǔ)料庫(kù)“隱秘”的詞類(lèi)標(biāo)注初步探究
        把課文的優(yōu)美表達(dá)存進(jìn)語(yǔ)料庫(kù)
        基于JAVAEE的維吾爾中介語(yǔ)語(yǔ)料庫(kù)開(kāi)發(fā)與實(shí)現(xiàn)
        一種新的基于對(duì)稱(chēng)性的字符串相似性處理算法
        高效的top-k相似字符串查詢(xún)算法
        依據(jù)字符串匹配的中文分詞模型研究
        一種針對(duì)Java中字符串的內(nèi)存管理方案
        基于網(wǎng)絡(luò)語(yǔ)料庫(kù)的“給力”研究
        欧美韩国精品另类综合| 天堂网av一区二区三区在线观看 | 午夜影视啪啪免费体验区入口| 99久久无色码中文字幕鲁信| 性感熟妇被我玩弄到高潮| 亚洲高清一区二区精品| 亚洲中文字幕人妻av在线| 久久天堂综合亚洲伊人hd妓女| 国产精自产拍久久久久久蜜| 亚洲ⅤA中文字幕无码| 中文字幕视频二区三区| 日本在线观看不卡一区二区| √天堂中文官网在线| 欧美狠狠入鲁的视频777色| 台湾佬娱乐中文22vvvv| 国产思思99re99在线观看| 色偷偷女人的天堂亚洲网| 精品亚洲在线一区二区| 伊人久久综合无码成人网| 337p西西人体大胆瓣开下部| 国产精品丝袜黑色高跟鞋| 亚洲一区二区国产精品视频| 日本一区二区三区不卡在线| 虎白女粉嫩粉嫩的18在线观看| 东京热无码av一区二区| 精品香蕉久久久爽爽| 国产欧美日本亚洲精品一5区| 久久精品一区一区二区乱码| 性高朝久久久久久久3小时| 18禁黄久久久aaa片| 日批视频免费在线观看| 欧美h久免费女| 久久精品国产在热亚洲不卡| 色窝窝亚洲av网在线观看| 夫妇交换性三中文字幕 | 日韩精品精品一区二区三区| 日韩在线不卡一区三区av| a级国产乱理伦片| 中文字幕熟妇人妻在线视频| 国产裸体AV久无码无遮挡| 人妻经典中文字幕av|