牛文鈺 許若柯 李揚(yáng)陽 繆學(xué)聰 高晨 田英愛
摘? 要:歷史上某位詩人所處的位置可能隨著時間因素,因其經(jīng)歷而發(fā)生變化,因此從詩人對應(yīng)的經(jīng)歷數(shù)據(jù)中,抽取任務(wù)、地點(diǎn)、時間和事件等屬性類,將其軌跡動態(tài)映射到地圖上。
關(guān)鍵詞:詩詞;知識圖譜;數(shù)據(jù)挖掘;足跡圖
第一章 概述
1.1研究背景:
詩詞作為中華民族文化的瑰寶,在歷史長河中閃爍著熠熠光輝。然而,現(xiàn)代對中華詩詞精通的人卻特別少,學(xué)習(xí)中華古典文化需要付出相當(dāng)大的精力,這在時間方面不利于我們學(xué)習(xí)與傳承中華文化歷史。
1.2 項(xiàng)目意義:
本課題希望通過對中華詩詞的分析,按照時間、地點(diǎn)等脈絡(luò)以及人物關(guān)系,結(jié)合歷史背景,提取出詩詞間的關(guān)聯(lián)關(guān)系,并通過可視化的技術(shù)展現(xiàn)出來,輔助我們學(xué)習(xí)詩詞,同時也為中華文化的傳承做出努力。
1.3 項(xiàng)目方案:
課題主要工作包括:中華詩詞的文本數(shù)據(jù)采集、標(biāo)注技術(shù)研究、作者和詩詞內(nèi)容關(guān)聯(lián)分析等主要工作,同時基于此研究,將其應(yīng)用于生成詩人的行走足跡圖。
本項(xiàng)目從“古詩文網(wǎng)”上抓取作者及詩詞信息,并采集網(wǎng)頁上已有的中國歷史上所有詩詞曲的基本信息。之后,將采集到的信息進(jìn)行處理,并通過neo4j以圖數(shù)據(jù)庫的形式存儲數(shù)據(jù),之后借由圖數(shù)據(jù)庫達(dá)到生成詩詞相關(guān)信息——詩人的行走足跡圖的目的。
第二章 數(shù)據(jù)技術(shù)相關(guān)介紹
2.1數(shù)據(jù)收集
從“古詩文網(wǎng)”上抓取作者及詩詞信息,并采集網(wǎng)頁上已有的中國歷史上所有詩詞曲的基本信息。
在本次項(xiàng)目中使用的是基于python語言的CrawlSpider爬蟲框架,通過分析網(wǎng)頁的頁面編排模式,獲取所需詩歌的內(nèi)容。
屬性確定:本次項(xiàng)目所需的數(shù)據(jù)包括詩歌的標(biāo)題、詩人、朝代、內(nèi)容、注釋、賞析。
2.2數(shù)據(jù)清洗
初步獲取到的數(shù)據(jù)大致存在以下問題:
2.2.1對應(yīng)屬性值為空
某些詩歌可能存在詩人不明,朝代空缺,沒有注釋與賞析的情況。
處理方案:將原本網(wǎng)頁中缺失的數(shù)據(jù)自動補(bǔ)齊,向其中填寫“無”。
2.2.2雜項(xiàng)數(shù)據(jù)
從html上獲取的文本信息,可能含有大量無意義的換行符,以及混在正常數(shù)據(jù)中的UI界面文本。
處理方案:分析雜項(xiàng)數(shù)據(jù)的內(nèi)容,對其進(jìn)行替換。
2.2.3指代消解問題
數(shù)據(jù)中包含一些指代相同的詞語,如“唐朝”和“唐代”,兩個詞本身意義相同,為了消除指代消解問題,這里統(tǒng)一將“代”改為“朝”。
2.2.4作者不詳,年代不詳?shù)脑姼杼幚?/p>
數(shù)據(jù)中具有作者為佚名、年代不詳?shù)脑姼?,將其單?dú)清洗成一個json文件。
2.3數(shù)據(jù)挖掘(分詞+建立三元組)
首先,我們對對每首詩中的賞析部分進(jìn)行分詞,文本后的符號代表該詞的詞性。
之后我們建立不同的三元組——詩與詩人、詩與地點(diǎn)、詩與詩、詩與詩人、詩與年代,以及對文本內(nèi)容補(bǔ)充抽取關(guān)系,從而便于知識圖譜的建立。
2.4數(shù)據(jù)可視化(建立知識圖譜)
將所有三元關(guān)系集合起來存放到一個表中,建立知識圖譜可視化。
2.5環(huán)境搭建
在虛擬機(jī)/本機(jī)上裝好Windows系統(tǒng),在Windows上安裝必要的python環(huán)境,配置好Neo4j。
第三章 分析方法總結(jié)及結(jié)果展示
3.1 詩歌數(shù)據(jù)處理
為了實(shí)現(xiàn)詩人行走足跡圖的生成,對爬蟲方式收集的數(shù)據(jù)進(jìn)行清洗,將清洗后的數(shù)據(jù)按每個詩人名作的相關(guān)數(shù)據(jù)從原本的詩詞數(shù)據(jù)庫中提取出來,并且按照其創(chuàng)作時間排序。
3.2基于詩歌數(shù)據(jù)知識圖譜生成詩人行走足跡圖
得到數(shù)據(jù)之后,利用python的畫圖工具,如pyecharts來實(shí)現(xiàn)足跡圖的生成。
將表格中的數(shù)據(jù)格式化后,按照時間創(chuàng)建時間軸對象后,按照每條數(shù)據(jù)的元組數(shù)據(jù)生成足跡圖。
圖例中圖標(biāo)信息:
白色點(diǎn):詩人去過的地方
紅色點(diǎn):當(dāng)前時間點(diǎn)詩人所在地
箭頭:詩人從某地移動到目的地
附地圖生成代碼數(shù)據(jù)讀取和足跡圖生成部分:
poet_name = "杜甫"
dataset = pd.read_csv('dataset_'+ poet_name +'.csv')
data=np.array(dataset).tolist(? )
timeline.render('active_map_'+ poet_name + '.html')
依照該部分代碼,將表格數(shù)據(jù)文件以dataset_詩人名.csv的格式讀取時,可以實(shí)現(xiàn)生成每個詩人的行走足跡圖。
第四章 總結(jié)概括
4.1項(xiàng)目總結(jié)
系統(tǒng)的分析方法可以有效地挖掘出詩詞數(shù)據(jù)背后所蘊(yùn)含的價值,提取出詩詞間的關(guān)聯(lián)關(guān)系,并通過可視化的技術(shù)展現(xiàn)出來,輔助我們學(xué)習(xí)詩詞,同時也為中華文化的傳承做出努力,為社會提供更多的價值。
4.2結(jié)束語
本文論述了知識圖譜技術(shù)在詩詞數(shù)據(jù)的部分前景,歷史上某位詩人所處的位置可能隨著時間因素,因其不同的經(jīng)歷而發(fā)生變化,因此從詩人對應(yīng)的經(jīng)歷數(shù)據(jù)中,抽取地點(diǎn)、時間等屬性類,將其軌跡動態(tài)映射到地圖上。在分析數(shù)據(jù)的同時挖掘出隱藏在數(shù)據(jù)背后的價值,以便大家更好地學(xué)習(xí)詩詞。
參考文獻(xiàn)
[1]? 王紅 張青青 蔡偉偉 姜洋.基于Neo4j的領(lǐng)域本體存儲方法研究[J].計(jì)算機(jī)應(yīng)用研究.2017,34(08):2404-2407.
[2]? 周莉娜 洪亮 高子陽.唐詩知識圖譜的構(gòu)建及其智能知識服務(wù)設(shè)計(jì)[J].圖書情報工作.2019,63(02):24-33.
[3]? 劉嶠 李楊 段宏 劉瑤 秦志光.知識圖譜構(gòu)建技術(shù)綜述[J].計(jì)算機(jī)研究與發(fā)展.2016,53(03):582-600.
基金項(xiàng)目:由北京信息科技大學(xué)2020年大學(xué)生創(chuàng)新創(chuàng)業(yè)訓(xùn)練計(jì)劃項(xiàng)目資助(5102010805)。
This work is supported by 2020?College Student Innovation and Entrepreneurship Training Program of BISTU(5102010805)