?

基于自然語言處理的學生日程規劃管理系統分析與實現

2018-08-01 08:06王江雨胡鼎峰王賽
現代計算機 2018年19期
關鍵詞:日程視圖界面

王江雨,胡鼎峰,王賽

(1.南京工程學院計算機工程學院,南京 211167;2.南京工程學院自動化學院,南京 211167)

0 引言

信息化社會中,工作及日常事務的增加使人們對日程管理的需求不斷提高。一款好的日程管理軟件不僅可以提高短期任務規劃執行效率,還為個體間互動協作提供便利。

目前,大多數日程管理軟件還使用手動添加、管理內容的方式,其操作過程過于機械繁瑣。即使部分已經支持語音輸入,但僅能在此基礎上完成簡單的增刪操作,并不能滿足人們管理規劃復雜日程的需求。同時,日程管理軟件多追求通用性,未能針對特定人群的需求進行優化。以學生群體為例,普通日程管理軟件尚未能將課程信息與一般日程有機整合,而主流課程表軟件(如超級課程表)也未能良好實現這一功能。再者,目前主流日程管理軟件的功能多集中在日程預約與任務陳列,在長期任務的規劃、時間的靈活調配和數據的視覺表現方面有待提升。

基于自然語言處理的學生日程規劃管理系統以在校學生為目標人群,能夠通過語音快速方便地添加日程,并利用B/S結構的跨平臺性,實現多終端的日程規劃和數據展示。

1 技術路線

1.1 面向多終端的RESTful架構

分析項目實際需求,整個項目包括多個終端(App,網頁等),因此考慮使用RESTful架構。具體而言,使用同一套后端系統,前端通過特定的URI和HTTP協議約定的動詞訪問后端系統,后端系統返回一個約定好的數據格式(采用JSON格式),前端根據返回的數據處理結果實現與用戶的交互。

RESTful架構主要指面向資源,這里的資源泛指一切項目架構中可能會使用到的數據。典型的包括用戶信息、日程信息等。傳統的MVC架構將頁面渲染的功能交給后端完成,用戶收到HTML頁面數據,這種做法能夠保證各個用戶所看到的頁面基本一致,但是加大了服務器的負擔。隨著計算機和瀏覽器性能不斷提升,降低了在用戶端渲染頁面的難度。相對于傳統架構,RESTful架構返回的不再是渲染好的HTML頁面,而是JSON格式的數據。

1.2 后臺框架

考慮到項目實際需要以及項目組成員的普遍水平,項目預計使用Java語言完成后端設計。具體來說使用 Spring 系列組件,包括 Spring MVC,Spring,MyBa?tis,Shiro等,其中MyBatis主要完成數據訪問層底層封裝,Spring MVC提供基礎的RESTful架構和控制器,Shiro提供基本的用戶訪問控制。

1.3 數據庫

綜合考慮成本和效率等因素,項目選擇MySQL數據庫作為主要數據庫;但是涉及到不同的資源,同樣考慮選擇合適的替代方案。例如,項目核心的模型之一——日程,相對來說日程較為多樣化,難以用一個統一的抽象模型表示,傳統上日程的詳細信息基本是文本格式,往往不能很好地針對各個日程的特點進行提醒;但是關系型數據庫受到范式約束,難以表述這樣的邏輯。項目組考慮使用MongoDB這種文檔型數據庫來存儲日程信息,使存儲更加靈活。除此之外,針對需要短期緩存的信息,使用Redis來存儲,在以往項目的實踐中,這種做法可以大大提高數據訪問速度,降低主數據庫的訪問壓力。

1.4 Android端

(1)界面設計

對比市面上Axure、墨刀等界面規范化設計的工具,項目組將采用墨刀作為原型設計工具。墨刀是一款在線移動應用原型工具,團隊可以快速制作出可直接手機運行的演示App交互的原型,快速構建移動應用產品設計,除了墨刀,還會使用Mark Man等工具輔助原型的設計。

(2)JSON解析能力

移動端與服務器通信的數據格式一般使用JSON格式,Android系統原生提供了解析的API,但速度非常慢,而且沒有提供簡潔方便的接口來提高開發者的效率和降低出錯的可能,因此選擇阿里巴巴公司開發的Fastjson,采用“假定有序快速匹配”的算法,接口簡單易用適合多場景使用。

2 系統分析與設計

2.1 系統需求分析

在傳統日程管理系統的基礎上增加自然語言識別功能,將信息錄入方式從打字輸入變為語音輸入。針對在校學生,實現添加課程信息。

(1)信息管理模塊:對于各種不同類型的日程的分類管理,對于長期日程進行可進行分段安排;將每個用戶的日程自動在云端數據庫中同步,實現跨平臺使用。

(2)日程展示模塊:當用戶需要概覽一天或更長時間的日程安排時,可以通過日程視圖獲得直觀了解;日程視圖分為日視圖、周視圖、月視圖(時間單位依次為一天、一周、一個月);支持在同一時間段內出現多個任務,符合實際情況;App端和Web端使用視覺展示,同時對用戶日程數據進行分析并增強視覺表現。

(3)日程錄入:語音添加,通過自然語言描述日程信息,系統分析出時間、事項、地點等;具體信息并添加進日程安排中或修改日程安排;使用傳統方式手動輸入各項具體信息添加日程安排;針對學生人群添加課程表信息。

2.2 系統設計

(1)前端視圖切換

本日程規劃管理系統支持三種日程視圖類型,如日視圖、周視圖、月視圖,如圖1。

圖1 前端日程視圖切換流程圖

(2)自然語言處理

自然語言處理流程圖如圖2。

2.3 數據庫設計

MySQL關系型數據庫,分析系統需求,可以抽取出相關實體,包含用戶信息表(userinfo)、日程規劃表(task)和用戶日程表(user_task)三張數據表。

用戶信息表以user_id為主鍵存放用戶個人信息,日程規劃表以任務的task_id為主鍵存放日程規劃的詳細信息,用戶日程表user_id和task_id聯合主鍵主要用來查詢日程的提醒時間。

圖2 自然語言處理流程圖

該系統數據庫ER圖如圖3所示。以查看、修改或刪除該日程。每周日程分時間和天展示日程安排,實現的效果展示在下方,當然,如果日程持續一天或更久,則會在“all day”一行顯示持續的天數便于查看。每月日程像日歷一樣展示日程安排,會顯示該月一天的安排,但不顯示時間段的圖表,而是以文字敘述代替。

圖4 添加日程規劃界面圖

圖3 數據庫ER圖

3 系統實現

3.1 添加日程規劃界面實現

該添加日程規劃界面可以添加日程規劃,這里在Web端實現時,只能手動輸入日程的信息,如標題、開始時間、結束時間、是否需要郵件提醒等,而在Android端實現時,通過調用集成的騰訊云智能語音服務(AAI,Artificial Audio Intelligence)進行語音識別并自建業務服務器接收回調信息,最終將獲取的語音文本分詞后添加到日程界面中,此時用戶仍然可以自己校對、修改日程規劃內容。

添加日程規劃界面如圖4。

3.2 周日程規劃界面實現

該日程規劃系統可以查看每日日程、每周日程和每月日程。每日日程分時間展示一天的安排,如果安排有重疊,則表現為兩個或多個方框疊加在一起,在方框中,可以查看到日程的時間和日程的標題,點擊后可

每周日程規劃界面如圖5。

圖5 周日程規劃界面圖

3.3 語音識別

該系統使用騰訊云AAI中的語音識別提供的API實現語音的文本轉換。在使用語音識別功能前,需要開發者申請該服務,取得appId、secretId和secretKey,并自建業務服務器接收回調數據。

這里不涉及騰訊云AAI RESTful API中的語音識別服務的調用方式,只說明自建服務的接口實現[3]。

業務服務器接口表如下:

表1 業務服務器接口表

4 結語

本系統主要使用Python和Java語言開發,通過數據庫設計、Web前端設計、服務端設計,已基本完成基于自然語言的日程規劃管理功能,用戶可以通過語音輸入或手動添加日程內容,同時可以添加在校學生的課程信息,不僅便于用戶的日常日程規劃管理,也方便查看課程表。根據對現國內外日程管理應用的現狀、水平和發展趨勢的分析,該系統具有一定的實用性、可操作性。該系統在設計上采用較新穎的技術,順應目前行業發展潮流,可擴展性強。

猜你喜歡
日程視圖界面
微重力下兩相控溫型儲液器內氣液界面仿真分析
國企黨委前置研究的“四個界面”
扁平化設計在手機界面中的發展趨勢
領導日程誰做主?
日程 便簽 提醒 三合一的體貼
視圖
Y—20重型運輸機多視圖
SA2型76毫米車載高炮多視圖
Django 框架中通用類視圖的用法
2009年“惠州華軒杯”全國象棋甲級聯賽日程
91香蕉高清国产线观看免费-97夜夜澡人人爽人人喊a-99久久久无码国产精品9-国产亚洲日韩欧美综合