顧涵文
(北京語言大學信息科學學院,北京 100083)
隨著電子設備的普及,越來越多的人開始使用在電子設備上打字的方式替代傳統的手寫記筆記方式,使用打字方式記錄下來的知識具有易于修改,便于整理的特點,同時在電子設備上進行知識的記錄也便于知識的分享傳播。近年來NLP 領域迅速發展,自然語言處理技術趨于成熟,將文本檢錯和文本分類等技術應用于記知識分享系統中,可以極大提高使用者的知識記錄效率。本文構建一個基于NLP 技術的知識分享系統,讓用戶能快速對記錄的內容進行分類,提取關鍵詞等操作,提高知識整理的效率。
Springboot 基于Spring4.0 技術開發,繼承了Spring 技術AOP(面向切面編程)、DI(依賴注入)、IOC(控制反轉)等優秀特性,同時使用特定方式來配置,簡化了Spring 應用的開發過程,同時,Springboot 也整合大量的框架,有效避免了依賴包的版本沖突,讓開發者能更關注于業務邏輯。
MyBatis 是一款優秀的持久層框架,它支持定制化SQL、存儲過程以及高級映射。MyBatis 避免了幾乎所有的JDBC 代碼和手動設置參數以及獲取結果集。MyBatis 可以使用簡單的XML 或注解來配置和映射原生信息,將接口和Java 的POJOs (Plain Ordinary Java Object, 普通的Java 對象)映射成數據庫中的記錄。Mybatis-Plus 是一個Mybatis 的增強工具,它在Mybatis 的基礎拓展了需多功能,提高了開發效率。
Vue 是輕量級的前端漸進式框架,采用自底向上增量開發的設計,使開發者將注意力集中在視圖層,也易于與第三方庫或已有項目整合。
ElementUI 是一套為開發者、設計師和產品經理準備的基于Vue 2.0 的桌面端組件庫,由餓了么團隊維護,是最流行的vue 框架之一。
本系統主要目標用戶為學生、教師等知識工作者。以學生為例,學生在學習的過程中需要通過回顧筆記的方式來鞏固自己的學習成果,在查看筆記的過程中往往需要歸納重點,并按照知識內容對文章進行分類,通過NLP 技術對文本生成標簽,可以快速幫助學生對筆記進行整理和復習,同時,學生在記錄筆記的過程中也會偶爾出現一些小錯誤,如錯別字等,利用NLP 技術可以迅速發現這些錯誤,糾正學生錯誤的用詞習慣。本系統使用NLP 技術,可以在用戶記錄筆記后根據筆記內容對筆記進行自動分類與自動糾錯。在筆記記錄之后,學生之間還存在分享的需求,本系統支持將筆記通過系統直接分享或者以pdf 或png 格式導出,通過系統分享之后其他用戶可以在對應筆記的討論區下進行討論,也可以下載筆記,對筆記進行評分。同時,學生還有可能迫切需要某一領域的筆記,針對這種情況,同學可以進入任務管理頁面,發布任務并設置相應的回報,在系統發布任務后系統會自動將任務信息發送給在相關標簽下有過良好創作內容的用戶,當用戶完成學生提出的任務,即可獲得相應獎勵。有時候學生會討論同一課題或者上同一門課程,這個時候可以在系統上新建學習小組。在學習小組中的筆記資料將由小組成員共享。由需求分析產生的用例圖如圖1 所示。

圖1 用例圖
在業務背景下進行調研后,抽取出領域模型如圖2 所示。

圖2 領域模型圖
對比其他筆記分享系統,本系統的特色就是采用了NLP技術對用戶記錄的筆記進行了文本糾錯,便于用戶及時發現文本中的錯誤并進行修改,文本糾錯功能使用了自然語言處理領域常用BERT (Bidirectional Encoder Representations from Transformers)。先訓練BERT 模型,再將需要糾錯的語句傳入已經訓練好的BERT 模型中,獲取句子中每個位置上詞語的候選置信度,同時計算每個位置上候選詞與原詞的相似度,然后獲得糾錯概率并將詞語按概率重新排序,判斷排名第一位的詞語糾錯概率是否超過閾值,然后再決定是否提示用戶進行筆記修改。筆記糾錯流程圖如圖3 所示。

圖3 自動糾錯流程圖
4.2.1 記錄筆記順序圖
用戶在記筆記頁面輸入筆記并點擊提交,應用控制在收到筆記內容后將會檢查筆記信息并將筆記內容傳遞給核對控制對象,核對控制對象向筆記目錄對象獲取筆記目錄信息,再由筆記目錄對象獲取筆記信息,同時核對控制調用NLP 服務API 獲取糾錯信息及分類信息,最后,當筆記信息,筆記目錄信息與糾錯信息及分類信息返回,應用控制對象會將成功提交的消息返回至知識記錄頁面,順序圖如圖4 所示。

圖4 記錄筆記順序圖
4.2.2 知識分享順序圖
用戶在知識分享頁面點擊分享筆記,應用控制在確認消息內容后將會將請求傳遞給核對控制對象,核對控制對象向分享目錄對象獲取筆記分享目錄信息,再由分享目錄對象向分享內容對象獲取分享目錄信息,分享內容對象再向筆記對象獲取筆記信息,最后,當筆記信息,分享內容信息與分享目錄信息返回,應用控制對象會將分享成功的消息返回至知識分享頁面,順序圖如圖5 所示。

圖5 知識分享順序圖
4.2.3 任務功能
4.2.3.1 發布任務順序圖。用戶在任務發布頁面點擊任務發布,任務發布頁面向應用控制對象確認任務發布請求,應用控制對象再調用核對控制對象檢查信息,核對控制對象向任務目錄對象獲取任務目錄信息,最后任務目錄對象再調用任務信息對象創建任務,順序圖如圖6 所示。

圖6 發布任務順序圖
4.2.3.2 完成任務順序圖。用戶在任務完成頁面點擊完成任務,頁面向應用控制對象提交完成,應用控制向核對控制對象發送檢查信息,核對控制對象向任務目錄對象獲取任務目錄信息,任務目錄對象向任務信息對象獲取任務信息,任務信息對象再向任務發布用戶請求返回任務是否達到完成標準信息,順序圖如圖7 所示。

圖7 完成任務順序圖
本系統采用經典的三層架構模式,由控制層(Controller)進行數據轉發,服務層(Service)參負責業務邏輯的實現,數據訪問層(Dao)層進行數據的增刪改查。在具體的業務中體現為用戶輸入筆記后由Controller 層將筆記轉發至Service 層,Service 層負責調用API 返回筆記的糾錯建議及文章標簽與分類建議,并調用Dao 層進行筆記數據的存儲,系統架構圖如圖8 所示。

圖8 系統架構圖
系統主要實現了記錄筆記與分享管理等功能。系統主頁面如圖9 所示,包括我的筆記,分享管理,學習小組,任務管理以及賬戶信息板塊。

圖9 系統主頁面圖
本文使用面向對象的設計思想,通過需求分析,確定了知識分享系統的用例模型與領域模型,進而繪制了順序圖,確定了系統架構,最后使用Springboot 等技術對系統進行了實現。使用此系統對筆記進行記錄,對比一般的糾錯系統,本系統可以實現自動糾錯,知識分享,小組協作等功能,提高了工作效率,豐富了用戶體驗。