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...