?

基于R-Shiny的中文文本可視化系統設計研究

2023-06-25 20:53淦亞婷安建業苗漉欣
現代信息科技 2023年7期
關鍵詞:R語言系統設計

淦亞婷 安建業 苗漉欣

摘? 要:基于R語言Shiny框架,搭建中文交互式在線可視化系統,實現對中文文本數據的初步處理與可視化分析。首先,介紹中文文本可視化理論與Shiny框架下交互式應用的搭建;其次,通過對用戶需求進行分析,制定系統的設計目標和原則,提出系統功能與Shiny框架下交互式界面,并設計相關模塊的實現。最后,進行總結,可知:系統能夠進行文本分詞、清洗與向量化等文本初步處理;同時,能夠繪制基于詞頻、TF-IDF的條形圖,詞云圖以及基于時序、地理位置的動態圖等圖形。

關鍵詞:文本可視化;系統設計;R語言;Shiny

中圖分類號:TP274;TP391.1? 文獻標識碼:A? 文章編號:2096-4706(2023)07-0024-04

Abstract: Based on the R language Shiny framework, a Chinese interactive online visualization system has been built to realize the preliminary processing and visualization analysis of Chinese text data. Firstly, this paper introduces Chinese text visualization theory and the construction of interactive application under the Shiny framework. Secondly, through the analysis of user requirements, it formulates the design objectives and principles of the system, proposes the system functions and the interactive interface under the Shiny framework, and designs the implementation of related modules. Finally, it is concluded that the system can perform text segmentation, cleaning and vectorization and other preliminary text processing. At the same time, it can draw bar charts based on word frequency and TF-IDF, word cloud diagram, dynamic graphs based on time sequence and geographical location and other graphs.

Keywords: text visualization; system design; R language; Shiny

0? 引? 言

在大數據時代,線上社交媒體等互聯網平臺每天都在產生海量的諸如微博、博客、日志、商品描述以及用戶評論等文本數據。對這些數據加以合理利用,獲取其中大量有價值信息,為相關決策的制定提供參考,在商業、醫學等眾多領域具有重要意義。

然而,文本數據紛繁復雜,難以直觀快速地獲取數據中有價值的信息。文本可視化技術由此應運而生,其通過一定的方法將文本中特定信息轉化為圖形信息進行展示[1],人們通過觀察圖形能夠快速的獲取文本中關鍵信息,在很大程度上提高了信息獲取速度。但進行文本可視化往往需要研究者掌握一定的編程能力;此外,目前能夠對文本這類非結構化數據進行簡單可視化分析的平臺很少[2]。同時,文本可視化不是簡單的將原始數據直接可視化展示,而是需要結合研究者對文本數據的理解,進行交互式探索[3]。

目前,構建在線系統的工具也有很多。Shiny是由Rstudio公司提供的一個基于R語言的開發框架,其集成了HTML、CSS和JavaScript等技術函數以及豐富的組件[4],在滿足多樣化需求的基礎上,不需要掌握較多的網頁設計相關技術,就能較為容易的開發出交互式Web應用程序。因此,本研究利用該框架開發一個交互式的中文文本可視化平臺,使得用戶在無須掌握文本可視化相關編程語言的情況下,能夠進行文本的初步處理與可視化,從而為相關研究提供便利。

1? 設計基礎

在系統設計前期進行相關準備工作,主要為中文文本可視化分析、Shiny框架下交互式應用等理論和技術的學習以及用戶需求分析。

1.1? 中文文本可視化分析

文本可視化是通過數據挖掘、文本分析以及數據可視化等知識和技術,將文本中難以表達的信息通過圖形元素形式表達出來,并通過視覺與人們進行交互快速獲取文本數據中的關鍵信息[5]。文本可視化一般分為:基于文本內容可視化、基于文本關系可視化以及基于多層面信息可視化[6]?;谖谋緝热萁y計的文本可視化的一般步驟為:文本預處理、文本內容特征信息提取與圖形設計。文本預處理是對文本進行分詞、清洗等;文本內容特征信息提取主要是獲取詞頻、關鍵詞等。圖形設計則是基于獲取的特征信息來構建圖形,展現文本信息。詞頻、關鍵詞作為重要的文本特征,通過可視化技術能夠生成詞云圖[7,8]、文檔散等圖形直觀地展示出文本中最關鍵信息?;谖谋娟P系的可視化則是重點展示文本間關系信息,例如文本間相似度、TF-IDF值。對文本關系信息進行展示的經典圖形有Word Tree[9]、短語網絡[10]等?;诙鄬用嫘畔⒖梢暬瘎t是從多角度提取多種特征進行可視化,如時間、位置信息等,通過融合多種信息進行可視化。

在R語言中,具有眾多專門用于文本處理與可視化的開源程序包[11]。主要有ggplot2、jiebaR、stringr、wordcloud2等。ggplot2是將數據映射為對象,通過圖層的形式來繪制圖形,并且其命令式作圖的方式,便于進行調整與更改。jiebaR是一款中文分詞包,支持多種中文分詞模式,同時具有詞性標注、關鍵詞提取等功能。stringr是對字符串進行處理的包。wordcloud2是繪制詞云圖的包,并能通過函數里的參數對圖形進行調整。R語言的眾多開源程序包為文本處理與可視化提供了極大的便利,保證了本系統構建的可行性。

1.2? Shiny框架下交互式應用

Shiny框架下,創建交互式應用程序一般需要建立兩個R腳本:前端頁面腳本(Ui.R)和服務端腳本(Sever.R)。前端頁面腳本主要是對系統的組件和外觀的控制,并起到數據接受與結果展示的功能;服務端則是在后臺分析處理由前端頁面傳來的數據,并將結果返回給前端頁面進行展示。這種B/S模式(瀏覽器/服務器),只需要通過瀏覽器在前端頁面將輸入傳給服務器,然后服務器進行實際數據處理,使得Shiny具有較好的交互功能。利用Shiny設計一個Web應用程序最基本的代碼為:

library(shiny)

ui<-fluidPage(titlePanel(‘tittle),

sidebarLayout(sidebarPanel(),mainPanel(‘main panel)))

sever<-function(input,output){}

shinyApp(ui=ui,sever=sever)

前端頁面腳本Ui.R搭建前端用戶交互界面時,必須要添加fluidPage函數構建整個用戶界面的排布結構,其內部包括標題欄tittlePanel和側邊欄sidebarLayout兩個模塊;標題欄主要是起到系統介紹的功能;側邊欄中的sidebarPanel和mainPanel兩個參數主要是對側邊欄和主面板進行設計。此外,Shiny中滑動條、輸入框、彈出窗口、下拉按鈕等眾多小組件能夠有助于快速地搭建出交互友好的用戶界面。

服務器腳本Sever.R主要是在后端通過R語言的眾多程序包構建函數進行文本分析,并將結果傳到用戶交互界面。

1.3? 用戶需求分析

幫助文本研究人員對雜亂的文本數據進行可視化研究,從文本數據中發現有價值信息,使得用戶能更好的觀察、分析文本數據,輔助開展相關研究,是搭建本可視化系統的目的。通過對文本研究人員調研分析,進一步明確了可視化系統應該滿足如下需求。

1.3.1? 封裝性與易操作需求

對文本進行可視化需要研究人員掌握諸如文本分析、數據挖掘以及文本可視化等相關理論技術,特別是需要具備良好的編程能力,這在一定程度上阻礙相關研究的發展。因此需要對系統代碼進行封裝并且系統滿足易操作性,使用戶無須掌握編程語言,通過簡單的操作也能根據自身需求進行文本可視化。

1.3.2? 文本數據查詢與選擇需求

文本數據龐大,在一張圖上一般只能展示某部分信息,因此系統應該具有查詢與選擇功能。

1.3.3? 文本處理與可視化需求

對于文本數據,需要進行清洗、分詞以及向量化等處理,以獲得滿足可視化要求的數據形式??梢暬窍到y的重點,可視化結果應該具備較高的準確性并且應具備良好的交互性。

1.3.4? 展示需求

結果展示是系統與用戶交互重要的一環,用戶需要觀察相關結果對分析進行調整,因此在展示界面應盡量簡潔;另外,需要具有放大、保存等功能。

2? 系統設計

系統在文本可視化理論學習、Shiny框架下交互式應用的構架以及對用戶需求進行分析等前期準備工作的基礎上,在R平臺上完成系統的功能設計、交互設計和設計實現。

2.1? 設計原則

為保證系統的順利實現與穩定持久性的使用,系統的設計應堅持以下原則。

2.1.1? 統一性原則

在設計系統時,特別是在系統的整體架構以及系統的擴展等方面需要進行全局性考慮,保證系統的界面、功能等各個方面盡量達到一致化,不會出現互現矛盾的問題。

2.1.2? 適用性原則

系統設計的總體目標是為文本研究人員提供一個可視化工具,因此系統必須遵循適用性原則。在設計時要考量用戶業務邏輯,使得用戶無須提前培訓就能使用;另外,在界面設計上,盡量做到簡潔、便于操作。

2.1.3? 可擴展性原則

文本可視化技術處在不斷發展的過程中,新的技術不斷被提出,因此在設計系統時,需要注意系統的先進性,系統能夠隨著文本可視化技術的發展,相關組件不斷更新優化。

2.2? 功能設計

通過系統的需求分析并遵循基本設計原則,系統應具備主要的功能模塊為:用戶服務模塊、預處理模塊、基礎可視化模塊以及動態可視化模塊,其架構如圖1所示。

2.2.1? 用戶服務模塊

該模塊的功能是為用戶使用提供幫助,包括對系統的定位和功能進行整體性說明,向用戶展示如何使用系統以及幫助導航欄。另外,向用戶提供反饋渠道,不斷收集相關意見,以便后期不斷優化系統。

2.2.2? 預處理模塊

預處理主要是為了滿足文本可視化要求進行的處理。中文文本作為非結構化數據,其預處理主要包括兩個階段,第一階段是去除特殊表情、符號等,并對文本進行分詞、去停用詞等處理。第二階段是對文本進行向量化表示。

2.2.3? 基礎可視化模塊

該模塊是在預處理基礎上基于詞頻進行可視化。通過統計每個詞的詞頻,構建出詞頻表、詞頻條形圖以及詞云圖。

2.2.4? 動態可視化模塊

在線社交平臺上,人們往往非常關注近期的研究熱點的動態演變過程。該模塊基于時間和地點進行動態可視化。

2.3? 交互設計

Shiny框架下進行交互式設計,主要是構建良好的網頁界面,用戶在界面上能夠輸入相關數據和參數,服務端接收數據和參數并進行分析,將得出的結果展示在界面上反饋給用戶,進而與用戶實現交互。

不同于以往的系統設計,Shiny框架下系統設計無須掌握較多的Web設計理論和技術,而且能在網頁上自動更新計算,以及具有諸如輸入框、下拉選擇框、選擇按鈕、滑動條等眾多組件,為搭建交互式界面提供了搭建交互式系統奠定了基礎。本系統構建標題欄、側邊欄與主面板。標題欄主要是區分不同的功能模型,在不同的標題下是不同的功能界面。側邊欄則是利用組件構建用戶數據和參數輸入,當用戶在側邊欄完成輸入后,點擊繪制,服務端就能夠完成分析將結果展示在主面板區。例如,系統在搭建詞云圖交互設計時,在側邊欄添加上傳文件控件、輸入框、滑動條以及下拉選擇框等控件,用戶能夠通過上傳文件控件上傳矢量圖來改變詞云圖的形狀、通過輸入框指定詞云圖的尺寸、最低頻數、詞的個數以及通過下拉選擇框選擇不同的字體顏色、背景顏色。

2.4? 設計實現

系統在Shiny框架下,利用眾多的R程序包,編寫R語言程序進行實現。

2.4.1? 用戶服務模塊實現

用戶服務模塊主要是起到幫助用戶快速上手的作用,包含系統概述、功能介紹、使用步驟、重要提示以及聯系方式。

2.4.2? 預處理模塊實現

1)文本清洗。通過jiebaR使用worker引入分詞引擎,利用segment函數完成分詞;通過判斷是否為字符型以及正則項匹配,來剔除特殊符號和a-z、0-9非中文自字符;系統默認使用哈工大停用詞表對文本進行去停用詞處理;運用lapply函數將保留下來的詞保存為列表格式。

2)文本向量表示。系統提供兩種向量化方式:一種是計算詞的TD-IDF值,作為其向量表示;另一種是根據預先導入的中文維基百科詞向量文件,將每個詞表示為一個300維的向量。

2.4.3? 基礎可視化模塊實現

1)文本數據預覽。通過readlines函數讀取文本數據并在主面板上進行展示。

2)詞頻、TF-IDF條形圖。獲取文本的預處理后的詞表,分別利用table函數和bind_tf_idf函數計算計算詞的頻數和TF-IDF值,再通過ggplot畫出基于詞頻條形圖和基于TF-IDF條形圖。

3)詞云圖?;讷@取的詞頻特征,并利用wordcloud2函數繪制詞云圖。

2.4.4? 動態可視化模塊實現

1)基于時序的動態圖。先通過jiebaR里的analyse. textrank提取關鍵詞,然后演示一段時間內,關鍵詞的變化。

2)基于地理位置的可視化。包含地理位置信息的文本數據,對該類數據進行平面空間維度的可視化展示。

基于上述的系統設計,本系統的基本界面如圖2所示。

3? 結? 論

本文在Shiny框架下搭建了一個交互式的可視化系統,用戶只需導入文本數據,并通過側邊欄中的相關組件進行參數選擇,主面板區就會自動展示出可視化的結果。系統不僅提供基礎的諸如詞頻條形圖、詞云圖等基于詞頻的可視化分析技術實現,還能基于時序以及位置等信息進行可視化,能有效關注到社交平臺信息的動態變化,為文本研究人員提供了一個交互式、易操作的文本可視化平臺。

系統遵循可擴展性原則進行設計,在所構建的框架下能夠引入更新、更深層的文本可視化技術,達到拓展系統功能的目的。因此,在后續研究中將結合文本可視化技術的發展,不斷擴展系統可視化功能,探究諸如基于聚類、語義等更為深入的文本可視化技術實現方法。

參考文獻:

[1] 馬創新,陳小荷.文本的可視化知識表示 [J].情報科學,2017,35(3):122-127.

[2] 劉玉琴,汪雪鋒,雷孝平.科研關系構建與可視化系統設計與實現 [J].圖書情報工作,2015,59(8):103-110+125.

[3] 何巍.社交媒體數據可視化分析綜述 [J].科學技術與工程,2020,20(32):13085-13090.

[4] shiny 官方網站[EB/OL].(2022-10-22).https://shiny.rstudio.com.

[5] 熊輝.職業健康數據的可視化分析研究 [D].福州:福州大學,2018.

[6] Wise J A,Thomas J J,Pennock K,et al. Visualizing the non-visual:Spatial Analysis and Interaction with Information from Text Documents [C]//Proceedings of Visualization 1995 Conference. IEEE,1995:51-58.

[7] 馬明明.面向文本的標簽云可視化度量模型的研究 [D].北京:北京交通大學,2018.

[8] 袁海,陳康,陶彩霞,等.基于中文文本的可視化技術研究 [J].電信科學,2014,30(4):114-122.

[9] WATTENBERG M,VI?GAS F B. The Word Tree. An Interactive Visual Concordance [J]. IEEE transactions on visualization and computer graphics,2008,14(6):1221.

[10] HAM F V,WATTENBERG M,VI?GAS F B. Mapping Text with Phrase Nets [J]. IEEE transactions on visualization and computer graphics,2009,15(6).

[11] 蘭德.R語言 [M].蔣家坤,譯.北京:機械工業出版社,2015.

作者簡介:淦亞婷(1997—),女,漢族,江西九江人,研究生在讀,研究方向:短文本分類;安建業(1969—),男,漢族,內蒙古烏蘭察布人,教授,碩士,研究方向:文本挖掘、統計建模與統計模式識別;苗漉欣(2000—),女,漢族,山西長治人,研究生在讀,研究方向:中文文本可視化。

猜你喜歡
R語言系統設計
基于GPS軌跡數據進行分析改善城市交通擁擠
基于R語言的Moodle平臺數據挖掘技術的研究
一種基于SATA硬盤陣列的數據存儲與控制系統設計研究
目標特性測量雷達平臺建設構想
基于R語言的湖南產業結構對其經濟增長貢獻分析
信息管理服務平臺項目應用系統設計探析
注重統計思維培養與應用為主導的生物統計學課程建設
人民幣匯率的均值回復檢驗及Hurst指數計算
R語言及ggplot2在環境空氣監測數據可視化中的應用
91香蕉高清国产线观看免费-97夜夜澡人人爽人人喊a-99久久久无码国产精品9-国产亚洲日韩欧美综合