1. 程式人生 > >基於seq2seq的中國對聯自動配對技術實踐

基於seq2seq的中國對聯自動配對技術實踐

Sequence to Sequence模型這種基於編碼--解碼的模型已經被谷歌成功應用於機器翻譯上。而理論上任意的序列到序列的有監督問題都可以用這種模型。如上一篇文章寫的古詩生成。包括這一篇實踐性的對聯配對。

對對聯生成過程中,需要使用LSTM來實現,然後需要設定其編碼與解碼的相關引數。如下所示:

# 建立基本的LSTM單元
cells = [tf.contrib.rnn.DropoutWrapper(
        tf.contrib.rnn.BasicLSTMCell(embedding_dim), output_keep_prob=keep_prob
    ) for i in range(3)]

stacked_lstm = tf.contrib.rnn.MultiRNNCell(cells)

with tf.variable_scope('decoders') as scope:
    # feed_previous=False, for training
    decode_outputs, decode_state = tf.contrib.legacy_seq2seq.embedding_rnn_seq2seq(
        encode_input,
        decode_input,
        stacked_lstm,
        num_encoder_symbols=input_vocab_size,
        num_decoder_symbols=output_vocab_size,
        embedding_size=embedding_dim)
    
    scope.reuse_variables()
    
    decode_outputs_test, decode_state_test = tf.contrib.legacy_seq2seq.embedding_rnn_seq2seq(
        encode_input,
        decode_input,
        stacked_lstm,
        num_encoder_symbols=input_vocab_size,
        num_decoder_symbols=output_vocab_size,
        embedding_size=embedding_dim,
        feed_previous=True)

loss_weights = [tf.ones_like(l, dtype=tf.float32) for l in labels]
loss = tf.contrib.legacy_seq2seq.sequence_loss(decode_outputs, labels, loss_weights, output_vocab_size)

optimizer = tf.train.AdamOptimizer(0.001)
train_op = optimizer.minimize(loss)

(2) 測試例子如下:其中掛號內為原有的配對。

測試例子:
悼念先嚴三週年▁▁▁(痛表後生一片心▁▁▁) -> 詩留人間百年詩▁▁▁
百歲人歌長壽酒▁▁▁(萬載花開太平春▁▁▁) -> 千秋再愛自長春▁▁▁
黃花釀酒三杯醉▁▁▁(繡閣增輝兩燭燃▁▁▁) -> 碧水池霜百歲人▁▁▁
豔陽照大廈春華競發▁(甘露灑人間瑞氣勃生▁) -> 看日開新地壯天更高▁
延齡人種神仙草▁▁▁(紀竹新開甲子花▁▁▁) -> 蜜月欣逢百歲圖▁▁▁

測試例子:
白髮朱顏喜登上壽▁▁(豐衣足食樂享晚年▁▁) -> 豐山足食享享高秋▁▁
體健神恰晚景好▁▁▁(書聲墨韻老來紅▁▁▁) -> 天明萱草喜無鴦▁▁▁
大好良辰春光明媚▁▁(重開令甲上壽期頤▁▁) -> 文明盛世喜此如山▁▁
寶馬迎來雲外客▁▁▁(香車送出月中仙▁▁▁) -> 金牛犁棟喜雄風▁▁▁
蓮子杯中金各酒▁▁▁(桃花盞上玉臺詩▁▁▁) -> 桃香嫩柳柳絲凰▁▁▁

測試例子:
賞燈極樂繁華地▁▁▁(秉燈同遊不夜天▁▁▁) -> 養手同來幸福花▁▁▁
寒笳送走人間臘▁▁▁(曉角吹迴雪裡春▁▁▁) -> 夜雨梅花蝶蘿香▁▁▁
知識鼓滿青春風帆▁▁(勞動展開愛情羽翼▁▁) -> 赤策文章浩氣清風▁▁
貯在玉壺由人造▁▁▁(結成晶塊奪天工▁▁▁) -> 誓知甘作口子餘▁▁▁
灰飛薛管聲諧鳳▁▁▁(玉種藍田兆夢熊▁▁▁) -> 何潔堪媳薦良侖▁▁▁

針對這兩種測試,也驗證了人工智慧是否真的會創作。利用這種seq2seq寫出的古詩或者對聯,的確會出現訓練集合外的句子,非常有意思,完全是創作的味道。不過呢,目前的僅僅還是測試例子,對語義上有些地方,特別是裡面的思想和語義理解還有待深入。這可能需要更多的知識、常識、典故等的配合。

相關推薦

基於seq2seq中國對聯自動配對技術實踐

Sequence to Sequence模型這種基於編碼--解碼的模型已經被谷歌成功應用於機器翻譯上。而理論上任意的序列到序列的有監督問題都可以用這種模型。如上一篇文章寫的古詩生成。包括這一篇實踐性的對聯配對。 對對聯生成過程中,需要使用LSTM來實現,然後需要設定其編

基於seq2seq中國古詩詞自動生成技術

文字生成技術是深度學習賦予自然語言處理一項全新的技術,而剛好網上有這方面諸多的例子,因此趁著有空實現一下中國古詩的自動生成技術,還是挺好玩的。 具體步驟主要包括以下幾點: (1) 準備語料庫,即對據有的古詩進行獲取。 (2) 生成關鍵詞,並進行詞向量轉化。 (3

基於插件的日誌采集技術實踐》幻燈片下載

日誌插件OSSIM長期以來,大家在收集華為交換機日誌是往往通過syslog協議轉發的方式,將華為&思科交換機日誌轉發到日誌收集器上,簡單存儲,但這樣並沒有將日誌標準化,也就是OSSIM中對日誌的歸一化處理,本課程對這種過程進行了詳細分析。 PDF下載地址: http://down.51cto.com/3509

雲上拍客梨視頻 基於阿裏雲的技術實踐分享

CI scim .com 覆蓋 nbsp acf AC 個性 雲架構 摘要: 梨視頻大部分的業務都選擇了阿裏雲,其中一個主要原因是阿裏雲提供基於釘釘群構建的24貼身技術支持,劉雋表示,這種服務模式可以更充分、高效的對接需求,快速得到反饋,這也讓梨視頻的同學有信心去嘗試一些新

服務上億用戶,中國結算新一代數據集市技術實踐

類型 小型 依據 過程 app 轉碼 算法 設置 存檔 作者介紹:盧向澄金融科技領域十余年工作經驗,目前在中國證券登記結算公司從事技術架構工作,專註於技術中臺、雲平臺、大數據平臺等領域。 1.背景介紹我國股市約有1.2億散戶,直接關乎上億家庭、數億人切身利益,保護好投資者尤

基於深度學習的CT影象肺結節自動檢測技術六—模型預測

#模型預測的相關功能 from chapter4 import get_unet from chapter5 import get_3dnnnet, stack_2dcube_to_3darray, prepare_image_for_net3D, MEAN_

基於深度學習的CT影象肺結節自動檢測技術五—3dcnn優化模型

import os import random from keras import layers from keras import backend as K from keras.layers import Input, Convolution3D, MaxP

基於深度學習的CT影象肺結節自動檢測技術一——資料預處理(歸一化,資料增強,資料標記)

開發環境 Anaconda:jupyter notebook /pycharm pip install SimpleItk # 讀取CT醫學影象 pip install tqdm # 可擴充套件的Python進度條,封裝

《物聯網技術實踐教程基於藍芽4》下載

2018年11月01日 20:38:18 時光一去 閱讀數:2 標籤: 程式設計 資料 區塊鏈

Tensorflow 自動文摘: 基於Seq2Seq+Attention模型的Textsum模型

簡介 這篇文章中我們將基於Tensorflow的Seq2Seq+Attention模型,介紹如何訓練一箇中文的自動生成新聞標題的模型。自動總結(Automatic Summarization)型別的模型一直是研究熱點。 直接抽出重要的句子的抽取式方法較為簡單,有

基於MTCNN的人臉自動對齊技術原理及其Tensorflow實現測試

        人臉識別是計算機視覺研究領域的一個熱點。而人臉識別包含了諸多步驟,其實現技術流程如下圖所示(摘自http://www.techshino.com/upfiles/images/%E4%BA%BA%E8%84%B8%E8%AF%86%E5%88%AB%E6%8

基於深度學習的CT影象肺結節自動檢測技術四—資料增強—定義神經網路並訓練

開發環境 jupyter notebook # -- coding: utf-8 -- #訓練影象分割網路(u-net)模型 import csv import glob import random import cv2 import numpy import

【視訊】基於React Native的跨三端技術實踐

前言今天由京東 @ 劉威在今年 FEDAY 分享的《基於React Native的跨三端技術實踐

基於Spark的公安大資料實時運維技術實踐

宣告:本文為《程式設計師》原創文章,未經允許不得轉載,更多精彩文章請訂閱2017年《程式設計師》。  作者:秦海龍,杭州以數科技有限公司大資料工程師。Java及Scala語言,Hadoop生態、Spark大資料處理技術愛好者。  責編:郭芮,關注大資料領域,尋求報道或投稿

基於微服務架構的技術實踐(附PPT)

轉載:https://mp.weixin.qq.com/s?__biz=MzI5MDEzMzg5Nw==&mid=2660392863&idx=1&sn=d27ebf7a5d07883aeeaf886f0817eaa4&mpshare=1&a

雲上拍客梨視訊 基於阿里雲的技術實踐分享

摘要: 梨視訊大部分的業務都選擇了阿里雲,其中一個主要原因是阿里雲提供基於釘釘群構建的24貼身技術支援,劉雋表示,這種服務模式可以更充分、高效的對接需求,快速得到反饋,這也讓梨視訊的同學有信心去嘗試一些新的方案。在上海雲棲大會視訊專場中,梨視訊CTO劉雋先生分享了梨視訊拍客生

基於深度學習的CT影象肺結節自動檢測技術二——訓練資料處理

開發環境 Anaconda:jupyter notebook/pycharm pip install dicom # 用於讀取 dicom 圖片(version0.9.9) pip install SimpleItk # 讀

DEVOPS技術實踐_02:jenkins自動構建項目

數據 dmi num 1.2 ati check tabbar 文件 end 一、用戶名密碼錯誤 打開jenkins發現用戶名密碼錯誤,解決 1.1 找到config.xml文件 [[email protected] ~]# ll -a drwxr-x

基於kubernetes自研容器管理平臺的技術實踐

一、容器雲的背景 伴隨著微服務的架構的普及,結合開源的Dubbo和Spring Cloud等微服務框架,宜信內部很多業務線逐漸了從原來的單體架構逐漸轉移到微服務架構。應用從有狀態到無狀態,具體來說將業務狀態資料如:會話、使用者資料等儲存到中介軟體中服務中。 微服務的拆分雖然將每個服務的複雜度降低,但

雲上視訊業務基於邊緣容器的技術實踐

視訊閘道器是視訊雲系統下的一個邊緣容器裝置,它起著將視訊資料承上啟下的功能。 ## 視訊雲 說到邊緣視訊閘道器就不得不提到雲端計算中的視訊雲,它是各領域的視訊系統比如安防監控等向著智慧化、物聯網、上雲發展的產物。 在雲平臺上通過雲伺服器和邊緣視訊裝置將採集的視訊輸出編碼後經過網路實時傳輸給終端,終端進行