鄧文茂 楊佳婷 雒偉群
西藏民族大學(xué)信息工程學(xué)院,陜西 咸陽(yáng) 712082
藏民族是我國(guó)民族大家庭中歷史悠久、文化燦爛的民族之一,藏舞更是源遠(yuǎn)流長(zhǎng),豐富多彩。藏舞的主要特色在于流動(dòng)性、活力、節(jié)奏感和色彩變化,以此表現(xiàn)出藏族傳統(tǒng)文化的獨(dú)特魅力。隨著互聯(lián)網(wǎng)時(shí)代的快速發(fā)展,互聯(lián)網(wǎng)數(shù)據(jù)規(guī)模呈現(xiàn)幾何式的增長(zhǎng)[1]。在IT 時(shí)代的背景下,在數(shù)字化的沖擊下,重視藏舞的保護(hù)與傳承尤為重要。
知識(shí)圖譜可視化技術(shù)發(fā)展現(xiàn)狀:在國(guó)外,知識(shí)圖譜可視化技術(shù)也得到了廣泛的關(guān)注和研究。許多知名的研究機(jī)構(gòu)和大學(xué)都在進(jìn)行相關(guān)研究。例如,斯坦福大學(xué)的“D3.js”項(xiàng)目提供了一套強(qiáng)大的可視化工具,可以用于展示和分析知識(shí)圖譜數(shù)據(jù)。此外,還有一些開源的知識(shí)圖譜可視化工具,如“Gephi”和“Cytoscape”等等,也引起了廣泛應(yīng)用。在國(guó)內(nèi),知識(shí)圖譜可視化技術(shù)已經(jīng)得到了廣泛的應(yīng)用。許多大型互聯(lián)網(wǎng)公司和研究機(jī)構(gòu)都在開展相關(guān)研究和應(yīng)用。例如,百度的知識(shí)圖譜可視化平臺(tái)“百度知識(shí)圖譜”可以將知識(shí)圖譜數(shù)據(jù)以圖形化的方式展示出來(lái),幫助用戶進(jìn)行知識(shí)的探索和發(fā)現(xiàn)。根據(jù)我們的文獻(xiàn)調(diào)查,對(duì)于非遺舞蹈的數(shù)字化保護(hù),一般都是建立一個(gè)數(shù)據(jù)庫(kù)系統(tǒng),將文字內(nèi)容與圖片存入數(shù)據(jù)庫(kù)中,然后通過(guò)查詢看到相關(guān)圖片,以及一些文字說(shuō)明,對(duì)于舞蹈相關(guān)知識(shí)之間的聯(lián)系,以及隱含知識(shí)的發(fā)掘,在功能方面還存在缺陷。本文建立了非遺知識(shí)圖譜,通過(guò)兩種技術(shù)可視化了知識(shí)圖譜,展示了非遺舞蹈知識(shí)實(shí)體之間的聯(lián)系,是對(duì)現(xiàn)有非遺數(shù)字化成果的拓展。在此雖然各界學(xué)者對(duì)藏族舞蹈的研究已經(jīng)取得了一定的成果。但是,目前對(duì)藏族舞蹈的數(shù)字化保護(hù)和可視化實(shí)體聯(lián)系研究卻是非常少見。知識(shí)圖譜是一個(gè)可視化的系統(tǒng)概念,用于將結(jié)構(gòu)化和非結(jié)構(gòu)化數(shù)據(jù)連接起來(lái)形成一個(gè)可交互式的信息網(wǎng)絡(luò),用于更好更有效地管理、使用和理解關(guān)于特定主題的海量知識(shí)。知識(shí)圖譜會(huì)標(biāo)注數(shù)據(jù)的本體和語(yǔ)義,強(qiáng)調(diào)的是實(shí)體以及實(shí)體之間的關(guān)聯(lián)[2],通常,知識(shí)圖譜由“node”和“edge”組成,可以用來(lái)支持復(fù)雜的知識(shí)表示和推理。所以在此現(xiàn)狀下,筆者使用Neo4j 和D3.js 兩種技術(shù)實(shí)現(xiàn)以非遺藏舞為例的知識(shí)圖譜可視化。
網(wǎng)絡(luò)爬蟲是一種自動(dòng)搜集網(wǎng)頁(yè)信息的技術(shù)[3],可以幫助我們更有效地獲取信息。Python 爬蟲通過(guò)使用各種不同的編程技術(shù),從網(wǎng)絡(luò)上抓取和解析文本、圖像、表格等信息,以統(tǒng)計(jì)、監(jiān)控和報(bào)告信息所需要的各種數(shù)據(jù)。它可以爬取網(wǎng)頁(yè)中的文字、圖片和鏈接,也可以提取網(wǎng)頁(yè)的某些部分,并將其轉(zhuǎn)換為可以用于數(shù)據(jù)分析的形式。
在研究中,我們采用通用爬蟲技術(shù)在中國(guó)非物質(zhì)文化遺產(chǎn)網(wǎng):https://www.ihchina.cn/進(jìn)行數(shù)據(jù)收集,爬蟲的流程如下:
圖1 Python爬蟲流程圖
部分代碼如下:
數(shù)據(jù)爬取結(jié)果如下:
表1 Python爬取的數(shù)據(jù)表
1.2.1 數(shù)據(jù)清洗。獲得原始數(shù)據(jù)后,需要進(jìn)行數(shù)據(jù)清洗以確保數(shù)據(jù)的質(zhì)量和一致性。這包括去除重復(fù)數(shù)據(jù)、處理缺失值,解決異常值,使其符合知識(shí)圖譜的要求。在處理缺失值時(shí)我們用三種方法,第一,刪除缺失值,在缺失值較少的情景下,對(duì)結(jié)果影響不大;第二,替換缺失值,利用均值與中位數(shù)替換,優(yōu)替換的優(yōu)點(diǎn)是總體數(shù)據(jù)不變,沒(méi)有影響結(jié)果;第三,插補(bǔ)缺失值,使用蒙特卡洛方法補(bǔ)充缺失數(shù)據(jù),用拉格朗日插值法或牛頓插值法進(jìn)行插補(bǔ)。在解決異常值時(shí),我們先剔除含有異常值的特征記錄,然后視為缺失值,之后便可用均值替換修正。
1.2.2 數(shù)據(jù)標(biāo)準(zhǔn)化。數(shù)據(jù)標(biāo)準(zhǔn)化是數(shù)據(jù)預(yù)處理的一個(gè)重要步驟,它的目的是將不同尺度、不同范圍的數(shù)據(jù)轉(zhuǎn)化為統(tǒng)一的標(biāo)準(zhǔn)尺度,以便于后續(xù)的數(shù)據(jù)分析。在本次標(biāo)準(zhǔn)化中,只存在文本數(shù)據(jù)和關(guān)系數(shù)據(jù)。筆者將數(shù)據(jù)的格式進(jìn)行統(tǒng)一,將舞蹈名稱的全部同類舞蹈(例如羌姆)統(tǒng)一為特定的編碼或術(shù)語(yǔ)。對(duì)于文本型數(shù)據(jù),使用獨(dú)熱編碼(One-Hot Encoding)將其轉(zhuǎn)化為數(shù)值型數(shù)據(jù)。獨(dú)熱編碼將每個(gè)類別轉(zhuǎn)化為一個(gè)二進(jìn)制向量,向量的長(zhǎng)度等于類別的數(shù)量,其中對(duì)應(yīng)類別的位置為1,其他位置為0。例如,西藏舞蹈數(shù)據(jù)中有一個(gè)特征是類型,包括“新增”“擴(kuò)展”,將其轉(zhuǎn)化為以下形式的獨(dú)熱編碼:“新增”:[1,0],“擴(kuò)展”:[0,1]。對(duì)于數(shù)值型數(shù)據(jù),對(duì)其進(jìn)行范圍規(guī)范化,確保數(shù)據(jù)在一定范圍內(nèi),例如公布時(shí)間的數(shù)值型數(shù)據(jù)只存在2006、2008、2011、2014、2021。數(shù)據(jù)命名規(guī)范化:對(duì)于數(shù)據(jù)項(xiàng)的命名,進(jìn)行規(guī)范化,確保命名的一致性和易讀性。
1.2.3 數(shù)據(jù)分類。把清洗后的數(shù)據(jù)進(jìn)行排序,我們可以得到一些數(shù)值型變量的最大值與最小值,并且我們可以按照不同的數(shù)據(jù)類型進(jìn)行分類排序。如按照“公布時(shí)間”進(jìn)行排序,可以清晰地看到西藏舞蹈類別的第一批非遺是2006 年,最后一批非遺是2021 年;按照“類型”分類,可以知道西藏舞蹈非遺項(xiàng)目分為新增項(xiàng)目與擴(kuò)展項(xiàng)目。比如山南昌果卓舞是新增項(xiàng)目,而瓊結(jié)久河卓舞是擴(kuò)展項(xiàng)目。
圖2 數(shù)據(jù)向量分類
1.2.4 數(shù)據(jù)審核。主要為四個(gè)小部分:非遺藏舞準(zhǔn)確性審核、非遺藏舞完整性審核、非遺藏舞及時(shí)性審核、非遺藏舞一致性審核。非遺藏族舞蹈準(zhǔn)確性審核就是看此次獲取的數(shù)據(jù)是否真實(shí)準(zhǔn)確,準(zhǔn)確性指數(shù)據(jù)與藏族舞蹈真實(shí)情況或?qū)嶋H事實(shí)的符合程度。準(zhǔn)確性包括對(duì)實(shí)體和關(guān)系的正確識(shí)別和描述,以及屬性值的精確性;非遺藏族舞蹈完整性審核是指審核數(shù)據(jù)中是否包含了全部需要記錄的信息,確保沒(méi)有遺漏,完整性高的數(shù)據(jù)意味著數(shù)據(jù)集中的實(shí)體和關(guān)系涵蓋了所研究領(lǐng)域的所有重要方面;非遺藏舞及時(shí)性審核指數(shù)據(jù)更新的頻率和延遲程度。及時(shí)性高的數(shù)據(jù)意味著數(shù)據(jù)能夠及時(shí)反映現(xiàn)實(shí)世界的藏族舞蹈的變化。對(duì)于一些需要實(shí)時(shí)更新的數(shù)據(jù)可以及時(shí)做出反應(yīng);非遺藏舞一致性審核指數(shù)據(jù)中的實(shí)體、關(guān)系和屬性之間的邏輯和語(yǔ)義保持一致,一致性高的數(shù)據(jù)意味著數(shù)據(jù)中的實(shí)體、關(guān)系和屬性之間的關(guān)聯(lián)關(guān)系是正確和合理的。在藏族舞蹈知識(shí)圖譜中,一個(gè)實(shí)體的屬性值應(yīng)該與其所屬的關(guān)系相吻合,不應(yīng)出現(xiàn)矛盾或沖突。
圖3 數(shù)據(jù)審核的四性
在構(gòu)建三元組之前,先整理一下數(shù)據(jù)字段和類型:
表2 數(shù)據(jù)字段類型
三元組構(gòu)建中需要進(jìn)行實(shí)體抽取和關(guān)系抽取。實(shí)體抽取是從文本數(shù)據(jù)中識(shí)別和提取出具有特定語(yǔ)義含義的實(shí)體,如舞蹈名稱、類別、公布時(shí)間等。筆者手工命名實(shí)體類型,然后對(duì)其實(shí)例化后獲得具體的實(shí)體。關(guān)系抽取是從文本中識(shí)別和提取實(shí)體之間的關(guān)系,如舞蹈與類別的關(guān)聯(lián)、舞蹈與公布時(shí)間的關(guān)系等。三元組是一個(gè)“實(shí)體”-關(guān)系-“實(shí)體”模型,在實(shí)體抽取部分,借助jieba 分詞器進(jìn)行分詞,根據(jù)分詞標(biāo)注的詞性結(jié)果,標(biāo)注為名詞、時(shí)間、組織單位等的一般都是實(shí)體。之后再進(jìn)行手工拆分抽取,將數(shù)據(jù)分開,第一列為項(xiàng)目序號(hào),第二列為編號(hào),第三列為舞蹈名稱,第四列為舞蹈類別,第五列為公布時(shí)間,第六列為抽象概念,第七列為地點(diǎn),第八列為組織單位,同時(shí)用手工參與抽取其實(shí)也具有更高的準(zhǔn)確性。實(shí)體抽取的對(duì)應(yīng)類型為序號(hào)、舞蹈名稱、舞蹈類別、抽象概念、數(shù)字、時(shí)間、地點(diǎn)、組織單位。接下來(lái)我們就進(jìn)行關(guān)系抽取,主要就是將各個(gè)實(shí)體之間的聯(lián)結(jié)關(guān)系進(jìn)行抽取表現(xiàn)。關(guān)系抽取采用基于規(guī)則的方法,利用事先定義的語(yǔ)法規(guī)則或模式來(lái)匹配和抽取特定的關(guān)系,定義的模式有:“西藏舞蹈”-整體-部分-“舞蹈名稱”,“舞蹈名稱”-屬性關(guān)系-“項(xiàng)目序號(hào)”,“舞蹈名稱”-屬性關(guān)系-“項(xiàng)目編號(hào)”,“舞蹈名稱”-分類關(guān)系-“舞蹈類別”,“舞蹈名稱”-時(shí)序關(guān)系-“公布時(shí)間”,“舞蹈名稱”-地理關(guān)系-“組織單位”,“舞蹈名稱”-屬于關(guān)系-“地點(diǎn)”。通過(guò)這些定義的模式就可以抽取得到實(shí)體間的關(guān)系。
在上面的基礎(chǔ)上,進(jìn)行三元組的構(gòu)建,即將每個(gè)屬性與其對(duì)應(yīng)的實(shí)體進(jìn)行關(guān)聯(lián)。例如,將鍋莊舞與其對(duì)應(yīng)的舞蹈實(shí)體進(jìn)行關(guān)聯(lián),關(guān)聯(lián)關(guān)系有項(xiàng)目序號(hào)、類別、保護(hù)單位、類型、舞蹈名稱、公布時(shí)間等等。然后則是用三元組的實(shí)體之間的關(guān)系進(jìn)行組合關(guān)聯(lián)。在實(shí)現(xiàn)實(shí)體聯(lián)系、屬性搭配后,最后將各個(gè)屬性之間的關(guān)系一起構(gòu)建三元組。
首先整體與部分關(guān)系的實(shí)體展示如下:
表3 整體-部分關(guān)系實(shí)體實(shí)例
然后則是其他各種關(guān)系的實(shí)體展示如下,此處以“鍋莊舞”為例:
表4 以“鍋莊舞”為例的其他實(shí)體關(guān)系
D3.js 是一個(gè)基于Web 標(biāo)準(zhǔn)的開源JavaScript庫(kù)[4],同時(shí)使用HTML、SVG 和CSS 構(gòu)建交互式數(shù)據(jù)可視化框架。它提供了一系列的非常有用的工具來(lái)幫助用戶快速創(chuàng)建時(shí)尚、引人注目的數(shù)據(jù)可視化,這些工具包括動(dòng)態(tài)圖表、3D 圖表、地圖、散點(diǎn)圖等等。D3中,數(shù)據(jù)轉(zhuǎn)換與繪制是相互獨(dú)立的[5],它使用面向?qū)ο缶幊碳夹g(shù)來(lái)操縱DOM(文檔對(duì)象模型),從而以一種靈活、自由、可控制的方式創(chuàng)建數(shù)據(jù)可視化。這次的西藏非遺舞蹈知識(shí)圖譜可視化展示的第一種方法就是用D3.js進(jìn)行構(gòu)建并且展示。
在D3.js 知識(shí)圖譜可視化之前,需要進(jìn)行Web 的動(dòng)態(tài)框架開發(fā)。構(gòu)建動(dòng)態(tài)網(wǎng)站和應(yīng)用程序的開發(fā)框架,可以有效幫助處理前端和后端之間的數(shù)據(jù)交互、業(yè)務(wù)邏輯和頁(yè)面渲染等任務(wù)。首先,配置合適的開發(fā)環(huán)境,安裝pycharm、mysql、hbuilder。接下來(lái)進(jìn)行了路由和URL 映射,動(dòng)態(tài)框架通過(guò)路由機(jī)制來(lái)將URL 請(qǐng)求映射到相應(yīng)的處理函數(shù)或控制器上。然后進(jìn)行數(shù)據(jù)模型和持久化建設(shè),在動(dòng)態(tài)框架中,通常需要與數(shù)據(jù)庫(kù)進(jìn)行數(shù)據(jù)交互。這包括定義數(shù)據(jù)模型,即定義數(shù)據(jù)庫(kù)表格的結(jié)構(gòu)和關(guān)系。通過(guò)使用ORM(對(duì)象關(guān)系映射)工具,將數(shù)據(jù)庫(kù)中的數(shù)據(jù)映射為編程語(yǔ)言中的對(duì)象,方便進(jìn)行數(shù)據(jù)操作和查詢,再然后配置中間件和攔截器,動(dòng)態(tài)框架通常提供中間件和攔截器機(jī)制,用于在請(qǐng)求處理過(guò)程中添加額外的功能或進(jìn)行驗(yàn)證和授權(quán)等操作。中間件可以在請(qǐng)求到達(dá)控制器之前或之后執(zhí)行特定的處理邏輯,而攔截器則可以攔截請(qǐng)求并進(jìn)行預(yù)處理或后處理。最后進(jìn)行調(diào)試和測(cè)試,在開發(fā)過(guò)程中,需要進(jìn)行調(diào)試和測(cè)試以確保應(yīng)用程序的正確性和穩(wěn)定性。
在進(jìn)行D3.js 的知識(shí)圖譜可視化時(shí),先進(jìn)行index的首頁(yè)展示設(shè)計(jì),設(shè)定語(yǔ)言、編碼格式、菜單名,以及導(dǎo)入我的bundle.js 和data.js,這一部分最后還設(shè)置了div 容器盒子參數(shù)設(shè)定-幕布設(shè)置(id 以及style),然后用target 提取我的知識(shí)圖譜容器,鏈接data 文件里面的nodes 和links,這里寫了三個(gè)測(cè)試事件分別為method1、method2和method3。接下來(lái)配合data文件里面的一些調(diào)參,實(shí)現(xiàn)根節(jié)點(diǎn)。然后進(jìn)行menu 菜單設(shè)置,定義根節(jié)點(diǎn)下面的首個(gè)子節(jié)點(diǎn)名字以及類型和鼠標(biāo)觸發(fā)事件,這樣就可以在接下來(lái)進(jìn)入到另一個(gè)非遺藏舞展示的界面。此處效果展示如下:
圖4 D3.js的index展示1
圖5 D3.js的index展示2
然后將項(xiàng)目id 為kg 的進(jìn)行初始化(init),插入前面的nodes 與links 點(diǎn)線框架、寫好menu 菜單、以及鼠標(biāo)事件events,這里的events 包括canvas 與node,畫布的點(diǎn)擊事件和node 數(shù)據(jù)輸入都以后端數(shù)據(jù)庫(kù)的data數(shù)據(jù)進(jìn)行功能輸入。node以及前面的事件都在data.js文件進(jìn)行數(shù)據(jù)寫入,index 做框架。并以根節(jié)點(diǎn)“Enter藏舞”為例做web事件測(cè)試:
圖6 知識(shí)圖譜web框架測(cè)試
最后進(jìn)行本次項(xiàng)目爬取的所有非遺藏舞的數(shù)據(jù)導(dǎo)入以及index的展示。之前存儲(chǔ)在excel數(shù)據(jù)庫(kù)里面的藏族舞蹈數(shù)據(jù)都以D3.js 插件通過(guò)js 編程導(dǎo)入data.js 文件,33 種舞蹈都以此方式導(dǎo)入,此處是以“芒康弦子舞”為例:
圖7 在vscode里的data.js數(shù)據(jù)導(dǎo)入代碼
在進(jìn)行完data.js 文件功能輸入后,需要注意的是,鼠標(biāo)右鍵單擊可以固定圖譜,左鍵可以釋放圖譜,鼠標(biāo)左鍵單擊然后拖拽可以使其移動(dòng),右鍵單擊在固定的同時(shí)會(huì)點(diǎn)開菜單欄。根節(jié)點(diǎn)展示如下:
圖8 D3.js知識(shí)圖譜最終完成圖
Neo4j 是一種用來(lái)存儲(chǔ)與處理數(shù)據(jù)的可視化圖數(shù)據(jù)庫(kù),它是基于Java 的高性能、高可靠性、可擴(kuò)展性強(qiáng)的開源圖數(shù)據(jù)庫(kù)[6]來(lái)實(shí)現(xiàn)的。同時(shí),Neo4j又是依靠節(jié)點(diǎn)和邊來(lái)共同組建,具有高度的可靠性和數(shù)據(jù)一致性。
此次西藏非遺舞蹈知識(shí)圖譜可視化展示的第二種方法就是采用圖數(shù)據(jù)庫(kù)Neo4j 進(jìn)行展示。Neo4j 存儲(chǔ)數(shù)據(jù)可以采用多種導(dǎo)入方式,本項(xiàng)目存儲(chǔ)采用將CSV數(shù)據(jù)導(dǎo)入Neo4j中進(jìn)行存儲(chǔ),具體做法如下:
2.2.1 創(chuàng)建數(shù)據(jù)。Neo4j 在構(gòu)建知識(shí)圖譜時(shí)需要?jiǎng)?chuàng)建節(jié)點(diǎn)數(shù)據(jù)和關(guān)系數(shù)據(jù)。
2.2.1.1 節(jié)點(diǎn)文件
表5 CSV中心節(jié)點(diǎn)
表6 以弦子舞和鍋莊舞為例的CSV分支節(jié)點(diǎn)
第一列為屬性名,是屬性名_Id;中間列為屬性值;最后一列為:實(shí)體LABEL。
2.2.1.2 關(guān)系文件
表7 csv關(guān)系類型實(shí)例
:START_ID,:END_ID 為關(guān)系文件列,引用節(jié)點(diǎn)ID,;最后一列為:TYPE(關(guān)系類型)
2.2.1.3 csv 文件。在excel 中生成后,點(diǎn)擊文件->另存為->保存類型為CSV UTF-8的格式
2.2.1.4 csv 文件存儲(chǔ)。將生成的csv 文件存入neo4j的import 文件夾下。D:files eo4j eo4j-community-3.5.5-windows eo4j-community-3.5.5import.
2.2.2 導(dǎo)入csv文件。
2.2.2.1 打開PowerShell,進(jìn)入到neo4j的bin目錄下。
2.2.2.2 輸入命令。neo4j-admin import --mode=csv--database=onepic.db--nodes D:dwmyjt eo4j-community-4.2.4 -wins neo4j-community-4.2.4 importcenter.csv --nodes D:dwmyjt eo4j-community-4.2.4-wins eo4j-community-4.2.4import ame.csv --relationships D: dwm yjt neo4j-community-4.2.4-wins eo4j-community-4.2.4import es.csv
此命令將import中的csv文件全部導(dǎo)入neo4j中。
2.2.2.3 輸入命令。neo4j.bat console,點(diǎn)擊網(wǎng)址http://localhost:7474/,進(jìn)入到neo4j 瀏覽器中。首先查看Database Information,這里我們可以看到已有的結(jié)點(diǎn)數(shù),有多少條關(guān)系,占用的存儲(chǔ)空間等數(shù)據(jù)庫(kù)信息。
圖9 在Neo4j數(shù)據(jù)庫(kù)查看節(jié)點(diǎn)與關(guān)系
2.2.2.4 輸入MATCH (n) RETURN n LIMIT 1000,即可查看知識(shí)圖譜可視化內(nèi)容,將鼠標(biāo)移到對(duì)應(yīng)節(jié)點(diǎn)和關(guān)系上,底部會(huì)出現(xiàn)相應(yīng)的屬性。如圖10 就是采用Neo4j圖數(shù)據(jù)庫(kù)存儲(chǔ)與可視化的結(jié)果。
圖10 Neo4j知識(shí)圖譜最終完成圖
本文使用網(wǎng)絡(luò)爬蟲技術(shù)從網(wǎng)絡(luò)中獲取了西藏非遺舞蹈數(shù)據(jù),通過(guò)對(duì)數(shù)據(jù)清洗獲得有效數(shù)據(jù),然后按照定義的實(shí)體類型和關(guān)系類型,抽取了知識(shí)圖譜三元組,使用Neo4j 數(shù)據(jù)庫(kù)存儲(chǔ)了知識(shí)圖譜并實(shí)現(xiàn)了可視化,本文也通過(guò)web開發(fā)的動(dòng)態(tài)框架進(jìn)而使用D3.js技術(shù)進(jìn)行了知識(shí)圖譜可視化。西藏非遺藏舞知識(shí)圖譜的應(yīng)用前景非常廣闊,建立其上的語(yǔ)義搜索、智能推薦、知識(shí)問(wèn)答等應(yīng)用服務(wù)將為藏族舞蹈的保護(hù)、傳承和發(fā)展作出重要貢獻(xiàn)。