999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于Python語言的中國革命歷史知識圖譜數據預處理技術研究

2024-06-01 10:36:24景文會劉偉黃炳程覃興剛任佳祺
現代信息科技 2024年4期
關鍵詞:數據處理

景文會 劉偉 黃炳程 覃興剛 任佳祺

收稿日期:2023-06-07

基金項目:2022年廣西壯族自治區區級大學生創新創業訓練計劃項目資助(S202210603152)

DOI:10.19850/j.cnki.2096-4706.2024.04.025

摘? 要:中國革命歷史數據蘊含豐富的歷史信息和文化價值,充分利用這些數據對傳承中華民族的優秀傳統文化有重要意義。文章針對中國革命歷史數據預處理的問題,闡述了基于Python語言的中國革命歷史數據處理和分析的步驟和方法,介紹了中國革命歷史數據從文字圖片提取,到文字圖片的儲存處理,再到為數據中的人物和事件實體綁定鏈接的詳細流程。此外,項目還取得了大量中國革命歷史相關的文字數據,并進行了文本預處理和分析,成功地實現了對中國革命歷史相關文本的知識圖譜的構建。文章所提方法具有一定的實用性和優越性,對于推進中國革命歷史的傳承和發展具有一定的參考價值。

關鍵詞:Python;中國革命歷史;數據處理

中圖分類號:TP391.1? 文獻標識碼:A? 文章編號:2096-4706(2024)04-0116-05

Research on Data Preprocessing Technology of Chinese Revolutionary History Knowledge Graph Based on Python Language

JING Wenhui, LIU Wei, HUANG Bingcheng, QIN Xinggang, REN Jiaqi

(School of Computer and Information Engineering, Nanning Normal University, Nanning? 530100, China)

Abstract: The historical data of the Chinese revolution contains rich historical information and cultural value, and fully utilizing these data is of great significance for inheriting the excellent traditional culture of the Chinese nation. This paper elaborates on the steps and methods of processing and analyzing Chinese revolutionary historical data based on Python language, focusing on the issue of preprocessing Chinese revolutionary historical data. It introduces the detailed process of Chinese revolutionary historical data from extracting text image, storing and processing text images, and then binding links for characters and event entities in the data. In addition, the project also obtained a large number of text data related to the history of the Chinese revolution, and carried out text preprocessing and analysis, successfully realizing the construction of the Knowledge Graph of the text related to the history of the Chinese revolution. The method proposed in the paper has certain practicality and superiority, and has certain reference value for promoting the inheritance and development of Chinese revolutionary history.

Keywords: Python; Chinese revolutionary history; data processing

0? 引? 言

中國革命精神是中華民族寶貴的精神財富,激勵了一代又一代中國人民為理想和信仰拼搏奮斗。了解中國革命歷史、研究中國革命歷史對中華民族的文化傳承具有重要意義。知識圖譜是將中國革命歷史知識數字化的有效工具。為了構建中國革命歷史知識圖譜,需要從大量的中國革命歷史文檔資料中,抽取人物、地點、事件等實體。為了實現文字和圖片的關聯展示,需要將文檔資料中圖片和文字分離,按知識圖譜框架結構將圖片和文字分別存儲及處理。本文將介紹基于Python技術的中國革命歷史知識圖譜構建數據預處理過程。大概分為以下3個步驟:分離文檔中的文字和圖片;文字和圖片的存儲及實體識別處理;為人物和事件實體綁定百度百科的鏈接。下面將對3個步驟逐一詳細介紹。

1? 分離文檔中的文字和圖片

Python是一種強大的編程語言,可用于各種數據處理和文檔抽取任務,本文通過Python的Python-docx庫的write方法來提取Word文檔中的文本內容和圖片內容。文檔和圖片分離的流程圖如圖1所示。

首先使用Python-docx庫的write方法讀取Word文檔,判斷讀取到的文檔內容,如果為段落標題,則調用paragraphs屬性獲取文檔的段落標題,并根據段落標題建立對應的文件夾。如果讀取到docx的正文部分則將分別用write方法來提取文字和圖片,并分別生成txt文件和圖片(如圖2(b)),以文檔名稱命名后寫入生成的文件夾中。

圖1? 文檔分離的流程圖

(a)Word文檔? ? ? ? ? ? ?(b)提取和分離效果

圖2? 文檔分離效果圖

其中圖2(a)是未處理的圖文混排Word文檔,圖2(b)則是經過Python提取和分離過后的效果,最底層的文件夾以提取的段落標題命名。

2? 文字和圖片的存儲處理

2.1? 圖片存儲

本文采用MongoDB數據庫存儲圖片。存儲圖片的主要步驟為:

1)連接本地MongoDB數據庫。在名為“Redculture”的數據庫中創建一個名為“my_collection”的集合。具體代碼為:

from pymongo import MongoClient as MC

MClient = MC('localhost', 27017)? # 連接MongoDB

db = MClient['Redculture']? # 指定數據庫

collection = db['my_collection']

2)遍歷文件夾中的所有圖片并插入到集合中。首先使用Pillow庫打開圖像,再將圖像數據通過tobytes()方法轉換為二進制文件,最后將二進制文件通過insert_one方法(insert one方法是在pymong庫里,不需要定義可以直接使用)將二進制文件存入數據庫。具體代碼為:

for filename in os.listdir('/path/to/folder'):

if ilename.endswith('.jpg') or filename.endswith('.png'):with open(os.path.join('/path/to/folder', filename), 'rb') as f:

img = Image.open(f)

img_data = img.tobytes()

img_doc = {'filename': filename, 'data': img_data}

collection.insert_one(img_doc)

其中圖3(a)是存放在文件夾中的圖片,圖3(b)為圖片存放在MongoDB中的效果圖,其中id是集合中文件的鍵(圖片文件名),用于區分文件(記錄)。默認情況下,_id字段的類型為ObjectID,是MongoDB的BSON類型之一。data則是存儲圖片的二進制數據,采用BinData形式,BinData提供了一種聲明性方式來讀取和寫入結構化二進制數據

(a)文件夾中的圖片? ? ? ? ? ? ?(b)效果圖

圖3? 圖片存入MongoDB的效果圖

2.2? 文字存儲

文本數據存儲到MongoDB需要完成以下2個步驟:

1)連接MongoDB數據庫。連接MongoDB數據庫并選擇要存儲數據的集合,使用PyMongo庫連接到本地MongoDB實例,在名為“Redculture”的數據庫中創建一個名為“beijing”的集合。具體代碼為:

from pymongo import MongoClient as MC

client = MongoClient('mongodb://localhost:27017/')

db = client['Redculture ']

collection = db['beijing ']

2)打開文件夾并遍歷文件。使用Python內置的os庫打開文件夾,并使用os.listdir()函數列出文件夾中的所有文件,再使用內置的open()方法打開以txt為后綴的文件并讀取內容,最后使用read()方法將讀取的內容通過insert_one()方法存入到MongoDB數據庫中。具體代碼為:

fileList = 'C:/Users/winner/Desktop/bejing/'

for filelists in os.listdir(fileList):

for filelistslistinos.listdir(fileList + filelists):

for text_listinos.listdir(fileList + filelists + '/' + filelistslist):

if text_list.split('.')[1] != 'txt':

break

else:

dataSource = fileList + filelists + '/' + filelistslist + '/' +text_list

province = 'bejing'

with open(dataSource, 'r', encoding='utf-8') as f_text:

title_h3 = '

' + text_list.split('.')[0] + '

dataLines = f_text.read()

date_insert =dataLines.replace('\n', '')

collection.insert_one({'province': province, 'address': text_list.split('.')[0], 'content': title_h3+date_insert})

其中圖4(a)是存放在文件夾中的文本文件,圖4(b)是文本存入MongoDB的效果圖。其中id是集合中文件的鍵(文本文件名),用于區分文件(記錄)。默認情況下,_id字段的類型為ObjectID,是MongoDB的BSON類型之一。Content用于存儲文本提取出來的文本內容。

(a)文本文件? ? ? ? ? ? ? ? (b)效果圖

圖4? 文字存入MongoDB的效果圖

3? 為人物和事件實體綁定百度百科的鏈接

3.1? 對txt文本進行分詞操作以獲取實體

提取文檔中的人名和歷史事件實體,是實現中國革命歷史知識圖譜必不可少的就環節,由于近代戰爭中的歷史人物和事件,在百度百科中都有相關詞條,因此本文將采用將實體名鏈接到百度百科詞條的方式,來實現實體查詢的信息共享。

我們首先使用open函數讀取一個txt文件,然后遍歷內容找到以“起義”“革命”和“運動”結尾的一段文字,這樣可以找到存在歷史事件的一段文字,后期再手動篩選其中的歷史事件。

接下來使用Python中的pyltp庫和shutil庫,實現對人名和地名的分詞,pyltp是一個用于自然語言處理的Python庫,它是LTP(Language Technology Platform)的Python接口,支持多種自然語言處理任務,如分詞、詞性標注、命名實體識別等。shutil是Python中的一個文件操作庫,可以用于復制、移動、重命名和刪除文件或目錄等操作。

1)連接pyltp分詞模型:

# pyltp模型目錄的路徑

LTP_DATA_DIR = '/path/to/ltp_data_v3.4.0'

# 分詞模型路徑,模型名稱為`cws.model`

cws_model_path = os.path.join(LTP_DATA_DIR, 'cws.model')

# 初始化實例

segmentor.load(cws_model_path)

# 加載模型

segmentor = Segmentor()

2)遍歷文件夾中的所有文本文件,對每個文件進行分詞處理并保存到新文件:

# 遍歷文件夾中的所有文本文件

for filename in os.listdir('/path/to/folder'):

if filename.endswith('.txt'):

# 讀取文件內容

with open(os.path.join('/path/to/folder', filename), 'r', encoding='utf-8') as f:

text = f.read()

# 進行分詞處理

words = segmentor.segment(text)

# 將分詞結果轉換為字符串

result = ' '.join(words)

# 保存分詞結果到新文件

new_filename = os.path.splitext(filename)[0] + '_seg.txt'

with open(os.path.join('/path/to/output/folder', new_filename), 'w', encoding='utf-8') as f:

f.write(result)

需要注意的是,在實際應用中,我們還可以對分詞結果進行過濾、去重、歸一化等操作,以便更好地提取文本信息和洞察數據趨勢。圖5(a)是存儲在txt中未分詞的文字,結合Python中的pyltp庫和shutil庫實現圖5(b)的效果,后期再手工過濾篩選出其中正確的人名。

(a)未分詞的txt文檔? ? ? ? (b)提取出人名的文檔

分詞效果圖

圖5? txt文本進行分詞效果圖

3.2? 為人物和事件實體綁定百度百科的鏈接

百度百科作為一個維基百科式的平臺,是中國最大的中文百科全書之一,其收錄了人物、歷史事件、地理位置、生物、科技、文化藝術等領域全面、權威、準確的知識。因此我們打算將人物和事件實體與百度百科鏈接相綁定,首先我們通過Python代碼讀取想要采集的人名和事件名稱,利用爬蟲技術獲取到百度百科鏈接的URL,將實體的URL鏈接與實體進行配對,最后將抓取到的鏈接存入Excel文件中去,以便后期的數據清洗。

3.2.1? 爬取實體的百度百科鏈接URL

近年來互聯網的發展速度是迅猛的,在龐大的網絡信息中,用戶們可以通過一定的手段獲取想要的知識,但是由于網絡上的信息眾多,想要獲取目標信息的難度卻很大,因此人們就需要一個工具。因此就有了搜索引擎,而網絡爬蟲正是搜索引擎的核心組成部分。

網絡爬蟲能夠對網頁進行自動獲取。在本次數據處理過程中,我們需要找到人名和歷史事件的百度鏈接,面對如此龐大的數據工作量,我們決定使用網絡爬蟲技術,來進行數據收集。為此我們采用谷歌的Chromedriver搭配Python代碼來實現百度鏈接抓取。利用運行已經編輯好的代碼,對已經提取出來的人名和事件(圖6(a))進行讀取。通過在百度百科中搜索讀取到的人名或事件名,將其鏈接進行抓取并存入Excel文件中,后期再經過人工篩查,將無效數據刪除,進行數據清洗,從而得到一組干凈的數據,圖6(b)是通過Python代碼抓取百度百科鏈接并存入Excel文件的效果圖。

(a)取出來的實體名? ?(b)存入Excel文件的效果圖

圖6? 數據收集、清洗樣例

3.2.2? 設置人物和事件實體的鏈接

經過上一步的數據清洗后,我們得到了一組干凈的數據。本文選擇使用MongoDB數據庫進行數據存儲,首先通過網絡爬蟲得到帶有實體鏈接的Excel文件,如圖6所示,將Excel文件的鏈接寫回txt文本中,最后把帶有鏈接的實體的文本數據存入MongoDB數據庫中。通過這種存儲方式可以提高數據管理和查詢效率,方便數據存儲和共享,提高數據安全性和可靠性。

要實現Excel文件存入MongoDB數據庫,首先我們需要調用Python的pandas庫來讀取Excel文件里的內容,再通過pymongo庫來連接MongoDB數據庫,再依次將文件里的實體及鏈接存入到MongoDB數據庫中。

1)連接MongoDB數據庫:

# 連接MongoDB數據庫

client = pymongo.MongoClient('localhost', 27017)

db = client['Redculture']

# 文件所在路徑

collection = db["cq"]#集合名(navicat里面生成的集合名)

2)讀取txt文件并將內容存入到集合中:

# 讀取Excel文件

data = pd.read_excel('實體鏈接.xlsx')

# 將數據插入到MongoDB中

for index, row in data.iterrows():

name = row['姓名']

link = row['鏈接']

collection.insert_one({'姓名': name, '鏈接': link})

需要注意的是,在存儲過程中需要手動將client值的設置改為需要存入的數據庫名稱,不然會造成存入數據混亂、后期管理不方便的問題。最終得到的紅色文化有關數據庫的可視化局部效果圖,如圖7所示。

4? 結? 論

Python語言語法簡單清晰,具備豐富的標準庫和第三方庫,功能強大且免費使用,利用Python語言進行數據分析處理十分靈活和高效。本文主要是利用Python語言對中國革命歷史知識文化數據進行處理,主要可分為3個步驟:提取文檔中的文字和圖片,對文字和圖片進行存儲處理,為人物和事件實體綁定百度百科的鏈接并將最終數據存入MongoDB數據庫。文章通過實例講解了中國革命歷史文化知識數據處理過程中各個步驟的可行性,最終得到紅色文化有關數據庫的可視化局部效果圖。希望能為類似的技術研究和功能開發提供借鑒。

參考文獻:

[1] 沈成飛,連文妹.論紅色文化的內涵、特征及其當代價值 [J].教學與研究,2018(1):97-104.

[2] 周宿峰. 紅色文化基本問題研究 [D].長春:吉林大學,2014.

[3] 朱志強,林嵐,楊書,等.國內紅色旅游研究發展知識圖譜——基于CiteSpace的計量分析 [J].旅游論壇,2016,9(6):32-39.

[4] XIE R B,LIU Z Y,JIA J,et al.Representation Learning of Knowledge Graphs with Entity Descriptions [C]//Proceedings of the Thirtieth AAAI Conference on Artificial Intelligence.Phoenix:AAAI Press,2016:2659-2665.

[5] RATNAPARKHI A.A Maximum Entropy Model for Part-Of-Speech Tagging [EB/OL].[2023-05-20].http://www.delph-in.net/courses/07/nlp/Ratnaparkhi%3a96.pdf.

[6] MCCALLUM A,FREITAG D,PEREIRA F C N.Maximum Entropy Markov Models for Information Extraction and Segmentation [C]//Proceedings of the Seventeenth International Conference on Machine Learning.San Francisco:Morgan Kaufmann Publishers Inc,2000,17:591-598.

[7] AUGENSTEIN I,RUDER S,S?GAARD A. Multi-task Learning of Pairwise Sequence Classification Tasks Over Disparate Label Spaces [J/OL].arXiv:1802.09913 [cs.CL].[2023-05-20].https://arxiv.org/abs/1802.09913.

[8] BERYOZKIN G ,DRORI Y,GILON O,et al. A Joint Named-Entity Recognizer for Heterogeneous Tag-setsUsing a Tag Hierarchy [J/OL].arXiv:1905.09135 [cs.CL].[2023-05-16].https://arxiv.org/abs/1905.09135v1.

[9] HUANG Z H,XU WEI,YU KAI. Bidirectional LSTM-CRF Models for Sequence Tagging [J/OL].arXiv:1508.01991 [cs.CL].[2023-05-16].https://arxiv.org/abs/1508.01991.

[10] MAO MINGYI,WU CHEN,ZHONG YIXIN,et al. BERT named entity recognition model with self-attention mechanism [J].CAAI Transactions on Intelligent Systems,2020,15(4):772–779.

[11] YANG H Q. BERT Meets Chinese Word Segmentation [J/OL].arXiv:1909.09292 [cs.CL].[2023-05-16].https://doi.org/10.48550/arXiv.1909.09292.

作者簡介:景文會(2002—),女,仡佬族,貴州銅

仁人,本科在讀,主要研究方向:自然語言處理;劉偉(2001—),男,土家族,貴州銅仁人,本科在讀,主要研究方向:自然語言處理;黃炳程(2001—),男,壯族,廣西欽州人,本科在讀,主要研究方向:自然語言處理;覃興剛(2001—),男,壯族,廣西興業人,本科在讀,主要研究方向:自然語言處理;任佳祺(2002—),男,漢族,山東威海人,本科在讀,主要研究方向:自然語言處理。

猜你喜歡
數據處理
認知診斷缺失數據處理方法的比較:零替換、多重插補與極大似然估計法*
心理學報(2022年4期)2022-04-12 07:38:02
ILWT-EEMD數據處理的ELM滾動軸承故障診斷
水泵技術(2021年3期)2021-08-14 02:09:20
MATLAB在化學工程與工藝實驗數據處理中的應用
Matlab在密立根油滴實驗數據處理中的應用
基于POS AV610與PPP的車輛導航數據處理
依托陸態網的GNSS遠程數據處理軟件開發
主站蜘蛛池模板: 在线观看91精品国产剧情免费| 日本人妻丰满熟妇区| 日韩久久精品无码aV| www.日韩三级| 精品无码国产自产野外拍在线| 无码区日韩专区免费系列| 亚洲自拍另类| 欧美一道本| 丁香婷婷激情网| 99国产精品国产| 无码精品国产VA在线观看DVD| 日本免费精品| 国产乱人伦偷精品视频AAA| av一区二区人妻无码| 日本免费一级视频| 乱人伦中文视频在线观看免费| 国产偷倩视频| 国产尤物jk自慰制服喷水| 亚洲欧美自拍视频| 国产精品30p| 免费看黄片一区二区三区| 国产资源免费观看| 欧洲一区二区三区无码| 18禁黄无遮挡网站| 伊人色综合久久天天| 久久一级电影| 一本一道波多野结衣一区二区| 欧美精品综合视频一区二区| 另类专区亚洲| 亚洲成a人片7777| 国产成人久久综合一区| 亚洲天堂免费在线视频| 好紧好深好大乳无码中文字幕| 亚洲熟妇AV日韩熟妇在线| 东京热一区二区三区无码视频| 岛国精品一区免费视频在线观看| 欧美亚洲日韩不卡在线在线观看| 国产成人综合久久精品尤物| 无码高潮喷水专区久久| 成人在线不卡| 国产极品美女在线播放| 国产麻豆福利av在线播放 | 亚洲 欧美 日韩综合一区| 国产福利在线观看精品| 免费久久一级欧美特大黄| 中日无码在线观看| 国产精品无码久久久久AV| 免费在线成人网| 久久性视频| 亚洲人成人伊人成综合网无码| 潮喷在线无码白浆| 亚洲国产清纯| 欧美在线观看不卡| 国产91高跟丝袜| 老色鬼久久亚洲AV综合| 啦啦啦网站在线观看a毛片| 国产区人妖精品人妖精品视频| 不卡视频国产| 成人蜜桃网| 波多野结衣无码中文字幕在线观看一区二区| 啊嗯不日本网站| 亚洲欧美天堂网| 午夜精品久久久久久久无码软件| 小13箩利洗澡无码视频免费网站| 黄色在线网| 综合网久久| 亚洲系列无码专区偷窥无码| 中文字幕在线视频免费| 亚洲av无码专区久久蜜芽| 欧美激情伊人| 国产综合精品日本亚洲777| 狼友视频一区二区三区| 国产97视频在线| 毛片视频网| 又污又黄又无遮挡网站| 欧美性精品不卡在线观看| 成人国产小视频| 国产凹凸视频在线观看| 真人免费一级毛片一区二区| 99在线视频免费观看| 幺女国产一级毛片| 精品免费在线视频|