中華古詩詞知識圖譜之網頁設計及實現(完結)

清風紫雪發表於2022-01-04

前臺大屏資料視覺化

朝代詩集總數-柱狀圖

統計各朝代的詩集總數,進行柱狀圖展示

 

宋詞意象詞頻統計-詞雲圖

 將收集的宋詞,經過分詞器,在進行統計後,得出的意象詞頻結果,再將其展示成為詞雲圖。

 

 唐朝情感分佈-餅狀圖

分析唐朝詩詞,進行七種情感分析,統計情感的佔比,繪製餅狀圖展示。

 

 詩人遊歷-旅行圖

定義了三位出名的詩人:李白、白居易、杜甫。

通過之前對詩人生平的解析,解析出對應的事蹟。

事蹟實體包含:時間,地點,事蹟內容。然後地點是古代地名,通過百度搜尋爬取其現代地名,做一個古今地名轉換,方便之後的高德地圖定位。

設定的軌跡路徑是從出生地到其他地方的路線圖,觸控地點會展現出對應的時間,事件,出發地,終點地。

 

 宋代詞牌名熱度-橫向柱狀圖

統計宋代的詞牌名,進行頻度統計,在展示其效果。

 

 朝代情感-折線圖

分析每個朝代的詩詞,根據七種情感,找出各朝代情感表達最多的,作為該朝代的主題情感。

 

 宋代詩詞類別-南丁格爾圖

統計帶有類別標籤的詩詞,進行宋代的詩詞類別統計,進行相應的展示。

 

 前端整體資料展示

 

 後端管理

首頁

首頁展示各朝代的詩詞統計,詩人統計資訊,以及各朝代的部分詩人瀏覽展示。

 

 

 

 

 

 

 

 

 

 詩詞瀏覽

分為三部分:按照朝代瀏覽,按照詩人瀏覽,按照題材瀏覽

朝代瀏覽:分為唐宋元明清,五個朝代的詩詞瀏覽。進入每個朝代的詩詞瀏覽,可以看到卡片式的詩詞佈局展示,分頁瀏覽以及根據詩名模糊查詢本朝代的詩詞。

朝代詩詞瀏覽

 

分頁瀏覽

模糊搜尋

詩人瀏覽:分成李白、杜甫、白居易、蘇軾、更多...。更多這裡有個所有詩人的展示,分頁展示所有的詩人,點選後進入單獨的詩人詩集頁面。在詩人詩集頁面,會展示相關的詩人的詩集,同樣也支援模糊搜尋,分頁展示。

李白詩集

 

分頁瀏覽

 

 更多詩人頁面瀏覽

 

 王昌齡詩集

題材瀏覽:五言絕句、七言絕句、五言律詩、七言律詩、詞、曲。點選對應的詳情頁面,會展示和詩詞題材相關的詩詞,同樣支援模糊搜尋,分頁展示。

 

 

 

 詩人瀏覽

按照朝代瀏覽:唐宋元明清

進入單個朝代頁面可以瀏覽該朝代的詩人,一行設定四個詩人位置,左側詩人頭像,右側詩人簡介,下面是詩人的名字以及檢視詳情的連結跳轉。

分頁瀏覽:分頁查詢展示該朝代的詩人詳情

模糊查詢:根據詩人的名字,進行模糊查詢

 

 詩人圖譜

包含:基本介紹,詩人畫像,詩人圖譜(朋友圈),詩人軌跡,詩人生平,詩人合稱

基本介紹

包含詩人的簡介,詩人經歷,通過資料庫展示。之前重新爬取了詩人的經歷,將其對應的html程式碼爬取到資料庫中,因此頁面展示的時候就會顯得規則化一些,不至於太亂。

 

 詩人畫像

詩人畫像是對詩人個人簡介的內容抽取,抽取出詩人的字,號,出生時間,去世時間,所屬朝代,遊歷地點,合稱稱號,部分作品集。

分頁展示詩人的名句與作品集

詩人的名句來源於:尋古詩詞網名句

遊歷地點來源:通過對詩人的個人生平進行分析,提取其中的地點詞,作為詩人的旅行地點詞。

 

 詩人圖譜(朋友圈)

詩人的朋友圈

通過收集詩人列表,在對詩人的個人生平進行人名提取,提取出同一朝代的詩人。

建立詩人的朋友列表,匯入neo4j資料庫。

頁面展示:

通過D3將詩人關係圖譜展示出來,展示詩人的直接朋友,再根據詩人的朋友展示其間接朋友,也就是我們常說的(朋友的朋友,不就是你的間接朋友)

改進:不觸控詩人,展示所有詩人關係;觸控到詩人,只展示其直接朋友關係,其他詩人關係不顯示。

不觸控狀態:

 

 觸控狀態:

 

 詩人軌跡

軌跡地點:通過對詩人的個人生平,進行地點提取,通過古今地點對應表,查詢現今地點的經緯度,在高德上可進行標記。

然後通過echarts的軌跡圖,將作者的軌跡按照時間的順序進行展示。

 詩詞鑑賞

展示的內容:基本介紹、詩人資訊、字詞解釋、情感分析、時空背景

情感分析

通過BILSTM情感分析模型,對單句進行七種細顆粒度的情感分析。然後對整首詩進行情感分析,得出最終的各類情感的佔比。

 

 單句情感分析

 

 基本介紹

 

 詩人資訊

 

 字詞解釋

 

 時空背景

創作該詩的前後幾年,詩人在何時在哪裡做了哪些詩詞

 

 

機器作詩

實現給定一個開頭詞或者四個藏頭字,數字5或7代表五言或七言。

改良:

①避免疊詞出現:

例如:

樓高高高樓   ×

避免疊詞產生

②開頭詞不重複

避免四句古詩,有相同的開題詞,導致古詩不通順

 

 成果展示:

 

 藏頭七言古詩

 

 詩詞問答

問答主體

#----------詩人相關問題-------------------------------------------------
        # 詩人的作品
        self.poem_name_qwds=['','作品','詩集','詩詞']
        # 詩人的朋友
        self.poemer_friend_qwds=['好友','朋友','知己']
        # 詩人的出生年月
        self.poemer_born_qwds=['出生','生於']
        # 詩人的去世年月
        self.poemer_die_qwds = ['', '去世']
        # 詩人的簡介
        self.author_qwds=['簡介','介紹']
        # 詩人所屬朝代
        self.author_desty_qwds=['朝代','','年代','']
        # 詩人的合稱
        self.author_common_name_qwds=['合稱','稱號']
        # 詩人旅行地點
        self.author_travel_where_qwds=['旅行','遊歷','遊玩','','地點']
        # 詩人的字
        self.author_zi_qwds=['']
        # 詩人的號
        self.author_hao_qwds=['']
        # 詩人的詩集總數
        self.author_poem_sum_qwds=['總數','合計','總共','詩詞總數']
# ----------詩詞相關問題-------------------------------------------------
        # 詩詞的內容
        self.poem_qwds=['內容']
        # 詩詞作詩時間
        self.poem_date_qwds=['時間','作詩時間']
        # 詩詞的創作背景
        self.poem_back_qwds=['創作背景','背景']
        # 詩詞的翻譯
        self.poem_trans_qwds=['翻譯']
        # 詩詞的作者
        self.poem_author_qwds=['作者','詩人']
        # 詩詞的朝代
        self.poem_desty_qwds=['朝代','','年代','']
        # 詩詞的類別
        self.poem_tag_qwds=['','類別','型別','風格']
        # 詩詞的形式
        self.poem_formal_qwds=['形式','題材']
        # 詩詞的詞牌名
        self.poem_cipaiming_qwds=['詞牌名']
        # 詩詞的曲牌名
        self.poem_qupaiming_qwds = ['曲牌名']
# ----------類別相關問題-------------------------------------------------
        # 所有詩詞類別?
        self.tag_qwds = ['詩詞類別']
        # 類別包含哪些詩?
        self.tag_poem_qwds=['','']
# ----------形式相關問題-------------------------------------------------
        # 所有詩詞形式?
        self.formal_qwds = ['詩詞形式']
        # 形式包含哪些詩?
        self.formal_poem_qwds=['','']
# ----------詞牌名問題-----------------------------------------------
        # 所有的詞牌名?
        self.cipaiming_qwds = ['詞牌名']
        # 詞牌名包含哪些詩?
        self.cipaiming_poem_qwds=['','']
# ----------曲牌名問題-----------------------------------------------
        # 類所有曲牌名?
        self.qupaiming_qwds = ['曲牌名']
        # 曲牌名包含哪些詩?
        self.qupaiming_poem_qwds = ['', '']
# ----------朝代問題-----------------------------------------------
        # 所有的朝代?
        self.desty_qwds = ['朝代']
        # 朝代包含哪些詩?
        self.desty_poem_qwds = ['', '']
        # 朝代包含的詩人?
        self.desty_author_qwds=['詩人','']
# ----------詩人合稱問題-----------------------------------------------
        # 所有合稱
        self.common_name_qwds = ['詩人合稱']
        # 詩人合稱包含哪些人?
        self.common_name_author_qwds=['','詩人']
# ----------飛花令問題--------------------------------------------------
        # 飛花令的詩句
        self.word_qwds = ['飛花令']
        # 飛花令的詩句
        self.word_poem_qwds=['飛花令']

問答展示

 

 總結

整個專案完結!!總結一下,遇到的困難:分析詩人的事蹟,七種情感分析,基於規則模板的詩詞問答。

遇到困難,認真分析,逐個攻破,保持熱愛

相關文章