真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

基于循環(huán)神經(jīng)網(wǎng)絡(luò)(RNN)的古詩(shī)生成器-創(chuàng)新互聯(lián)

基于循環(huán)神經(jīng)網(wǎng)絡(luò)(RNN)的古詩(shī)生成器,具體內(nèi)容如下

創(chuàng)新互聯(lián)建站是一家專注于網(wǎng)站建設(shè)、做網(wǎng)站與策劃設(shè)計(jì),天臺(tái)網(wǎng)站建設(shè)哪家好?創(chuàng)新互聯(lián)建站做網(wǎng)站,專注于網(wǎng)站建設(shè)十多年,網(wǎng)設(shè)計(jì)領(lǐng)域的專業(yè)建站公司;建站業(yè)務(wù)涵蓋:天臺(tái)等地區(qū)。天臺(tái)做網(wǎng)站價(jià)格咨詢:13518219792

之前在手機(jī)百度上看到有個(gè)“為你寫(xiě)詩(shī)”功能,能夠隨機(jī)生成古詩(shī),當(dāng)時(shí)感覺(jué)很酷炫= =

在學(xué)習(xí)了深度學(xué)習(xí)后,了解了一下原理,打算自己做個(gè)實(shí)現(xiàn)練練手,于是,就有了這個(gè)項(xiàng)目。文中如有瑕疵紕漏之處,還請(qǐng)路過(guò)的諸位大佬不吝賜教,萬(wàn)分感謝!

使用循環(huán)神經(jīng)網(wǎng)絡(luò)實(shí)現(xiàn)的古詩(shī)生成器,能夠完成古體詩(shī)的自動(dòng)生成。我簡(jiǎn)單地訓(xùn)練了一下,格式是對(duì)上了,至于意境么。。。emmm,呵呵

舉一下模型測(cè)試結(jié)果例子:

1.生成古體詩(shī)

示例1:

樹(shù)陰飛盡水三依,謾自為能厚景奇。
莫怪仙舟欲西望,楚人今此惜春風(fēng)。


示例2:

巖外前苗點(diǎn)有泉,紫崖煙靄碧芊芊。
似僧月明秋更好,一蹤顏事欲猶傷?


2.生成藏頭詩(shī)(以“神策”為例)

示例1:

神照隆祭測(cè)馨塵,策紫瓏氳羽團(tuán)娟。


示例2:

神輦鶯滿花臺(tái)潭,策窮漸見(jiàn)仙君地。


下面記錄項(xiàng)目實(shí)現(xiàn)過(guò)程(由于都是文本處理方面,跟前一個(gè)項(xiàng)目存在很多類似的內(nèi)容,對(duì)于這部分內(nèi)容,我就只簡(jiǎn)單提一下,不展開(kāi)了,新的東西再具體說(shuō)):

1.數(shù)據(jù)預(yù)處理

數(shù)據(jù)集使用四萬(wàn)首的唐詩(shī)訓(xùn)練集,可以點(diǎn)擊這里進(jìn)行下載。

數(shù)據(jù)預(yù)處理的過(guò)程與前一個(gè)項(xiàng)目TensorFlow練手項(xiàng)目一:使用循環(huán)神經(jīng)網(wǎng)絡(luò)(RNN)實(shí)現(xiàn)影評(píng)情感分類大同小異,可以參考前一個(gè)項(xiàng)目,這里就不多說(shuō)了,直接上代碼。

# -*- coding: utf-8 -*-
# @Time : 18-3-13 上午11:04
# @Author : AaronJny
# @Email : Aaron__7@163.com
import sys

reload(sys)
sys.setdefaultencoding('utf8')
import collections

ORIGIN_DATA = 'origin_data/poetry.txt' # 源數(shù)據(jù)路徑

OUTPUT_DATA = 'processed_data/poetry.txt' # 輸出向量路徑

VOCAB_DATA = 'vocab/poetry.vocab'


def word_to_id(word, id_dict):
 if word in id_dict:
  return id_dict[word]
 else:
  return id_dict['']


poetry_list = [] # 存放唐詩(shī)的數(shù)組

# 從文件中讀取唐詩(shī)
with open(ORIGIN_DATA, 'r') as f:
 f_lines = f.readlines()
 print '唐詩(shī)總數(shù) : {}'.format(len(f_lines))
 # 逐行進(jìn)行處理
 for line in f_lines:
  # 去除前后空白符,轉(zhuǎn)碼
  strip_line = line.strip().decode('utf8')
  try:
   # 將唐詩(shī)分為標(biāo)題和內(nèi)容
   title, content = strip_line.split(':')
  except:
   # 出現(xiàn)多個(gè)':'的將被舍棄
   continue
  # 去除內(nèi)容中的空格
  content = content.strip().replace(' ', '')
  # 舍棄含有非法字符的唐詩(shī)
  if '(' in content or '(' in content or '<' in content or '《' in content or '_' in content or '[' in content:
   continue
  # 舍棄過(guò)短或過(guò)長(zhǎng)的唐詩(shī)
  lenth = len(content)
  if lenth < 20 or lenth > 100:
   continue
  # 加入列表
  poetry_list.append('s' + content + 'e')

print '用于訓(xùn)練的唐詩(shī)數(shù) : {}'.format(len(poetry_list))

poetry_list=sorted(poetry_list,key=lambda x:len(x))

words_list = []
# 獲取唐詩(shī)中所有的字符
for poetry in poetry_list:
 words_list.extend([word for word in poetry])
# 統(tǒng)計(jì)其出現(xiàn)的次數(shù)
counter = collections.Counter(words_list)
# 排序
sorted_words = sorted(counter.items(), key=lambda x: x[1], reverse=True)
# 獲得出現(xiàn)次數(shù)降序排列的字符列表
words_list = [''] + [x[0] for x in sorted_words]
# 這里選擇保留高頻詞的數(shù)目,詞只有不到七千個(gè),所以我全部保留
words_list = words_list[:len(words_list)]

print '詞匯表大小 : {}'.format(words_list)

with open(VOCAB_DATA, 'w') as f:
 for word in words_list:
  f.write(word + '\n')

# 生成單詞到id的映射
word_id_dict = dict(zip(words_list, range(len(words_list))))
# 將poetry_list轉(zhuǎn)換成向量形式
id_list=[]
for poetry in poetry_list:
 id_list.append([str(word_to_id(word,word_id_dict)) for word in poetry])

# 將向量寫(xiě)入文件
with open(OUTPUT_DATA, 'w') as f:
 for id_l in id_list:
  f.write(' '.join(id_l) + '\n')


新聞名稱:基于循環(huán)神經(jīng)網(wǎng)絡(luò)(RNN)的古詩(shī)生成器-創(chuàng)新互聯(lián)
網(wǎng)站路徑:http://weahome.cn/article/jjgdg.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部