陳濤 陳志遠(yuǎn)
(安徽大學(xué)互聯(lián)網(wǎng)學(xué)院 安徽省合肥市 230000)
據(jù)中國(guó)互聯(lián)網(wǎng)絡(luò)信息中心(CNNIC)2021 年8 月27 日在京公布的第48 次《中國(guó)互聯(lián)網(wǎng)絡(luò)發(fā)展?fàn)顩r統(tǒng)計(jì)報(bào)告》統(tǒng)計(jì),我國(guó)在線教育用戶規(guī)模截至2021 年6 月已達(dá)3.25 億。在線教育用戶規(guī)模在2020 年迎來爆發(fā)式的增長(zhǎng),眾多機(jī)構(gòu)及資本進(jìn)入在線教育領(lǐng)域,各種在線教育平臺(tái)層出不窮,然而由于資本的介入,虛假宣傳,低價(jià)獲客等現(xiàn)象尤為明顯。
在當(dāng)下的在線教育平臺(tái)模式下用戶難以在眾多平臺(tái)中的同類課程中做出選擇,部分平臺(tái)的課程信息對(duì)用戶的透明度較低,使得用戶不能夠直觀的了解課程質(zhì)量。如何在快速發(fā)展在線教育的同時(shí)對(duì)在線教育平臺(tái)和網(wǎng)絡(luò)課程進(jìn)行監(jiān)管,是維護(hù)在線教育環(huán)境不可忽視的問題。
隨著大數(shù)據(jù)技術(shù)的發(fā)展,使得收集并應(yīng)用零散的互聯(lián)網(wǎng)在線課程信息變成了可能。使用大數(shù)據(jù)技術(shù)對(duì)互聯(lián)網(wǎng)上分散在各個(gè)在線教育平臺(tái)的課程基本信息進(jìn)行數(shù)據(jù)采集,對(duì)采集結(jié)果進(jìn)行數(shù)據(jù)分析與可視化,并以此為基礎(chǔ)構(gòu)建一個(gè)第三方評(píng)價(jià)平臺(tái),以便于用戶快速獲取感興趣的課程以及真實(shí)的學(xué)習(xí)體驗(yàn)與評(píng)價(jià)信息[1]。本文詳細(xì)介紹了如何基于Scrapy 爬蟲框架+數(shù)據(jù)可視化構(gòu)建一個(gè)第三方網(wǎng)課評(píng)價(jià)平臺(tái)。
目前,在線教育資源大多分布在各個(gè)在線教育平臺(tái)上,對(duì)于普通用戶來說很難去收集大量的課程信息進(jìn)行對(duì)比,而作為第三方的網(wǎng)課評(píng)價(jià)平臺(tái),首先要做到的就是將互聯(lián)網(wǎng)上零散分布的大量在線課程信息收集,清洗,并經(jīng)過一定的數(shù)據(jù)分析后提供給用戶。對(duì)于大量的網(wǎng)絡(luò)數(shù)據(jù)采集問題,使用爬蟲技術(shù)無疑是最好的選擇。
Scrapy 框架是一個(gè)基于Python 實(shí)現(xiàn)的為了爬取Web 站點(diǎn)、提取結(jié)構(gòu)化的數(shù)據(jù)而開發(fā)的應(yīng)用框架。作為一個(gè)框架,其使用起來非常簡(jiǎn)單,只需要定制幾個(gè)模塊就可以輕松的實(shí)現(xiàn)一個(gè)爬蟲程序,除此之外,該框架的優(yōu)點(diǎn)還有:
(1)易于構(gòu)建大規(guī)模網(wǎng)絡(luò)爬蟲項(xiàng)目;
(2)異步處理請(qǐng)求提高爬蟲效率;
(3)具有高度可擴(kuò)展性和魯棒性[2]。
考慮到Scrapy 框架的種種特點(diǎn)與第三方網(wǎng)課評(píng)價(jià)平臺(tái)的需求非常契合,本文確立了基于Scrapy 爬蟲框架和數(shù)據(jù)可視化技術(shù)打造一個(gè)第三方的網(wǎng)課評(píng)價(jià)平臺(tái),供用戶參考與交流的設(shè)計(jì)思路。
平臺(tái)要實(shí)現(xiàn)課程基本信息的搜索和展示功能,建立用戶系統(tǒng)、搭建交流社區(qū),做好同類課程的數(shù)據(jù)可視化,實(shí)現(xiàn)智能推薦功能。同時(shí)作為一個(gè)第三方點(diǎn)評(píng)網(wǎng)站,其評(píng)價(jià)系統(tǒng)也至關(guān)重要。本文將采用星級(jí)評(píng)價(jià),短評(píng),長(zhǎng)評(píng)的模式來構(gòu)建評(píng)價(jià)系統(tǒng),并且使用自然語言處理技術(shù)對(duì)采集的評(píng)論信息進(jìn)行情感分析進(jìn)而轉(zhuǎn)化為數(shù)字評(píng)價(jià)指標(biāo)來作為評(píng)分的一部分。
基于上述設(shè)計(jì)思路,整個(gè)平臺(tái)架構(gòu)主要分為三個(gè)部分,首先是數(shù)據(jù)采集系統(tǒng),在該環(huán)節(jié)要完成大量的課程基本信息的采集、清洗、存儲(chǔ)等工作。本文選擇RDBMS 來存儲(chǔ)采集的數(shù)據(jù),主要是考慮平臺(tái)前期業(yè)務(wù)并不復(fù)雜,傳統(tǒng)的關(guān)系型數(shù)據(jù)庫(kù)實(shí)現(xiàn)起來也較為簡(jiǎn)單,隨著平臺(tái)訪問量增大,業(yè)務(wù)不斷升級(jí),可以考慮使用分布式數(shù)據(jù)存儲(chǔ)系統(tǒng)Hbase[3]。
第二部分是服務(wù)器端,也即后端。這一環(huán)節(jié)的任務(wù)是完成與數(shù)據(jù)庫(kù)的數(shù)據(jù)交換,以及對(duì)客戶端的服務(wù)提供和信息交互。
第三部分是客戶端,主要由課程基礎(chǔ)信息模塊、評(píng)價(jià)系統(tǒng)模塊、用戶模塊和智能推薦模塊組成:
2.2.1 課程基礎(chǔ)信息模塊
利用爬蟲對(duì)各大在線教育網(wǎng)站進(jìn)行數(shù)據(jù)采集,將獲取數(shù)據(jù)的以下幾個(gè)方面展現(xiàn)給用戶。
課程縮略圖:課程縮略圖以圖片的形式展示課程的一些基本信息。
課程簡(jiǎn)介:簡(jiǎn)明扼要的介紹該課程的學(xué)習(xí)內(nèi)容,學(xué)習(xí)目標(biāo),課程亮點(diǎn)等內(nèi)容。
課程評(píng)分:來自其他已學(xué)習(xí)用戶的星級(jí)評(píng)分、短評(píng)、長(zhǎng)評(píng),很大程度上能反應(yīng)一個(gè)課程的好壞。
章節(jié)目錄:課程具體的章節(jié)。
講師介紹:授課老師的相關(guān)信息展示。
價(jià)格:用戶做出選擇的重要參考指標(biāo)。
學(xué)習(xí)人數(shù):從課程發(fā)布至今的所有學(xué)習(xí)人數(shù),能夠體現(xiàn)出課程的火熱程度。
2.2.2 評(píng)價(jià)系統(tǒng)模塊
基于用戶打造的評(píng)價(jià)系統(tǒng),有星級(jí)評(píng)價(jià),短評(píng),長(zhǎng)評(píng)功能等選擇。
星級(jí)評(píng)價(jià):評(píng)價(jià)的結(jié)果采用星級(jí)區(qū)分,星級(jí)分為9 個(gè)等級(jí),即:1 星、1 星半、2 星、2 星半、3 星、3 星半、4 星、4 星半、5 星。 通過用戶的打分,用量化的方式體現(xiàn)結(jié)果,這種等級(jí)與分?jǐn)?shù)的體現(xiàn)方式給用戶對(duì)課程好壞的分辨提供了直觀的參考。
短評(píng):用戶結(jié)合自己實(shí)際學(xué)習(xí)過程中對(duì)課程的感受,針對(duì)課程難易程度、課程質(zhì)量、課程定位是否精準(zhǔn)等問題發(fā)表的簡(jiǎn)短精煉的看法。
長(zhǎng)評(píng):對(duì)課程全方位的分析,對(duì)于質(zhì)量較高,影響力大,給用戶了解課程提供很大幫助的長(zhǎng)評(píng)可以采用現(xiàn)金獎(jiǎng)勵(lì)制度。
在該系統(tǒng)下,用戶不僅是信息的提供者,也是信息的受益者,作為一個(gè)對(duì)用戶友好、透明、公開的評(píng)價(jià)系統(tǒng),無論是否學(xué)習(xí)過該課程,用戶都可以通過該系統(tǒng)自由的發(fā)表自己的看法,并且可以與同樣對(duì)此課程感興趣的其他用戶交流。
2.2.3 用戶模塊
收藏功能,關(guān)注功能:對(duì)感興趣的課程點(diǎn)擊收藏按鈕,方便日后在收藏夾中查找。對(duì)喜歡的評(píng)論者可以點(diǎn)擊關(guān)注按鈕,關(guān)注后會(huì)在社區(qū)服務(wù)中推送所關(guān)注用戶發(fā)布的信息。
瀏覽記錄:用戶瀏覽過某些課程后覺得很感興趣,但關(guān)閉窗口后會(huì)遇到找不到原來的課程的窘境,平臺(tái)可以提供瀏覽記錄功能,方便用戶快速找到曾經(jīng)瀏覽過的課程。
歷史評(píng)論:用戶對(duì)于任何課程的評(píng)論都將在用戶模塊的歷史評(píng)論中展示,用戶可以對(duì)自己寫過的評(píng)論進(jìn)行修改、刪除等操作。
消息:根據(jù)平臺(tái)所提供的多種功能,用戶可能會(huì)有多種信息來源,如收藏課程的最新短評(píng)、長(zhǎng)評(píng),社區(qū)服務(wù)回復(fù)或相關(guān)信息、平臺(tái)的官方通知等等。
我的空間:用戶的個(gè)人空間將展示用戶的歷史評(píng)論,收藏的課程,在學(xué)的課程,學(xué)過的課程,個(gè)人空間還可以提供成就系統(tǒng),記錄用戶的學(xué)習(xí)里程碑。
2.2.4 智能推送模塊
基于課程標(biāo)簽分類的智能推薦系統(tǒng),通過識(shí)別和預(yù)測(cè)用戶的各種興趣或偏好,從而有針對(duì)性地、及時(shí)地向用戶主動(dòng)推送所需信息,以滿足不同用戶的個(gè)性化需求。
本文實(shí)現(xiàn)的爬蟲將以“CSDN 學(xué)院”為爬取目標(biāo),爬取網(wǎng)站課程的基本信息,包括課程名稱、課程分類、平臺(tái)名稱、課程標(biāo)簽、課程宣傳圖片、課程鏈接、課程簡(jiǎn)介、發(fā)布時(shí)間、學(xué)習(xí)人數(shù)、價(jià)格、時(shí)長(zhǎng)和講師信息,還將爬取用戶所發(fā)表的評(píng)論內(nèi)容,包括用戶名稱、用戶頭像、發(fā)布時(shí)間、用戶評(píng)價(jià)。
該爬蟲有三個(gè)主要模塊,分別是規(guī)則預(yù)設(shè)模塊、網(wǎng)頁(yè)抓取模塊和存儲(chǔ)模塊。
3.1.1 規(guī)則預(yù)設(shè)模塊
規(guī)則預(yù)設(shè)模塊包括USER_AGENT(用戶代理)、ROBOTSTXT_OBEY(Robot 協(xié)議遵守)、LOG_LEVEL(日志等級(jí))等設(shè)定,為了后續(xù)的數(shù)據(jù)存儲(chǔ),還需要在item.py規(guī)定相應(yīng)的數(shù)據(jù)格式。部分處理代碼如下:

3.1.2 網(wǎng)頁(yè)抓取模塊
網(wǎng)頁(yè)抓取模塊負(fù)責(zé)對(duì)初始網(wǎng)頁(yè)url 發(fā)起請(qǐng)求,使用lxml對(duì)請(qǐng)求數(shù)據(jù)進(jìn)行解析,從初始網(wǎng)頁(yè)數(shù)據(jù)中抽取出課程詳情頁(yè)url,再對(duì)詳情頁(yè)url 發(fā)起請(qǐng)求并解析,然后使用xpath 定位獲取相關(guān)的課程基本信息。整個(gè)網(wǎng)頁(yè)抓取流程如圖1 所示。

圖1:網(wǎng)頁(yè)抓取流程
在抓取用戶評(píng)論信息時(shí)發(fā)現(xiàn)CSDN 學(xué)院采用了動(dòng)態(tài)加載的方式,對(duì)于動(dòng)態(tài)加載的數(shù)據(jù)請(qǐng)求,可以通過Scrapy 的下載中間件(Downloader Middlewares)來發(fā)送Ajax 請(qǐng)求或者調(diào)用Selenium 瀏覽器自動(dòng)化。
網(wǎng)頁(yè)抓取的核心代碼如下:
(1)該類會(huì)對(duì)start_urls 自動(dòng)發(fā)起請(qǐng)求,響應(yīng)數(shù)據(jù)將返回給該類下的parse 方法。

(3)通過yield 語句對(duì)課程詳情頁(yè)url 發(fā)起請(qǐng)求,并通過 callback 參數(shù)為這個(gè)請(qǐng)求添加回調(diào)函數(shù),在請(qǐng)求完成之后會(huì)將響應(yīng)數(shù)據(jù)作為參數(shù)傳遞給回調(diào)函數(shù),而meta 參數(shù)則是封裝了當(dāng)前函數(shù)中的一些數(shù)據(jù),可以在回調(diào)函數(shù)中使用response.meta 調(diào)用。

(4)最后將抓取的數(shù)據(jù)通過yield item 語句提交給Item Pipeline(管道):它負(fù)責(zé)處理Spider 中獲取到的Item,并進(jìn)行后期處理(詳細(xì)分析、過濾、存儲(chǔ)等)。
3.1.3 存儲(chǔ)模塊
Scrapy 爬蟲框架進(jìn)行持久化存儲(chǔ)的方式有很多種,例如CSV 文件,Excel 文件,MySql 數(shù)據(jù)庫(kù),SqlServer 數(shù)據(jù)庫(kù)等。本文將使用SqlServer 進(jìn)行數(shù)據(jù)存儲(chǔ)。(實(shí)際開發(fā)中建議使用開源的MySql 數(shù)據(jù)庫(kù)來降低成本。)
(1)首先創(chuàng)建數(shù)據(jù)庫(kù)表Course 用于存儲(chǔ)數(shù)據(jù)。如表1所示:

表1:數(shù)據(jù)庫(kù)表Course 部分內(nèi)容
(2)創(chuàng)建數(shù)據(jù)庫(kù)連接,在pipelines.py 文件中編寫類CsdnPipeline,并在類的__init__方法中建立和數(shù)據(jù)庫(kù)的連接。相關(guān)代碼如下:

(3)接下來將封裝在item 字典中的數(shù)據(jù)插入數(shù)據(jù)庫(kù)。相關(guān)代碼如下:

本文中數(shù)據(jù)可視化用到的是ECharts 開源可視化圖表庫(kù),基于JavaScript。
下面對(duì)采集和處理后的部分?jǐn)?shù)據(jù)進(jìn)行可視化展示。
3.2.1 平臺(tái)課程分布
在線教育平臺(tái)課程包含的種類數(shù)量,往往也會(huì)影響人們的選擇,本文對(duì)CSDN 學(xué)院的課程分布情況進(jìn)行了詞云可視化展示。
利用詞云清晰的展現(xiàn)了CSDN 學(xué)院中各個(gè)課程類型所出現(xiàn)的頻率,編程語言相關(guān)課程在該平臺(tái)中占比較大,這也符合CSDN 學(xué)院本身IT 行業(yè)的定位。
3.2.2 同類課程比較
點(diǎn)贊數(shù)、播放量、好差評(píng)等指標(biāo)很大程度上決定了用戶對(duì)于課程的選擇,本文對(duì)同類課程各類指標(biāo)進(jìn)行了分析比較。
用戶可以根據(jù)該圖對(duì)比‘自然語言處理’類課程的相關(guān)指標(biāo),參考具體的評(píng)論內(nèi)容,然后結(jié)合自己的學(xué)習(xí)狀態(tài),選擇最合適的課程進(jìn)行學(xué)習(xí)和研究。
3.2.3 推薦平臺(tái)組成
使用餅圖展示本平臺(tái)上近一個(gè)月訪問次數(shù)靠前的幾大在線教育平臺(tái)。可以幫助用戶快速定位當(dāng)前熱門訪問的在線教育平臺(tái),從而在優(yōu)秀平臺(tái)上獲取資源。
(1)課程基礎(chǔ)信息模塊。平臺(tái)前端采用了Vue 進(jìn)行開發(fā),其能夠自動(dòng)追蹤依賴的模板表達(dá)式和計(jì)算屬性,提供MVVM(Model-View-ViewModel) 數(shù)據(jù)綁定和一個(gè)可組合的組件系統(tǒng),具有簡(jiǎn)單、靈活的 API,通過獲取指定課程的內(nèi)容,從后臺(tái)的接口中獲取信息,并且渲染到頁(yè)面上對(duì)用戶進(jìn)行展示。
(2)評(píng)價(jià)模塊。驗(yàn)證用戶的cookie 后,用戶可以在課程或者平臺(tái)下方發(fā)表相關(guān)的評(píng)價(jià)。評(píng)價(jià)內(nèi)容在傳入數(shù)據(jù)庫(kù)之前,使用自然語言處理技術(shù)進(jìn)行判斷,區(qū)分好評(píng)和差評(píng),然后進(jìn)行提交和展示。
(3)用戶模塊。用戶在首頁(yè)進(jìn)行登錄后,即可進(jìn)入自己的個(gè)人中心,可以修改自己的信息和頭像,也可以查看自己的課程瀏覽記錄。
(4)后臺(tái)管理。基于Vue 開發(fā)后臺(tái)管理系統(tǒng),在平臺(tái)的后期運(yùn)作中,將后端的一些接口封裝到后臺(tái)管理系統(tǒng)中,例如在線教育平臺(tái)和在線課程相關(guān)內(nèi)容的增刪改查操作,使管理者可以更好的進(jìn)行數(shù)據(jù)的整理和修改操作。
平臺(tái)后端采用SprintBoot 框架[4]進(jìn)行開發(fā),Spring 框架是Java 平臺(tái)上的一種開源應(yīng)用框架,SpringBoot 基于Spring4.0 設(shè)計(jì),不僅繼承了Spring 框架原有的優(yōu)秀特性,而且還通過簡(jiǎn)化配置來進(jìn)一步優(yōu)化了Spring 應(yīng)用的整個(gè)搭建和開發(fā)過程。除此之外,本文還運(yùn)用Python 實(shí)現(xiàn)了基于課程標(biāo)簽分類的智能推薦系統(tǒng)以及用于評(píng)論情感分析的自然語言處理技術(shù)。下面將詳細(xì)介紹后端開發(fā)內(nèi)容。
3.4.1 平臺(tái)各模塊數(shù)據(jù)交互
(1)用戶模塊(User)。前端用戶模塊更多的是實(shí)現(xiàn)用戶相關(guān)信息如何展示問題,與前端的用戶模塊不同,后端的用戶模塊需要處理的問題更偏向于用戶數(shù)據(jù)的交互和存儲(chǔ)。具體要解決的問題有用戶登錄注冊(cè)、驗(yàn)證碼校驗(yàn)、密碼加密存儲(chǔ)、用戶權(quán)限管理以及用戶信息存儲(chǔ)等。
與用戶相關(guān)的認(rèn)證、授權(quán)、加密及權(quán)限管理將使用Shiro 框架整合JWT 來實(shí)現(xiàn),Apache Shiro 是Java 的一個(gè)安全框架,主要由四大功能構(gòu)成,分別是1、Authentication:身份認(rèn)證/ 登錄,2、Authorization:授權(quán),3、Session Manager:會(huì)話管理,4、Cryptography:加密。而JSON Web Tokens (JWT)是目前最流行的跨域身份驗(yàn)證解決方案,相比于Session,JWT 具有可擴(kuò)展性好,無狀態(tài)等優(yōu)點(diǎn),適用于分布式架構(gòu),并且可以在JWT 的載荷中存儲(chǔ)一些常用信息,能夠有效降低服務(wù)器訪問數(shù)據(jù)庫(kù)的次數(shù)。
(2)平臺(tái)模塊(Platform)。平臺(tái)模塊主要是存儲(chǔ)各個(gè)在線教育平臺(tái)的相關(guān)信息并且實(shí)現(xiàn)與前端交互的接口。存儲(chǔ)平臺(tái)信息的數(shù)據(jù)庫(kù)表結(jié)構(gòu)如表2 所示:
MyBatis 是一款優(yōu)秀的持久層框架,它支持自定義SQL、存儲(chǔ)過程以及高級(jí)映射。本文使用Mybatis 實(shí)現(xiàn)與數(shù)據(jù)庫(kù)的連接與交互。根據(jù)平臺(tái)id 從數(shù)據(jù)庫(kù)中查找平臺(tái)詳細(xì)信息如下所示:

平臺(tái)模塊中與前端交互的接口將在Controller 層實(shí)現(xiàn),Controller 層是MVC 模型中的控制器層,Controller 層負(fù)責(zé)將用戶提交來的請(qǐng)求通過對(duì)URL 的匹配,分配不同的接收器進(jìn)行處理,然后向用戶返回結(jié)果。平臺(tái)模塊中主要有以下四個(gè)控制類,分別是PlatformScoreController(平臺(tái)評(píng)分控制類)、PlatformController(平臺(tái)控制類)、PlatformComment Controller(平臺(tái)評(píng)論控制類)、CategorysController(平臺(tái)類別控制類)。各控制類中主要實(shí)現(xiàn)的是對(duì)應(yīng)服務(wù)的增刪改查功能,根據(jù)url 來區(qū)分不同的接口,便于前端根據(jù)業(yè)務(wù)需求來請(qǐng)求響應(yīng)數(shù)據(jù)。
(3)課程模塊(Course)。課程模塊是平臺(tái)架構(gòu)中第三部分的核心內(nèi)容,也是后端開發(fā)中最復(fù)雜的內(nèi)容。其不僅包含了課程基礎(chǔ)信息的數(shù)據(jù)交互接口,還承擔(dān)了整個(gè)評(píng)價(jià)系統(tǒng)的運(yùn)行以及智能推薦系統(tǒng)中規(guī)則庫(kù)的數(shù)據(jù)傳輸。
該模塊實(shí)現(xiàn)的功能有緩存管理、跨域配置、控制層(Controller)、模型層(Model)、服務(wù)層(Service 層)、異常處理機(jī)制、接口返回?cái)?shù)據(jù)格式管理、Mybatis 通用mapper(負(fù)責(zé)和數(shù)據(jù)庫(kù)建立連接)、身份驗(yàn)證以及權(quán)限管理。
3.4.2 智能推薦系統(tǒng)
本文實(shí)現(xiàn)的是基于課程標(biāo)簽分類的智能推薦系統(tǒng),該系統(tǒng)的核心是規(guī)則庫(kù)的構(gòu)建和推理引擎的優(yōu)化。
(1)規(guī)則庫(kù)的構(gòu)建。規(guī)則庫(kù)由兩部分組成,分別是Conclusion(結(jié)論)和Fact(前提或事實(shí))。Fact 在規(guī)則庫(kù)中稱作前提,在用戶輸入的關(guān)鍵詞或者用戶行為數(shù)據(jù)中Fact稱為事實(shí)。Conclusion 可以是課程標(biāo)簽,也可以是課程唯一索引(課程id 號(hào)),當(dāng)Conclusion 是課程標(biāo)簽時(shí),會(huì)加入事實(shí)列表繼續(xù)推理,當(dāng)Conclusion 是課程id 時(shí),將會(huì)作為推理結(jié)果保存下來,推理結(jié)束時(shí),根據(jù)這些id 號(hào)從數(shù)據(jù)庫(kù)中獲取對(duì)應(yīng)的課程信息。
在規(guī)則庫(kù)的構(gòu)建中使用自然語言處理對(duì)課程標(biāo)題和簡(jiǎn)介進(jìn)行分析,提取關(guān)鍵詞作為推理的前提加入規(guī)則庫(kù)。并且將規(guī)則庫(kù)和課程信息存儲(chǔ)在云端,增加系統(tǒng)的可移植性和數(shù)據(jù)的安全性。同時(shí)引入匹配度的概念,能夠更好的匹配直接相關(guān)和間接相關(guān)的課程。假設(shè)一次匹配過程中某規(guī)則的匹配度為D,匹配的事實(shí)數(shù)量為F,該規(guī)則的前提數(shù)量為P,則D= (F/P) * 100%。
(2)推理引擎的優(yōu)化。當(dāng)規(guī)則庫(kù)和課程量逐漸增大時(shí),系統(tǒng)推理所需要的時(shí)間也會(huì)隨之增大,且是指數(shù)型增長(zhǎng)。考慮使用神經(jīng)網(wǎng)絡(luò)來訓(xùn)練推理系統(tǒng),將前提作為神經(jīng)網(wǎng)絡(luò)的輸入,結(jié)論作為神經(jīng)網(wǎng)絡(luò)的輸出,現(xiàn)有的規(guī)則庫(kù)作為訓(xùn)練集對(duì)該網(wǎng)絡(luò)進(jìn)行訓(xùn)練,以實(shí)現(xiàn)對(duì)于特定的輸入,系統(tǒng)能做出精準(zhǔn)的課程推薦。具體步驟如下:
(1)使用Word2vec 進(jìn)行詞嵌入,完成語言到數(shù)值的轉(zhuǎn)換。
(2)使用現(xiàn)有的推薦引擎進(jìn)行批量的推理,將推理的前提和記錄存儲(chǔ)下來,做為訓(xùn)練集。
(3)根據(jù)上一步獲得的訓(xùn)練集來訓(xùn)練神經(jīng)網(wǎng)絡(luò)。
3.4.3 自然語言處理
使用深度學(xué)習(xí)中的LSTM 模型來對(duì)爬取的課程評(píng)價(jià)做情感分析,使用Embedding + LSTM + Softmax 訓(xùn)練模型,將獲取的數(shù)據(jù)集作為訓(xùn)練集,然后把訓(xùn)練得到的模型放入服務(wù)器中運(yùn)行,從而在用戶進(jìn)行評(píng)價(jià)提交的過程中,能夠準(zhǔn)確的為用戶的評(píng)語分類,高效的進(jìn)行評(píng)價(jià)內(nèi)容的情感分析。
(1)建立情感詞典,將原始數(shù)據(jù)進(jìn)行分詞,存入詞典中。相關(guān)代碼如下:

(2)進(jìn)行模型訓(xùn)練,使用訓(xùn)練集建立模型。相關(guān)代碼如下:

(3)進(jìn)行結(jié)果的測(cè)試和驗(yàn)證。自然語言處理的結(jié)果如下所示:

隨著互聯(lián)網(wǎng)的發(fā)展,新興的課程形態(tài)層出不窮,以中國(guó)大學(xué)MOOC(慕課)為代表的國(guó)家精品課程在線學(xué)習(xí)平臺(tái)和以B 站為代表的綜合性視頻學(xué)習(xí)平臺(tái),都廣受年輕人喜愛。為了使用戶可以快速獲取感興趣的課程以及真實(shí)的學(xué)習(xí)體驗(yàn)與評(píng)價(jià)信息,本文設(shè)計(jì)并實(shí)現(xiàn)了一種面向有在線學(xué)習(xí)需求用戶的第三方網(wǎng)課評(píng)價(jià)平臺(tái)。該平臺(tái)提供一個(gè)對(duì)用戶友好、透明、公開的評(píng)價(jià)系統(tǒng),無論是否學(xué)習(xí)過該課程,用戶都可以自由的發(fā)表自己的看法,并且可以與同樣對(duì)此課程感興趣的其他用戶交流。依托于數(shù)據(jù)采集(基于Scrapy 爬蟲框架)和數(shù)據(jù)可視化技術(shù),平臺(tái)對(duì)網(wǎng)絡(luò)上現(xiàn)有的不同學(xué)習(xí)網(wǎng)站的同類課程進(jìn)行分析比較,并以圖表的形式反饋給用戶,便于用戶更加直觀的了解這些課程的優(yōu)缺點(diǎn)從而做出選擇。人性化的智能推薦算法將通過用戶的使用習(xí)慣推薦用戶可能喜歡的課程,從而提升用戶使用體驗(yàn)。
點(diǎn)評(píng)網(wǎng)站的模式在餐飲業(yè)和電影行業(yè)早有應(yīng)用,人們熟知的平臺(tái)有大眾點(diǎn)評(píng),豆瓣網(wǎng)等。隨著社會(huì)競(jìng)爭(zhēng)壓力的逐漸增大,人們對(duì)知識(shí)和學(xué)歷的獲取也越來越感到焦慮,無論是在線職業(yè)教育還是在線考研考公教育等相關(guān)平臺(tái)仍然在蓬勃發(fā)展中。在此背景下,一個(gè)第三方的網(wǎng)課評(píng)價(jià)平臺(tái)能夠讓消費(fèi)者在知識(shí)付費(fèi)前通過該渠道了解到真實(shí)的網(wǎng)課信息,從而做出性價(jià)比更高的選擇。