項目學習:解密盛唐時期詩人關系
【項目情境】
唐代詩人史傳有名有姓者不下千余人,他們組成了大大小小不同的朋友圈。有的因為詩風接近,如李白代表的浪漫主義、杜甫代表的現實主義、王維代表的田園山水、芩參代表的邊塞詩風;有的因為年齡大體相近,如盛唐時期的李白、杜甫、賀知章等;有的因為政見相近,如韓愈作為古文運動的領袖級人物,當時很多文人墨客以進入他的朋友圈為榮。在盛唐時期有這樣一個朋友圈,他們的友誼跨越數十年,詩人之間通過互動詩歌,表達抒發(fā)情感,是他們朋友圈的一種表現方式,用計算機來分析這個時代的唐詩,就會發(fā)現詩人之間有著你意想不到的千絲萬縷的關系。學校某研究性學習小組利用大數據分析技術,通過對詩詞分析,繪制盛唐時期幾位詩人(杜甫、李白、王維、孟浩然……)之間的社交關系網絡圖,試圖推測哪位詩人是同時代詩人的核心,哪位詩人的影響最大,從而更好地學習、理解唐詩。
【項目準備】為完成項目,需要確定主題、目標、制訂規(guī)劃等各項工作。在此不一一展示。明確的主題—盛唐時期的詩人及詩詞分析和詩人社交關系網絡圖。
【項目實施】項目研究主要以詩人詩作為依據。具體實施過程如下:
(一)明確需要采集的數據選擇合適的采集途徑、工具和方法。全唐詩一共四萬多首,分析采集相關數據的條件:①盛唐時期;②詩人、詩人之間經常稱呼對方的別名;③考慮到同名同姓的問題,因此還需要詩人的生卒年的信息。
根據要求,完成答題。
(1)全唐詩數量較多,一共四萬多首,來源分散,存儲在互聯(lián)網不同的服務器與各客戶終端。從大數據存儲與計算的角度來看,由此可知大數據具有
C
C
的特征。(單選)
A.精確讓位于模糊
B.價值密度低
C.分布式存儲
D.變化速度快
(2)網絡上如此海量的關于唐詩的數據,有文字、圖片、視頻、音頻等。這些數據種類和格式也不一致,表明各種
ABC
ABC
數據共存于網絡中。(多選)
A.結構化
B.半結構化
C.非結構化
D.網狀結構
(3)面對繁雜的數據,學習小組決定研究解密盛唐時期詩人關系,并利用計算機程序從網絡中采集詩人、別名等相關的文本數據,并以一定的數據結構存儲形成盛唐詩庫。存儲數據主要有兩種方式,一種是
數據本地存儲
數據本地存儲
,一種是數據云存儲。你建議學習小組采用
云存儲
云存儲
數據存儲方式,理由是
方便文件共享,只需聯(lián)網就可讀取文件,可以脫離本地計算機保存文件
方便文件共享,只需聯(lián)網就可讀取文件,可以脫離本地計算機保存文件
。
(二)利用Python程序采集、整理、分析數據。第一步,從互聯(lián)網中篩選出符合條件的詩人及詩作等文本,整理并形成盛唐詩庫;第二步,確定人物關系分析策略,即從唐詩庫中搜索、統(tǒng)計詩人或別名的引用次數,確定二人之間的疏密關系,規(guī)則是詩的標題和正文中只要提到過對方,那么兩者之間的引用關系加1,若一首詩中提到多次對方,只算一次引用;第三步,編寫程序并調試驗證。用爬蟲程序段(如圖所示)采集數據。根據要求,完成答題。
(4)使用爬蟲程序獲取文本數據并形成唐詩庫文件,所使用的數據采集方法為
網絡數據采集法
網絡數據采集法
(選填:系統(tǒng)日志采集法、網絡數據采集法其他數據采集方法)。閱讀程序可知每首詩存放于列表poem[]中(以唐詩“春曉”為例,如表),采集后的數據保存在poet.txt文件中,該文件是一個
文檔文件
文檔文件
(選填:數據庫文件、文檔文件、圖像文件、網頁文件)。該數據采集方法可以將非結構化數據從網頁中抽取出來,將其存儲為統(tǒng)一的數據文件,并以
結構化
結構化
(選填:結構化、半結構化)的方式存儲。
Poem[0] |
Poem[1] |
Poem[2] |
Poem[3] |
“春曉” |
“唐” |
“孟浩然” |
“春眠不覺曉,……,花落知多少” |
(5)以詩人甲、乙為例解密二人關系,完成答題。數據處理過程中要運用一定的分析方法對大量無序的數據進行整理、分析挖掘數據內在的結構和規(guī)律,從而提取有價值的、有意義的數據。數據分析一般包括特征探索、關聯(lián)分析、聚類與分類等。讓計算機搜索遍歷唐詩庫中有關甲、乙兩位詩人的詩文,統(tǒng)計兩位詩人或別名相互的引用次數,找尋二人之間的關聯(lián)。這是運用了
關聯(lián)分析
關聯(lián)分析
(選填:特征探索、關聯(lián)分析、聚類與分類)方法進行數據分析,也是
排序
排序
(選填:枚舉、二分查找、排序)算法思想去求解這一問題的體現。
(6)編制計算機程序解決問題的過程中,
設計算法
設計算法
是編程的核心,是解決問題的方法和步驟。選用Python程序設計語言編寫程序,Python屬于
高級語言
高級語言
(選填:分析問題、設計算法、編寫程序、調試運行、機器語言、匯編語言、高級語言)。圖a示意,使用
流程圖
流程圖
(選填:自然語言、流程圖、偽代碼)進行算法描述,且運用循環(huán)控制結構嵌套了
判斷循環(huán)
判斷循環(huán)
控制結構,如果要跳出本次循環(huán)體的執(zhí)行,應使用
break
break
語句實現跳轉。
(7)閱讀程序(圖b示意),程序中以“#”開頭的語句,其作用是
解釋、注釋
解釋、注釋
,程序調試完成,通過“另存為”保存文件,文件后綴名為
.py
.py
。
(三)分析數據進行可視化表達并推測盛唐時期詩人關系。
(8)解密盛唐時期詩人關系。數據的可視化以易于理解的方式展示和詮釋數據之間的關系、趨勢與規(guī)律等,使人們更好地理解數據。從常用和實用的維度,數據可視化的呈現類型主要分為探索型和解釋型,其中
探索
探索
型可以幫助人們發(fā)現數據背后的價值,
解釋
解釋
型則把數據簡單明了地解釋給人們(選填:探索、解釋)。數據分析類型不同可視化呈現方式也不同,如關于趨勢的分析,可用
折線圖
折線圖
類型的圖表呈現,關于比例的分析,可用
柱形圖
柱形圖
類型的圖表呈現關于關系的分析,可用
柱線混合圖
柱線混合圖
類型的圖表呈現。
(9)解密盛唐時期詩人關系。學習小組選擇用網絡關系圖呈現盛唐時期詩人社會網絡關系(如圖所示)。圖中箭頭表示詩人之間的引用關系,如李白引用了賀知章,那么就有李白指向賀知章箭頭;箭頭的粗細程度則表示了詩人之間引用關系的強弱,如李白引用孟浩然的數量達4次,箭頭就要粗一些。
(10)解密盛唐時期詩人關系。觀察圖示,從繪制的盛唐的詩人社交關系網絡圖,嘗試推測哪位詩人是盛唐詩人的核心,哪位詩人的影響最大,請簡要闡述。(要求100字左右)