0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

《中國(guó)近代史綱要》考試過(guò)關(guān)?Python幫你劃重點(diǎn)

電子工程師 ? 來(lái)源:lq ? 2019-01-28 09:16 ? 次閱讀

打開查分界面,我看到我的“中國(guó)近現(xiàn)代史綱要”一欄露出了難看的臉色。

這時(shí),一個(gè)程序突然自告奮勇:“不就是這種簡(jiǎn)單的考試嗎?讓我學(xué)一下你們的課本,我也能夠上考場(chǎng)! (  ̄ー ̄)”

我把我的課本文本輸入給它。不到一分鐘以后,它對(duì)我說(shuō):“我學(xué)完了,來(lái)考我吧。”

雖然也只是在考前突擊了兩天,但我對(duì)它如此之快的速度還是深感嫉妒。我問(wèn):“你知道孫中山先生都干了哪些事情嗎?”

“發(fā)動(dòng)護(hù)法運(yùn)動(dòng)、就任臨時(shí)大總統(tǒng)、讓位于***”

“不錯(cuò)嗎,你是怎么做到的?”

“讓我給你細(xì)細(xì)講來(lái)吧……”

準(zhǔn)備工作

程序:“首先引入一些必要的庫(kù),然后我加載doc為1840—1919年中國(guó)大事的那一段段文本做個(gè)簡(jiǎn)單的示例,這部分代碼就不用我列出來(lái)了吧。”

旁白:這里使用harvesttext庫(kù)進(jìn)行文本挖掘,它的許多功能能夠使得文本分析的流程變得更加輕松。前面的“用python分析《三國(guó)演義》中的社交網(wǎng)絡(luò)”一文也使用了這一工具。

ht = HarvestText()sentences = ht.cut_sentences(doc)

有哪些重要對(duì)象

“重要對(duì)象,一般都是一些專有名詞。我可以利用自然語(yǔ)言處理中的命名實(shí)體識(shí)別技術(shù)就能夠識(shí)別出這樣的一些對(duì)象,比如:人名、地名、機(jī)構(gòu)名還有其他專有名詞等?!?/p>

HarvestText中包裝精簡(jiǎn)了pyhanlp中的命名實(shí)體識(shí)別接口,讓我們來(lái)使用它找到近代史中的重要對(duì)象吧。

entity_type_dict = {}for i, sent in enumerate(sentences): entity_type_dict0 = ht.named_entity_recognition(sent) for entity0, type0 in entity_type_dict0.items(): entity_type_dict[entity0] = type0for entity in list(entity_type_dict.keys())[:10]: print(entity, entity_type_dict[entity])中國(guó) 地名鴉片戰(zhàn)爭(zhēng) 其他專名五四運(yùn)動(dòng) 其他專名英國(guó) 地名南京 地名望廈 其他專名黃埔 地名不平等條約 其他專名洪秀全 人名金田 地名

把找到的實(shí)體登錄,我們就可以統(tǒng)計(jì)他們出現(xiàn)的次數(shù),通過(guò)詞頻來(lái)判斷它們的重要性。

ht.add_entities(entity_type_dict = entity_type_dict)inv_index = ht.build_index(sentences)counts = ht.get_entity_counts(sentences,inv_index)print(pd.Series(counts).sort_values(ascending=False).head())中國(guó) 21清政府 6日本 5孫中山 4英國(guó) 3dtype: int64

我:“這個(gè)分析確實(shí)有用,看著這些詞我就聯(lián)想到了,在1840—1919年的中國(guó),清政府面對(duì)外敵的屈辱,以及孫中山先生為代表的有識(shí)之士的努力。但是考試不是單考這些對(duì)象,關(guān)鍵要考和它們有關(guān)的知識(shí)點(diǎn)啊?!?/p>

程序:“別著急,對(duì)于知識(shí)點(diǎn),我也有辦法找到。”

有哪些重要知識(shí)點(diǎn)

程序:“你們說(shuō)的重要知識(shí)點(diǎn),可以認(rèn)為是包含了那些重要對(duì)象的事件或者事實(shí)吧。對(duì)于你們?nèi)祟悾聦?shí)可能就是自然語(yǔ)言描述的一句話。不過(guò)對(duì)于我們程序,我們要用一種標(biāo)準(zhǔn)清晰的結(jié)構(gòu)來(lái)表示它。三元組組成的知識(shí)圖譜就是一種解決方案?!?/p>

三元組就是類似(主語(yǔ),謂詞,賓語(yǔ))的結(jié)構(gòu),比如:

[‘清政府’, ‘簽訂’, ‘天津條約’]

[‘***’, ‘復(fù)辟’, ‘帝制’]

[‘孫中山’, ‘就任’, ‘臨時(shí)大總統(tǒng)’]

我:“有點(diǎn)意思,三個(gè)詞基本就能凝練地表達(dá)一句話中的主要事實(shí)了。但是你只有文本作為輸入,你要怎么從中提取出這樣的三元組呢?”

程序:“上面已經(jīng)提到三元組有(主語(yǔ),謂詞,賓語(yǔ))的結(jié)構(gòu)。你要是英語(yǔ)/語(yǔ)文課學(xué)得好的話,應(yīng)該會(huì)聯(lián)想到主語(yǔ)、謂語(yǔ)、賓語(yǔ)這些語(yǔ)法概念吧?而我就可以使用依存句法分析技術(shù)從文本中獲得這些句法信息?!?/p>

分析大致是這樣的:

可以看到,從主謂關(guān)系和動(dòng)賓關(guān)系,我們就能夠自然地得到我們需要的三元組[‘***’, ‘復(fù)辟’, ‘帝制’]。

保留更多的信息,比如修飾主語(yǔ)的形容詞,能夠讓三元組的意思更加完整。我們可以利用別的關(guān)系來(lái)擴(kuò)充事實(shí):

原來(lái)我們只會(huì)得到[‘孫中山’, ‘就任’, ‘大總統(tǒng)’]。現(xiàn)在利用定中關(guān)系,我們就知道“臨時(shí)”一詞修飾“大總統(tǒng)”,我們就能夠得到[‘孫中山’, ‘就任’, ‘臨時(shí)大總統(tǒng)’]這個(gè)更完整的事實(shí)了。

我:“emmm…我的英語(yǔ)學(xué)得不好,這些語(yǔ)法看得有點(diǎn)頭暈?!?/p>

程序:“好吧 (¬_¬),不過(guò)把它包裝成接口以后,我們就可以很簡(jiǎn)單地使用這個(gè)技術(shù)了?,F(xiàn)在讓我們用它來(lái)找到課本里的重要知識(shí)點(diǎn):”

ht2 = HarvestText()SVOs = []for i, sent in enumerate(sentences): SVOs += ht2.triple_extraction(sent.strip())print(" ".join(" ".join(tri) for tri in SVOs[5:10]))英法聯(lián)軍 發(fā)動(dòng) 侵略中國(guó)清政府 簽訂 天津條約清政府 簽訂 北京條約慈禧太后 掌握 清王朝政權(quán)這是中國(guó)半殖民地半封建社會(huì) 形成 中國(guó)資本主義產(chǎn)生時(shí)期

程序:“怎么樣?要不考慮下次考試讓我?guī)湍銊澲攸c(diǎn)?”

我:“有的三元組看起來(lái)還挺不錯(cuò)的,但是有的感覺有點(diǎn)奇怪啊。”

程序:“不要在意這些細(xì)節(jié)……那是因?yàn)槟銈兘o我寫的算法還有很多提升空間嗎,但總體質(zhì)量還是不錯(cuò)的?!?/p>

“有了這些結(jié)構(gòu)化的知識(shí),我就可以接著建立知識(shí)圖譜,‘掌握’這些知識(shí)之間的聯(lián)系。”

知識(shí)圖譜長(zhǎng)什么樣呢?它可以理解為實(shí)體之間的網(wǎng)絡(luò),網(wǎng)絡(luò)之間的連邊就是實(shí)體之間的聯(lián)系,做出一張圖來(lái)直觀地感受下:

fig = plt.figure(figsize=(12,8),dpi=100)g_nx = nx.DiGraph()labels = {}for subj, pred, obj in SVOs: g_nx.add_edge(subj,obj) labels[(subj,obj)] = predpos=nx.spring_layout(g_nx)nx.draw_networkx_nodes(g_nx, pos, node_size=300)nx.draw_networkx_edges(g_nx,pos,width=4)nx.draw_networkx_labels(g_nx,pos,font_size=10,font_family='sans-serif')nx.draw_networkx_edge_labels(g_nx, pos, labels , font_size=10, font_family='sans-serif')plt.axis("off")plt.show()

現(xiàn)在,上考場(chǎng)吧

“現(xiàn)在我學(xué)會(huì)了這些知識(shí),就可以建立起問(wèn)答系統(tǒng),回答一些問(wèn)題。出幾個(gè)問(wèn)題來(lái)考考我吧?”

問(wèn)答系統(tǒng)的具體實(shí)現(xiàn)思路可以見我的另一篇博客:https://blog.csdn.net/blmoistawinde/article/details/86556844

QA = NaiveKGQA(SVOs, entity_type_dict=entity_type_dict)questions = ["孫中山干了什么事?","清政府簽訂了哪些條約?","誰(shuí)復(fù)辟了帝制?"]for question0 in questions: print("問(wèn):"+question0) print("答:"+QA.answer(question0))問(wèn):孫中山干了什么事?答:讓位于***、發(fā)動(dòng)護(hù)法運(yùn)動(dòng)、就任臨時(shí)大總統(tǒng)問(wèn):清政府簽訂了哪些條約?答:天津條約、北京條約問(wèn):誰(shuí)復(fù)辟了帝制?答:***

回答得相當(dāng)不錯(cuò)。盡管當(dāng)下這些問(wèn)題是我特地挑選出來(lái)的,確定知識(shí)庫(kù)里有正確的答案。不過(guò)當(dāng)技術(shù)發(fā)展完善,或許有一天,它真的能夠走上考場(chǎng),取得不錯(cuò)的成績(jī)呢。

本文故事純屬虛構(gòu),近綱考砸卻是真事。不過(guò)我會(huì)感謝這門課教給我的歷史教訓(xùn),還有帶給我的本文寫作靈感。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • python
    +關(guān)注

    關(guān)注

    53

    文章

    4753

    瀏覽量

    84079
  • 識(shí)別技術(shù)
    +關(guān)注

    關(guān)注

    0

    文章

    198

    瀏覽量

    19620
  • 自然語(yǔ)言
    +關(guān)注

    關(guān)注

    1

    文章

    279

    瀏覽量

    13295

原文標(biāo)題:《中國(guó)近代史綱要》考試過(guò)關(guān)?Python幫你劃重點(diǎn)

文章出處:【微信號(hào):rgznai100,微信公眾號(hào):rgznai100】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏

    評(píng)論

    相關(guān)推薦

    適配器?輸出電壓異常、紋波過(guò)高、EMI傳導(dǎo)不過(guò)關(guān)?這些竅門管用

    日常生活中,我們經(jīng)常會(huì)接觸到充電器/電源適配器,在使用過(guò)程中會(huì)遇到一些問(wèn)題,比如輸出電壓異常、輸出紋波過(guò)高、EMI傳導(dǎo)不過(guò)關(guān)等情況,我們?cè)撊绾谓鉀Q呢?本文就給大家提供我們的解決思路,敲黑板重點(diǎn)啦!
    的頭像 發(fā)表于 06-07 11:37 ?3034次閱讀
    適配器?輸出電壓異常、紋波過(guò)高、EMI傳導(dǎo)不<b class='flag-5'>過(guò)關(guān)</b>?這些竅門管用

    通信工程師考試培訓(xùn)——老師提到的重點(diǎn)

    通信工程師考試培訓(xùn)——老師提到的重點(diǎn)
    發(fā)表于 08-15 23:16

    CLAD考試過(guò)

    CLAD考試過(guò)了,聽說(shuō)只有電子檔的證書?貌似木有紙質(zhì)證書?是這樣嗎?順便分享下復(fù)習(xí)資料
    發(fā)表于 08-01 16:32

    2021年高壓電工考試報(bào)名及高壓電工考試資料相關(guān)推薦

    題庫(kù)來(lái)源:安全生產(chǎn)模擬考試一點(diǎn)通公眾號(hào)小程序高壓電工考試報(bào)名根據(jù)新高壓電工考試綱要求,安全生產(chǎn)模擬考試一點(diǎn)通將高壓電工模擬
    發(fā)表于 07-09 06:22

    2021年電工(初級(jí))證考試及電工(初級(jí))作業(yè)模擬考試相關(guān)資料分享

    題庫(kù)來(lái)源:安全生產(chǎn)模擬考試一點(diǎn)通公眾號(hào)小程序電工(初級(jí))證考試根據(jù)新電工(初級(jí))考試綱要求,安全生產(chǎn)模擬考試一點(diǎn)通將電工(初級(jí))模擬
    發(fā)表于 07-09 07:14

    2021年電工(初級(jí))報(bào)名考試及電工(初級(jí))考試內(nèi)容相關(guān)資料推薦

    題庫(kù)來(lái)源:安全生產(chǎn)模擬考試一點(diǎn)通公眾號(hào)小程序電工(初級(jí))報(bào)名考試根據(jù)新電工(初級(jí))考試綱要求,安全生產(chǎn)模擬考試一點(diǎn)通將電工(初級(jí))模擬
    發(fā)表于 07-09 08:11

    2021年電工(初級(jí))考試及電工(初級(jí))考試題庫(kù)相關(guān)資料下載

    題庫(kù)來(lái)源:安全生產(chǎn)模擬考試一點(diǎn)通公眾號(hào)小程序電工(初級(jí))考試根據(jù)新電工(初級(jí))考試綱要求,安全生產(chǎn)模擬考試一點(diǎn)通將電工(初級(jí))模擬
    發(fā)表于 07-09 07:01

    平行線和垂直線的導(dǎo)向工具

    結(jié)合國(guó)家電工(初級(jí))考試最新大綱及電工(初級(jí))考試真題匯總,有助于電工(初級(jí))模擬考試題庫(kù)考前練習(xí)。1、【判斷題】()測(cè)量電流時(shí),要根據(jù)電流大小選擇適當(dāng)量程的電流表,不能使電流大于電流表的最大量程。(√)2、【判斷題】角尺是測(cè)量
    發(fā)表于 09-02 08:13

    “十二五”中國(guó)重點(diǎn)發(fā)展太陽(yáng)能熱利用

    中國(guó)“十二五”規(guī)劃綱要于3月14日獲全國(guó)人大批準(zhǔn),此外,綱要中還明確提出“重點(diǎn)發(fā)展太陽(yáng)能熱利用”。
    發(fā)表于 03-23 09:36 ?773次閱讀

    DSP期末考試重點(diǎn)

    DSP期末考試重點(diǎn),大學(xué)期末考試大招,絕招。
    發(fā)表于 01-06 14:47 ?5次下載

    AI不僅能幫你估分、填志愿,還能刷臉給你”驗(yàn)明正身”

    就是不能幫你考試……
    的頭像 發(fā)表于 06-10 11:27 ?2963次閱讀

    python的入門考試題免費(fèi)下載

    本文檔的主要內(nèi)容詳細(xì)介紹的是python的入門考試題免費(fèi)下載。
    發(fā)表于 07-19 08:00 ?13次下載

    Python程序設(shè)計(jì)的考試大綱詳細(xì)資料說(shuō)明

    考試目標(biāo):測(cè)試考生系統(tǒng)掌握 Python 基本概念及其編程思想,了解 Python 計(jì)算生態(tài),利用 Python 進(jìn)行數(shù)據(jù)處理及解決問(wèn)題的能力。考試
    發(fā)表于 12-19 08:00 ?1次下載
    <b class='flag-5'>Python</b>程序設(shè)計(jì)的<b class='flag-5'>考試</b>大綱詳細(xì)資料說(shuō)明

    python二級(jí)考試的選擇復(fù)習(xí)題和答案說(shuō)明

    本文檔的主要內(nèi)容詳細(xì)介紹的是python二級(jí)考試的選擇復(fù)習(xí)題和答案說(shuō)明。
    發(fā)表于 07-02 18:03 ?12次下載
    <b class='flag-5'>python</b>二級(jí)<b class='flag-5'>考試</b>的選擇復(fù)習(xí)題和答案說(shuō)明

    關(guān)于十四五綱要中數(shù)字經(jīng)濟(jì)七大重點(diǎn)產(chǎn)業(yè)介紹

    3月13日,《中華人民共和國(guó)國(guó)民經(jīng)濟(jì)和社會(huì)發(fā)展第十四個(gè)五年規(guī)劃和2035年遠(yuǎn)景目標(biāo)綱要》正式公布,其中“建設(shè)數(shù)字中國(guó)”單列篇章,在該篇章中框定了數(shù)字經(jīng)濟(jì)重點(diǎn)產(chǎn)業(yè)的具體范圍。
    的頭像 發(fā)表于 03-29 11:32 ?3w次閱讀