亚洲中字慕日产2020,大陆极品少妇内射AAAAAA,无码av大香线蕉伊人久久,久久精品国产亚洲av麻豆网站

資訊專欄INFORMATION COLUMN

用python,生活仍有詩(shī)和遠(yuǎn)方

xiaotianyi / 3314人閱讀

摘要:常聽(tīng)說(shuō),現(xiàn)在的代碼,就和唐朝的詩(shī)一樣重要。推薦使用作為編譯器。代碼具體步驟使用爬蟲(chóng)爬取全唐詩(shī),總共抓取了首。接下來(lái)考慮優(yōu)化模版,提取五言和七言常用句式作為模版。另外考慮使用機(jī)器學(xué)習(xí)的方法,寫(xiě)來(lái)讓計(jì)算機(jī)自動(dòng)生成充滿韻味的詩(shī)

常聽(tīng)說(shuō),現(xiàn)在的代碼,就和唐朝的詩(shī)一樣重要。
可對(duì)我們來(lái)說(shuō),寫(xiě)幾行代碼沒(méi)什么,但是,要讓我們真正地去寫(xiě)一首唐詩(shī),那可就頭大了。。既然如此,為何不干脆用代碼寫(xiě)一首唐詩(shī)?

準(zhǔn)備:

python3.6環(huán)境

推薦使用anaconda管理python包,可以對(duì)于每個(gè)項(xiàng)目,創(chuàng)建環(huán)境,并在該環(huán)境下下載項(xiàng)目需要的包。

推薦使用pycharm作為編譯器。

GitHub代碼:GitHub - theodore3131/TangshiGenerator

具體步驟:

使用爬蟲(chóng)爬取全唐詩(shī),總共抓取了71000首。

#使用urllib3的內(nèi)置函數(shù)構(gòu)建爬蟲(chóng)的安全驗(yàn)證,來(lái)應(yīng)對(duì)網(wǎng)站的反爬蟲(chóng)機(jī)制
http = urllib3.PoolManager(
     cert_reqs="CERT_REQUIRED",
     ca_certs=certifi.where())
#爬蟲(chóng)的目標(biāo)網(wǎng)站
r = http.request("GET", url)
#爬蟲(chóng)獲取的html數(shù)據(jù)
soup = BeautifulSoup(r.data, "html.parser")
content = soup.find("div", class_="contson")

使用正則表達(dá)式對(duì)爬取的數(shù)據(jù)進(jìn)行處理

p1 = r"[u4e00-u9fa5]{5,7}[u3002|uff0c]"  #[漢字]{重復(fù)5-7次}[中文句號(hào)|中文逗號(hào)]
pattern1 = re.compile(p1)        #編譯正則表達(dá)式
result = pattern1.findall(poemfile)   #搜索匹配的字符串,得到匹配列表

對(duì)詩(shī)詞正文進(jìn)行分詞操作

#使用jieba中文分詞庫(kù)的textRank算法來(lái)找出各個(gè)詞性的高頻詞
for x in jieba.analyse.textrank(content, topK=600, allowPOS=("n", "nr", "ns", "nt", "nz", "m")):

唐詩(shī)生成

處理韻腳

使用pinyin庫(kù)
pip install pinyin
verse = pinyin.get("天", format="strip")
#輸出:tian

對(duì)于韻腳,本來(lái)是想找出所有的韻腳并做成字典形式存儲(chǔ)起來(lái),但韻腳總共有20多個(gè),
后來(lái)發(fā)現(xiàn)其實(shí)20多個(gè)韻腳都是以元音字母開(kāi)始的,我們可以基于這個(gè)規(guī)則來(lái)判斷:

rhythm = ""
rhythmList = ["a", "e", "i", "o", "u"]
verse = pinyin.get(nounlist[i1][1], format="strip")
#韻腳在每個(gè)pinyin倒敘最后一個(gè)元音字母處截止
          for p in range(len(verse)-1, -1, -1):
              if verse[p] in rhythmList:
                  ind = p

      rhythm = verse[ind:len(verse)]

目前是最初級(jí)的五言律詩(shī),且為名動(dòng)名句式

rhythm = ""
rhythmList = ["a", "e", "i", "o", "u"]
while num < 4:
#生成隨機(jī)數(shù)
        i = random.randint(1, len(nounlist)-1)
      i1 = random.randint(1, len(nounlist)-1)
      j = random.randint(1, len(verblist)-1)

#記錄韻腳
      ind = 0
      ind1 = 0
      if (num == 1):
          rhythm = ""
          verse = pinyin.get(nounlist[i1][1], format="strip")
#韻腳在每個(gè)pinyin倒敘最后一個(gè)元音字母處截止
          for p in range(len(verse)-1, -1, -1):
              if verse[p] in rhythmList:
                  ind = p

      rhythm = verse[ind:len(verse)]
#確保2,4句的韻腳相同,保證押韻
      if (num == 3):
          ind1 = 0
          verse1 = pinyin.get(nounlist[i1][1], format="strip")
          for p in range(len(verse1)-1, -1, -1):
                if verse1[p] in rhythmList:
                   ind1 = p

            while verse1[ind1: len(verse1)] != rhythm:
                i1 = random.randint(1, len(nounlist)-1)
                verse1 = pinyin.get(nounlist[i1][1], format="strip")
                for p in range(len(verse1)-1, -1, -1):
                    if verse1[p] in rhythmList:
                        ind1 = p
#隨機(jī)排列組合
     print(nounlist[i]+verblist[j][1]+nounlist[i1])
     num += 1
藏頭詩(shī)

其實(shí)思路很簡(jiǎn)單,既然我們有了語(yǔ)料庫(kù),那么,我們每次在排列組合詞的時(shí)候,只需保證生成每句時(shí),第一個(gè)名詞的第一個(gè)字,是按序給定四字成語(yǔ)中的即可

for x in range(len(nounlist)):
      if nounlist[x][0] == str[num]:
          i = x

來(lái)看一下結(jié)果:

四言詩(shī):

所思浮云
關(guān)山車馬
高樓流水
閑人腸斷

五言律詩(shī):

西風(fēng)時(shí)細(xì)雨
山川釣建章
龍門看蕭索
幾年鄉(xiāng)斜陽(yáng)

藏頭詩(shī):

落花流水

落暉首南宮
花枝成公子
流水名朝廷
水聲勝白石

參考:

https://segmentfault.com/a/11...

當(dāng)然,現(xiàn)在生成的唐詩(shī)還是比較低級(jí)的,屬于基礎(chǔ)的古詩(shī)文詞語(yǔ)排列組合。
接下來(lái)考慮優(yōu)化模版,提取五言和七言常用句式作為模版。
另外考慮使用機(jī)器學(xué)習(xí)的方法,寫(xiě)RNN來(lái)讓計(jì)算機(jī)自動(dòng)生成充滿韻味的詩(shī)

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://www.ezyhdfw.cn/yun/41365.html

相關(guān)文章

  • 高曉松:區(qū)塊鏈也可以有詩(shī)遠(yuǎn)方

    摘要:如果使用區(qū)塊鏈技術(shù)則可以降低使用版權(quán)的門檻。價(jià)值化,藝人利益得到保證高曉松在談到區(qū)塊鏈時(shí),也贊成藝人發(fā)行來(lái)跳過(guò)娛樂(lè)公司。通過(guò)區(qū)塊鏈技術(shù)藝人可以更加貼合粉絲,創(chuàng)造出更高效的內(nèi)容推薦和特色化的消費(fèi)產(chǎn)品與服務(wù)體驗(yàn)。 2019年1月3日,高曉松的《曉說(shuō)》在朋友圈刷屏了。 這次高曉松沒(méi)有談風(fēng)花雪月、詩(shī)與遠(yuǎn)方,而是在其母校清華大學(xué)的教室里,跟學(xué)弟學(xué)妹們深入淺出地聊起了區(qū)塊鏈在文娛產(chǎn)業(yè)的革命。 在傳...

    frank_fun 評(píng)論0 收藏0
  • 高曉松:區(qū)塊鏈也可以有詩(shī)遠(yuǎn)方

    摘要:如果使用區(qū)塊鏈技術(shù)則可以降低使用版權(quán)的門檻。價(jià)值化,藝人利益得到保證高曉松在談到區(qū)塊鏈時(shí),也贊成藝人發(fā)行來(lái)跳過(guò)娛樂(lè)公司。通過(guò)區(qū)塊鏈技術(shù)藝人可以更加貼合粉絲,創(chuàng)造出更高效的內(nèi)容推薦和特色化的消費(fèi)產(chǎn)品與服務(wù)體驗(yàn)。 2019年1月3日,高曉松的《曉說(shuō)》在朋友圈刷屏了。 這次高曉松沒(méi)有談風(fēng)花雪月、詩(shī)與遠(yuǎn)方,而是在其母校清華大學(xué)的教室里,跟學(xué)弟學(xué)妹們深入淺出地聊起了區(qū)塊鏈在文娛產(chǎn)業(yè)的革命。 在傳...

    DDreach 評(píng)論0 收藏0
  • 2016年總結(jié) - 收藏集 - 掘金

    摘要:然而這次的文章,就像賀師俊所說(shuō)的這篇文章是從程序員這個(gè)老年度總結(jié)前端掘金年對(duì)我來(lái)說(shuō),是重要的一年。博客導(dǎo)讀總結(jié)個(gè)人感悟掘金此文著筆之時(shí),已經(jīng)在眼前了。今天,我就來(lái)整理一篇,我個(gè)人認(rèn)為的年對(duì)開(kāi)發(fā)有年終總結(jié)掘金又到 2016 Top 10 Android Library - 掘金 過(guò)去的 2016 年,開(kāi)源社區(qū)異?;钴S,很多個(gè)人與公司爭(zhēng)相開(kāi)源自己的項(xiàng)目,讓人眼花繚亂,然而有些項(xiàng)目只是曇花一...

    DataPipeline 評(píng)論0 收藏0
  • 干貨 | 區(qū)塊鏈快速通道:從技術(shù)原理到應(yīng)落地

    摘要:萬(wàn)云專注于將區(qū)塊鏈技術(shù)應(yīng)用于各個(gè)行業(yè),促進(jìn)區(qū)塊鏈在業(yè)務(wù)中的真正落地。共識(shí)算法是區(qū)塊鏈比較核心的技術(shù)之一,保證區(qū)塊一致性是其主要作用。 作者:萬(wàn)云首席架構(gòu)師兼產(chǎn)品總監(jiān)李晨原文鏈接:http://mp.weixin.qq.com/s/snl...如需轉(zhuǎn)載請(qǐng)聯(lián)系萬(wàn)云官方微信:萬(wàn)云Wancloud 2018年開(kāi)始,好像所有的人都在談?wù)搮^(qū)塊鏈,資本、精英、草根不斷進(jìn)場(chǎng)投身到區(qū)塊鏈的浪潮之中。在外...

    noONE 評(píng)論0 收藏0
  • 寫(xiě)給初入門/半路出家的前端er

    摘要:半路出家的前端程序員應(yīng)該不在少數(shù),我也是其中之一。年,馮馮同事兼師兄看我寫(xiě)太費(fèi)勁,跟我說(shuō)對(duì)面樓在找,問(wèn)我要不要學(xué),說(shuō)出來(lái)可能有點(diǎn)丟人,但是在那之前,我真得不知道什么是,什么是。 半路出家的前端程序員應(yīng)該不在少數(shù),我也是其中之一。 為何會(huì)走向前端 非計(jì)算機(jī)專業(yè)的我,畢業(yè)之后,就職于一家電力行業(yè)公司,做過(guò)設(shè)備調(diào)試、部門助理、測(cè)試,也寫(xiě)過(guò)一段時(shí)間的QT,那三年的時(shí)間,最難過(guò)的不是工作忙不忙,...

    Cc_2011 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<