最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

基于Python實(shí)現(xiàn)西西成語接龍小助手

 更新時間:2022年08月04日 16:57:33   作者:西西嘛呦  
成語接龍是中華民族傳統(tǒng)的文字游戲。本文將用Python制作一個簡單的成語接龍小程序,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以了解一下

介紹

代碼地址:https://github.com/taishan1994/chinese_chengyujielong

讀完該文,你可以收獲:

  • python爬蟲的簡單使用。
  • 構(gòu)建前綴樹以進(jìn)行搜索提示。
  • 構(gòu)建一個簡單的成語接龍小程序。

爬蟲模塊

首先展示下我們最終獲得的成語的數(shù)據(jù):

,成語,拼音,成語解釋,典故出處,近義詞,反義詞,常用程度,感情色彩,語法用法,成語結(jié)構(gòu),產(chǎn)生年代,英文翻譯,成語謎面
0,阿匼取容,ē ǎn qǔ róng,阿匼:一味迎合的樣子。一味巴結(jié)別人以求得他們的喜歡,《新唐書 楊再思傳》:“居宰相十余年,阿匼取容,無所薦達(dá)。”,阿諛取容,剛正不阿,生僻,貶義詞,作謂語、定語;用于人,聯(lián)合式,古代,,
1,阿姑阿翁,ā gū ā wēng,阿:名詞的前綴。姑:丈夫的母親。翁:丈夫的父親。指公公婆婆。,見:“阿家阿翁”。,阿家阿翁,,一般,褒義詞,作主語、賓語;指公公婆婆,聯(lián)合式,近代,father-in-law and mother-in-law,
2,阿嬌金屋,ā jiāo jīn wū,阿嬌:指漢武帝劉徹的姑母(長公主劉嬌)的女兒。原指漢武帝劉徹要用金屋接納阿嬌為婦。這里泛指美麗高貴的女子。,語出舊題漢·班固《漢武故事》:漢武帝幼時曾對姑母長公主說:“若得阿嬌(姑母之女)作婦,當(dāng)以金屋貯之?!?金屋藏嬌,,一般,褒義詞,作賓語、定語;多用于女性,偏正式,古代,,
3,阿家阿翁,ā jiā ā wēng,阿:名詞的前綴。家:通“姑”,丈夫的母親。翁:丈夫的父親。指公公婆婆。,唐·趙璘《因話錄》卷一:“郭暖嘗與升平公主琴瑟不調(diào)。尚父拘暖,自詣朝童結(jié)罪。上召而慰之曰:‘諺云:不癡不聾,不作阿家阿翁。'”,阿公阿婆,,一般,褒義詞,作主語、賓語;指公公婆婆,聯(lián)合式,古代,husband's father and mother,
4,阿平絕倒,ā  píng  jué  dǎo,以之比喻對對方的言論極為佩服。亦用為譏諷言論極為乖謬,常貽笑大方。,據(jù)《晉書·衛(wèi)玠傳》及《王澄傳》載:玠好言玄理?,槴e王澄字平子,兄昵稱之曰:“阿平”。有高名,少所推許,每聞玠言,輒嘆息絕倒。故時為之語曰:“衛(wèi)玠談道,平子絕倒?!?,,一般,,,,,,
5,阿斗太子,ā dǒu tài zǐ,阿斗:三國蜀漢劉備之子劉禪的小名。此人庸碌無能,雖有諸葛亮等人全力扶助,也不能振興蜀漢。指懦弱無能的人,高陽《胡雪巖全傳 燈火樓臺》:“丈夫是個阿斗太子,哪怕你是諸葛亮,也只好嘆口氣?!?扶不起的阿斗,,常用,貶義詞,作主語、賓語、定語;多用于比喻句,偏正式,現(xiàn)代,an ignorant and incapable man <good-for-nothing fellow>,劉禪

每條成語包含以下屬性:成語,拼音,成語解釋,典故出處,近義詞,反義詞,常用程度,感情色彩,語法用法,成語結(jié)構(gòu),產(chǎn)生年代,英文翻譯,成語謎面。具體獲取成語的方式在spider,py里面,直接運(yùn)行parse_url3_detail()即可得到以上數(shù)據(jù)。這里我們?nèi)タ匆幌戮W(wǎng)頁:

我們要先獲取每一頁的初始信息,在get_all_chengyu3()里面注釋的部分就是,在得到之后已經(jīng)將其存儲下來了,接著隨便點(diǎn)擊一個成語,進(jìn)入到具體的詳情頁:

會發(fā)現(xiàn)所有的信息都在帶有class屬性為view_con clearfix的div下,我們可以通過BeautifulSoup的find函數(shù)找到這些標(biāo)簽,比如:div = soup.find("div", {"class":"view_con clearfix"}),然后再進(jìn)一步獲取該標(biāo)簽下的一些數(shù)據(jù):

dl = div.find("dl")
dts = dl.find_all("dt")
dds = dl.find_all("dd")
for dt,dd in zip(dts, dds):
    cate = dt.text.replace('[', '')
    cate = cate.replace(']', '')
    cate = cate.strip()
    content = dd.text
    content = content.strip()

我們可以通過.text來獲取標(biāo)簽包裹的文本,比如

作謂語、定語;用于人

可以得到作謂語、定語;用于人。

前綴樹搜索提示

代碼位于trie.py里面。前綴樹的構(gòu)建很簡單,我們從頭遍歷每一個成語,分別將成語存儲到每一個比字或詞當(dāng)中,在搜索的時候以該字或詞為鍵,直接得到值即可:

# coding:utf-8
"""
利用前綴樹進(jìn)行搜索提示
"""


class TrieTree(object):

    def __init__(self):
        self.dict_trie = dict()

    def add_node(self, word):
        word = word.strip()
        tree = self.dict_trie
        for i in range(1, len(word)+1):
            char = word[:i]
            if char not in tree:
                tree[char] = [word]
            else:
                tree[char].append(word)


    def build_trie_tree(self, cy_list):
        """ 創(chuàng)建 trie 樹 """
        for word in cy_list:
            self.add_node(word)

    def search(self, word):
        """ 搜索給定 word 字符串中與詞典匹配的 entity,
        返回值 None 代表字符串中沒有要找的實(shí)體,
        如果返回字符串,則該字符串就是所要找的詞匯的類型
        """
        tree = self.dict_trie
        res = tree.get(word, None)
        return res


if __name__ == '__main__':
    import pandas as pd
    from pprint import pprint
    trie = TrieTree()
    data = pd.read_csv("data/cycd.csv")
    cys = data["成語"].values.tolist()
    trie.build_trie_tree(cys)
    # pprint(trie.dict_trie)
    print(trie.search("略"))
    
['略不世出', '略地侵城', '略地攻城', '略施小計(jì)', '略無忌憚', '略知一二', '略知皮毛', '略窺一斑', '略勝一籌', '略見一斑', '略遜一籌', '略高一籌', '略識之無', '略跡原心', '略跡原情', '略跡論心']

成語接龍

程序在cyjl.py里面,運(yùn)行之后,我們得到:

==============================
=== 歡迎進(jìn)行西西嘛呦成語接龍游戲 ===
請選擇難度(輸入1(簡單),輸入2(困難))
難度:2

這里的困難模式指西西助手在回答的時候會考慮成語最后一個字在語料庫中開頭出現(xiàn)的次數(shù),返回出現(xiàn)次數(shù)最少的成語來讓你盡可能的回答不上來。然后就會出一個字:

出題: 株

此時,你可以輸入提示來獲取一階段提示,主要是其中一個答案的解釋,還不會,再輸入再提示,會給出該成語的前三個字。還是不會,則輸入看看,則會展示可能的一些結(jié)果(需要注意的是提示的成語可能沒在這個結(jié)果中,因?yàn)槲覀冎环祷厍?個)。接著我們想了解該成語,輸入介紹 成語名,就會展示出該成語的一些信息。其它的一些注意的是,對于輸入空值和不正確的值都進(jìn)行了處理,不會影響程序的運(yùn)行。

出題: 袖
你的回答:提示
提示:成語解釋-- 袖手:藏手于袖中;充耳:塞住耳朵。指不聞不問,漠然置之
你的回答:再提示
提示:前三個字-- 袖手充...
你的回答:看看
['袖中揮拳', '袖手傍觀', '袖手充耳', '袖手旁觀', '袖里乾坤']
你的回答:介紹 袖手充耳
==============================
成語:袖手充耳
拼音:xiù shǒu chōng ěr
成語解釋:袖手:藏手于袖中;充耳:塞住耳朵。指不聞不問,漠然置之
典故出處:清·夏燮《中西紀(jì)事·江上議款》:“既不能誓師討賊,視其力之所能為,則當(dāng)袖手充耳,姑聽命于發(fā)蹤指示之人?!?
近義詞:袖手旁觀、充耳不聞、漠然置之
反義詞:nan
常用程度:一般
感情色彩:褒義詞
語法用法:作謂語、定語;用于處事
成語結(jié)構(gòu):聯(lián)合式
產(chǎn)生年代:近代
英文翻譯:nan
成語謎面:nan
==============================
你的回答:

到此這篇關(guān)于基于Python實(shí)現(xiàn)西西成語接龍小助手 的文章就介紹到這了,更多相關(guān)Python成語接龍內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • python二進(jìn)制串轉(zhuǎn)字符串的方法詳解

    python二進(jìn)制串轉(zhuǎn)字符串的方法詳解

    這篇文章主要介紹了python二進(jìn)制串轉(zhuǎn)字符串的方法詳解,使用json,可以自動檢測編碼,但需要注意的是,它返回的是python對象,不一定是字符串,具體是什么對象要視原始內(nèi)容而定,需要的朋友可以參考下
    2023-11-11
  • pandas時間序列之如何將int轉(zhuǎn)換成datetime格式

    pandas時間序列之如何將int轉(zhuǎn)換成datetime格式

    這篇文章主要介紹了pandas時間序列之如何將int轉(zhuǎn)換成datetime格式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-07-07
  • Python常見文件操作的函數(shù)示例代碼

    Python常見文件操作的函數(shù)示例代碼

    Python常見文件操作的函數(shù)示例代碼,學(xué)習(xí)python的朋友可以參考下。
    2011-11-11
  • Django框架CBV裝飾器中間件auth模塊CSRF跨站請求問題

    Django框架CBV裝飾器中間件auth模塊CSRF跨站請求問題

    這篇文章主要介紹了Django CBV裝飾器 中間件 auth模塊 CSRF跨站請求,本文給大家介紹給CBV添加裝飾器有三種方法,三種方法都需要導(dǎo)入模塊,具體操作方法跟隨小編一起看看考下
    2021-08-08
  • 一文詳解Python灰色預(yù)測模型實(shí)現(xiàn)示例

    一文詳解Python灰色預(yù)測模型實(shí)現(xiàn)示例

    這篇文章主要為大家介紹了Python灰色預(yù)測模型實(shí)現(xiàn)示例解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-02-02
  • Pytorch深度學(xué)習(xí)之實(shí)現(xiàn)病蟲害圖像分類

    Pytorch深度學(xué)習(xí)之實(shí)現(xiàn)病蟲害圖像分類

    PyTorch是一個開源的Python機(jī)器學(xué)習(xí)庫,基于Torch,用于自然語言處理等應(yīng)用程序。它具有強(qiáng)大的GPU加速的張量計(jì)算和自動求導(dǎo)系統(tǒng)的深度神經(jīng)網(wǎng)絡(luò)。本文將介紹如何通過PyTorch實(shí)現(xiàn)病蟲害圖像分類,感興趣的可以學(xué)習(xí)一下
    2021-12-12
  • 詳解Python中用于計(jì)算指數(shù)的exp()方法

    詳解Python中用于計(jì)算指數(shù)的exp()方法

    這篇文章主要介紹了詳解Python中用于計(jì)算指數(shù)的exp()方法,是Python入門中必會的基本方法,需要的朋友可以參考下
    2015-05-05
  • 利用一個簡單的例子窺探CPython內(nèi)核的運(yùn)行機(jī)制

    利用一個簡單的例子窺探CPython內(nèi)核的運(yùn)行機(jī)制

    這篇文章主要介紹了利用一個簡單的例子窺探CPython內(nèi)核的運(yùn)行機(jī)制,作者通過一個簡單的輸出函數(shù)深入、介紹了CPython源碼C代碼中的一些函數(shù),需要的朋友可以參考下
    2015-03-03
  • python __init__與 __new__的區(qū)別

    python __init__與 __new__的區(qū)別

    本文主要介紹了python __init__與 __new__的區(qū)別,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-02-02
  • NumPy 如何生成多維數(shù)組的方法

    NumPy 如何生成多維數(shù)組的方法

    這篇文章主要介紹了NumPy 如何生成多維數(shù)組的方法,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-02-02

最新評論

娄烦县| 奈曼旗| 怀宁县| 陆良县| 阿克陶县| 江油市| 镇安县| 阳曲县| 饶河县| 嘉祥县| 威海市| 洮南市| 哈密市| 班戈县| 荔波县| 福建省| 灵寿县| 古蔺县| 宿州市| 北辰区| 新泰市| 台南市| 铜川市| 灵台县| 资中县| 沾化县| 绥德县| 闽侯县| 吉首市| 晋中市| 青川县| 宝清县| 思南县| 永吉县| 南岸区| 汤阴县| 临城县| 阳新县| 玉田县| 万安县| 芒康县|