Python實戰案例 寫唐詩

2021-10-10 06:01:10 字數 2687 閱讀 1746

pip3 uninstall gensim # 這裡如果沒有安裝著不需要解除安裝

pip3 install gensim==3.8.1

from gensim.models import word2vec

from random import choice

import warnings

warnings.filterwarnings(

'ignore'

)# 不列印警告

"""配置"""

path =

'古詩詞.txt'

window =

14min_count =

46# 過濾低頻字

size =

100# 詞向量維度

topn =

50# 生成詩詞的開放度

# path = '春聯.txt'

# window = 10

# min_count = 29

# size = 120

# topn = 11

literary_form =

"""資料讀取"""

with

open

(path, encoding=

'utf-8'

)as f:

ls_of_ls_of_c =

[list

(line.strip())

for line in f]

"""建模訓練"""

model = word2vec(ls_of_ls_of_c, size=

140, window=window, min_count=min_count)

chr_dict = model.wv.index2word

"""文字序列生成"""

defpoem_generator

(title, form)

:filter

=lambda lst:

[t[0

]for t in lst if t[0]

notin

[','

,'。']]

# 標題補全

iflen

(title)

<4:

ifnot title:

title += choice(chr_dict)

for _ in

range(4

-len

(title)):

similar_chr =

filter

(model.similar_by_word(title[-1

], topn //2)

) char = choice(

[c for c in similar_chr if c not

in title]

) title += char

# 文字生成

poem =

list

(title)

[-window:

]for i in

range

(form[0]

):for _ in

range

(form[1]

):predict_chr = model.predict_output_word(poem[

-window:],

max(topn,

len(poem)+1

))predict_chr =

filter

(predict_chr)

char = choice(

[c for c in predict_chr if c not

in poem]

)','

if i %2==

0else

'。')

length = form[0]

*(form[1]

+1)return

'《%s》'%''

.join(poem[

:-length])+

'\n'+''

.join(poem[

-length:])

if __name__ ==

'__main__'

:while

true

: title =

input()

.strip(

) poem5 = poem_generator(title, literary_form[

'五言絕句'])

print

('\033[035m'

, poem5,

'\033[0m'

, sep='')

poem7 = poem_generator(title, literary_form[

'七言絕句'])

print

('\033[033m'

, poem7,

'\033[0m'

, sep='')

poem9 = poem_generator(title, literary_form[

'對聯'])

print

('\033[036m'

, poem9,

'\033[0m'

, sep='')

print

()

Python文字整理案例分析 《全唐詩》文字整理

全唐詩文字語料在 全唐詩.txt 檔案中,請參考語料閱讀以下內容。我們計畫將 全唐詩 中的每一首詩的各種資訊分別提取出來,並轉存為csv的形式。根據對文字的初步了解,我們發現我們需要提取的資訊 即絕大部分詩文都包含的共性資訊 包括 雖然有的詩並沒有作者 例如卷899 19 但是在整體結構設計的時候不...

python爬蟲實戰 貓眼電影案例

背景 抓包ajax非同步載入的網頁,載入資料的url需要通過抓包獲取。一般確認是否非同步載入,只需要右鍵開啟網頁源 如果原始碼文字內容與前端展示的結果不一致,則屬於非同步載入。這時需要按f12開啟開發者工具的network,重新重新整理網頁,就能看到真正的url。如下圖所示,開發者工具中紅色框的ur...

Python操作MySQL實戰案例講解

使用python的pymysql庫連線mysql資料庫 匯入pymysql import pymysql 連線mysql資料庫 輸入資料庫的ip位址,使用者名稱,密碼,埠 db pymysql.connect host 127.0.0.1 user root passwd root port 330...