精华内容
下载资源
问答
  • Python词向量gensim文本生成,训练【一分钟】,诗词歌赋【一秒生成】
  • Python程序写诗【训练1分钟】古诗生成

    万次阅读 多人点赞 2019-02-01 14:33:15
    原创AI程序写诗:训练 一分钟 ,诗词一秒成! 先看看写出来什么诗~ 文章目录 来看看程序 语料下载地址 关于程序的一些基础 更多诗词创作 山水田园 宫廷 别塞战争 抒情 春节 来看看程序 from gensim . ...
    原创AI程序写诗:训练 一分钟,诗词一秒成!
    先看看写出来什么诗~
    在这里插入图片描述

    来看看程序

    from gensim.models import Word2Vec  # 词向量
    from random import choice
    from os.path import exists
    from warnings import filterwarnings
    filterwarnings('ignore')  # 不打印警告
    
    
    class CONF:
        path = '古诗词.txt'  # 语料路径
        window = 16  # 滑窗大小
        min_count = 60  # 过滤低频字
        size = 125  # 词向量维度
        topn = 14  # 生成诗词的开放度
        model_path = 'word2vec'  # 模型路径
    
    
    class Model:
        def __init__(self, window, topn, model):
            self.window = window
            self.topn = topn
            self.model = model  # 词向量模型
            self.chr_dict = model.wv.index2word  # 字典
    
        """模型初始化"""
        @classmethod
        def initialize(cls, config):
            if exists(config.model_path):
                # 模型读取
                model = Word2Vec.load(config.model_path)
            else:
                # 语料读取
                with open(config.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, config.size,
                                 window=config.window, min_count=config.min_count)
                model.save(config.model_path)
            return cls(config.window, config.topn, model)
    
        """古诗词生成"""
        def poem_generator(self, title, form):
            # list_of_tuples --> list_of_strings 并过滤标点符号
            filter = lambda lst: [t[0] for t in lst if t[0] not in [',', '。']]
            # 标题补全
            if len(title) < 4:
                if not title:
                    title += choice(self.chr_dict)
                for _ in range(4 - len(title)):
                    chrs = self.model.similar_by_word(title[-1], self.topn // 2)
                    chrs = filter(chrs)
                    char = choice([c for c in chrs if c not in title])
                    title += char
            # 文本生成
            seq = list(title)
            for i in range(form[0]):
                for _ in range(form[1]):
                    chrs = self.model.predict_output_word(
                        seq[-self.window:], max(self.topn, len(seq) + 1))
                    chrs = filter(chrs)
                    char = choice([c for c in chrs if c not in seq[len(title):]])
                    seq.append(char)
                seq.append(',' if i % 2 == 0 else '。')
            # 返回标题+主体
            length = form[0] * (form[1] + 1)
            title = '《%s》' % ''.join(seq[:-length])
            poem = ''.join(seq[-length:])
            return title + '\n' + poem
    
    
    def main(config=CONF):
        form = {'五言绝句': (4, 5), '七言绝句': (4, 7), '对联': (2, 9)}
        m = Model.initialize(config)
        while True:
            title = input('输入标题:').strip()
            try:
                poem = m.poem_generator(title, form['五言绝句'])
                print('\033[031m%s\033[0m' % poem)  # red
                poem = m.poem_generator(title, form['七言绝句'])
                print('\033[033m%s\033[0m' % poem)  # yellow
                poem = m.poem_generator(title, form['对联'])
                print('\033[036m%s\033[0m' % poem)  # purple
                print()
            except:
                pass
    
    
    if __name__ == '__main__':
        main()
    

    语料下载地址

    https://gitee.com/arye/dl/tree/master/NLP/gensim%E6%96%87%E6%9C%AC%E7%94%9F%E6%88%90

    关于程序的一些基础

    猛戳→gensim词向量基础

    更多诗词创作

    山水田园

    在这里插入图片描述
    在这里插入图片描述

    宫廷

    在这里插入图片描述

    别塞战争

    在这里插入图片描述

    抒情

    在这里插入图片描述
    在这里插入图片描述

    春节

    在这里插入图片描述

    展开全文
  • 用RNN做了一个自动写诗程序,包含已经训练好的model,可以直接运行,训练数据也包含在里面
  • Python制作古诗生成器

    千次阅读 2019-05-27 21:00:31
    唐诗是我们中国的古老传承,但是现在欣赏它的越来越少了,所以今天我们就来用Python做一个古诗生成器,以此来弘扬我国传统文化~ 准备: Python3.6环境 安装谷歌的word2vec模块 推荐使用Pycha...

    前言:

              从学习Python这款语言开始,小编就感觉它真是无所不能呢!唐诗是我们中国的古老传承,但是现在欣赏它的越来越少了,所以今天我们就来用Python做一个古诗生成器,以此来弘扬我国传统文化~

    准备:

    • Python3.6环境
    • 安装谷歌的word2vec模块
    • 推荐使用Pycharm作为编译器

    具体步骤:

    使用scrapy爬取古诗词网,总共爬取唐诗5000首

    代码如下:
    # -*- coding: utf-8 -*-
    import scrapy
    from quotesbot.items import ShiciItem
    import re
    
    class TextSpider(scrapy.Spider):
        name = 'XYX'
        start_urls = ['https://so.gushiwen.org/search.aspx?page=1',
                      'https://so.gushiwen.org/search.aspx?page=2',
                      'https://so.gushiwen.org/search.aspx?page=3',
                      'https://so.gushiwen.org/search.aspx?page=4',
                      'https://so.gushiwen.org/search.aspx?page=5',
                       'https://so.gushiwen.org/search.aspx?page=6',
                      'https://so.gushiwen.org/search.aspx?page=7',
                      'https://so.gushiwen.org/search.aspx?page=8',
                      'https://so.gushiwen.org/search.aspx?page=9',
                      'https://so.gushiwen.org/search.aspx?page=10',
                      'https://so.gushiwen.org/search.aspx?page=11',
    
                      ]
    
        def parse(self, response):
            re_br = re.compile('<br\s*?/?>')
            re_p  = re.compile('<p\s*?/?>')
            re_h = re.compile('</?\w+[^>]*>')
    
            informations = response.xpath("//div[@class='left']/div[@class='sons']")
            for information in informations:
    
                item = ShiciItem()
    
                item['name'] = information.xpath('./div[@class="cont"]/p/a/b/text()').extract_first()
                item['author'] = information.xpath('div[@class="cont"]/p[@class="source"] | a//text()').extract_first()
                item['content'] = information.xpath('./div[@class="cont"]/div[@class="contson"] | p//text()').extract_first()
    
                item['author'] = re_h.sub('', item['author'])
    
                item['content'] = re_br.sub('\n', item['content'])
                item['content'] = re_p.sub('', item['content'])
                item['content'] = re_h.sub('', item['content'])
    
                print(item['name'])
                print(item['author'])
                print(item['content'])
                yield item
    
    
    
    

    数据处理:

    1、用正则表达式,去除爬取后文本的标点符号。
    2、去掉古诗文章名。
    3、一首诗占一行,列如:

    寒随穷律变,春逐鸟声开。初风飘带柳,晚雪间花梅。碧林青旧竹,绿沼翠新苔。芝田初雁去,绮树巧莺来。
    日晃百花色,风动千林翠。池鱼跃不同,园鸟声还异。寄言博通者,知予物外志。 一朝春夏改,隔夜鸟花迁。
    阴阳深浅叶,晓夕重轻烟。哢莺犹响殿,横丝正网天。珮高兰影接,绶细草纹连。碧鳞惊棹侧,玄燕舞檐前。
    何必汾阳处,始复有山泉。 夏律昨留灰,秋箭今移晷。峨嵋岫初出,洞庭波渐起。桂白发幽岩,菊黄开灞涘。



    from gensim.models import Word2Vec  # 词向量
    from random import choice
    from os.path import exists
    import warnings
    
    warnings.filterwarnings('ignore')  # 不打印警告
    
    class CONF:
        path = '古诗词.txt'
        window = 16          # 滑窗大小
        min_count = 60       # 过滤低频字
        size = 125           # 词向量维度
        topn = 14            # 生成诗词的开放度
        model_path = 'word2vec'
    
    class Model:
        def __init__(self, window, topn, model):
            self.window = window
            self.topn = topn
            self.model = model                   # 词向量模型
            self.chr_dict = model.wv.index2word  # 字典
    
        """模型初始化"""
        @classmethod
        def initialize(cls, config):
            if exists(config.model_path):
                # 模型读取
                model = Word2Vec.load(config.model_path)
            else:
                # 语料读取
                with open(config.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, config.size,
                                 window=config.window, min_count=config.min_count)
                model.save(config.model_path)
            return cls(config.window, config.topn, model)
    
        """古诗词生成"""
        def poem_generator(self, title, form):
            filter = lambda lst: [t[0] for t in lst if t[0] not in [',', '。']]
            # 标题补全
            if len(title) < 4:
                if not title:
                    title += choice(self.chr_dict)
                for _ in range(4 - len(title)):
                    similar_chr = self.model.similar_by_word(title[-1], self.topn // 2)
                    similar_chr = filter(similar_chr)
                    char = choice([c for c in similar_chr if c not in title])
                    title += char
            # 文本生成
            poem = list(title)
            for i in range(form[0]):
                for _ in range(form[1]):
                    predict_chr = self.model.predict_output_word(
                        poem[-self.window:], max(self.topn, len(poem) + 1))
                    predict_chr = filter(predict_chr)
                    char = choice([c for c in predict_chr if c not in poem[len(title):]])
                    poem.append(char)
                poem.append(',' if i % 2 == 0 else '。')
            length = form[0] * (form[1] + 1)
            return '《%s》' % ''.join(poem[:-length]) + '\n' + ''.join(poem[-length:])
    
    def main(config=CONF):
        form = {'五言绝句': (4, 5), '七言绝句': (4, 7), '对联': (2, 9)}
        m = Model.initialize(config)
        while True:
            title = input('输入标题:').strip()
            try:
                poem = m.poem_generator(title, form['五言绝句'])
                print('\033[031m%s\033[0m' % poem)             # red
                poem = m.poem_generator(title, form['七言绝句'])
                print('\033[033m%s\033[0m' % poem)             # yellow
                poem = m.poem_generator(title, form['对联'])
                print('\033[036m%s\033[0m' % poem)             # purple
                print()
            except:
                pass
    
    if __name__ == '__main__':
        main()
    
    

    成果:

    在这里插入图片描述

    总结

    综上我们用到了scrapy框架爬取数据、word2vec训练词向量、文本生成器等知识

    展开全文
  • 初中人工智能第三节Python体验代码之“为你写诗”智能诗歌创作,压缩包含有源代码、诗歌记事本、测试运行说明笔记等,可以上传到https://python.jupyter.vip/在线运行,当然本地安装好环境和各种库也可以运行! ...
  • 我给程序配了音乐为鱼舟晚唱,稍微修整了一下。 """ 如梦令.py,请把以下重复的代码用for或者while循环重新实现 """ import turtle from winsound import PlaySound poem = """如梦令 李清照 常记溪亭日暮, ...

    Python如梦令李清照


    我给程序配了音乐为鱼舟晚唱,稍微修整了一下。

    """
       如梦令.py,请把以下重复的代码用for或者while循环重新实现
    """
    import turtle
    from winsound import PlaySound
    
    poem = """如梦令
         李清照
    常记溪亭日暮,
    沉醉不知归路。
    兴尽晚回舟,
    误入藕花深处。
    争渡,争渡,
    惊起一滩鸥鹭。
    """
    turtle.penup()
    turtle.speed(1)
    turtle.delay(50)
    turtle.setup(800,586)         # 设置宽高
    turtle.bgpic('lotus.png')     # 贴上背景
    
    PlaySound('渔舟晚唱.wav',9)    # 重复异步播放音乐
    ps = poem.split("\n")         # 以换行分隔
    title = ps[0]                 # 诗的题目 
    name = ps[1]                  # 诗的作者
    
    turtle.goto(0,200)
    turtle.write(title,align='center',font=('宋体',28,'bold'))
    
    turtle.goto(0,150)
    turtle.write(name,align='center',font=('黑体',18,'italic'))
    
    ziti = ('楷体',20,'normal')
    
    turtle.goto(0,50)
    turtle.write(ps[2],align='center',font=ziti)
    
    turtle.goto(0,0)
    turtle.write(ps[3],align='center',font=ziti)
    
    turtle.goto(0,-50)
    turtle.write(ps[4],align='center',font=ziti)
    
    turtle.goto(0,-100)
    turtle.write(ps[5],align='center',font=ziti)
    
    turtle.goto(0,-150)
    turtle.write(ps[6],align='center',font=ziti)
    
    turtle.goto(0,-200)
    turtle.write(ps[7],align='center',font=ziti)
    
    turtle.goto(0,-250)
    turtle.write('更多李兴球Python创意程序请上www.lixingqiu.com')
    turtle.done()

    展开全文
  • Python实战案例-唐诗

    2020-11-22 23:55:02
    安装模块 pip3 uninstall gensim # 这里如果没有安装着不需要卸载 pip3 install gensim==3.8.1 导入模块

    安装模块

    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 = 14
    min_count = 46  # 过滤低频字
    size = 100  # 词向量维度
    topn = 50 # 生成诗词的开放度
    # path = '春联.txt'
    # window = 10
    # min_count = 29
    # size = 120
    # topn = 11
    literary_form = {'五言绝句': (4, 5),
                     '七言绝句': (4, 7),
                     '对联': (2, 9)}
    
    """数据读取"""
    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
    
    """文本序列生成"""
    def poem_generator(title, form):
        filter = lambda lst: [t[0] for t in lst if t[0] not in [',', '。']]
        # 标题补全
        if len(title) < 4:
            if not 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])
                poem.append(char)
            poem.append(',' if i % 2 == 0 else '。')
        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打造一个AI作家为你写诗(附源码)

    万次阅读 多人点赞 2018-03-26 00:00:00
    从短篇故事到长达5万词的小说,机器正以不可思议的方式“把玩”文字。网上已经涌现很多例子,越来越多人让机器创作文字作品。其实,由于自然语言处理(NLP)领域的重大进步,如今...那我们自己能创建这样一个会故事
  • Python文本生成程序,从零训练词向量,一分钟生成古诗对联~
  • 基于tensorflow的RNN中文自动写诗程序 本项目基于tensorflow编写的RNN神经网络,实现自动写唐诗。基于tensorflow编写。 项目地址:Github(觉得不错请给星) 运行 使用如下命令运行训练代码 python train.py > ....
  • 前言 在2018年下半年的某一天...当时作为语音行业一员对此十分感兴趣,想着能不能用程序实现一个,思考技术方案的时候发现最大难度就是数据,遂求助 码农交友社区(https://github.com/),发现了开源库 chinese-poetry...
  • Python的古诗竖排排版

    2021-06-05 06:50:00
    <p style="text-align:center">...参考以上图片程序,将以下横排诗句 静夜思 床前明月光 疑是地上霜 举头望明月 低头思故乡 (注意严格按以上格式)按竖排展现写入一个新文本文档中。  </p>
  • 在前面 在2018年下半年的某一天,偶然观看了《中国诗词大会》节目的飞花令环节。当时作为语音行业一员对此十分感兴趣,想着能不能用程序实现一个,思考技术方案的时候发现最大难度就是数据,遂求助 码农交友社区...
  • 就要七夕了,受票圈启发,才觉得代码还可以这么玩 hhh 目录 ​上邪:~~ 山无棱,江水为竭,冬雷震震,夏雨雪,天地合,乃敢与君绝。 金缕衣 :~~ 有花堪折直须折 莫待无花空折枝 上邪:~~ 山无棱,江水为竭,冬...
  • 输入数字转换为宋词的小程序 ###实在太懒,不想手动一个个输数字——所以我了一个小代码自动帮我把这些信息键入字典(U1S1我觉得这个挺方便的,以后更新字典词库也方便,比如) ###核心逻辑是: ###1)把字符串中...
  • 了解RPA: ...学习RPA ...下载RPA: ...前言 从我用 Python 编写第一行...在下面,我将给大家介绍并解释一些 Python 一行程序。 可能有些你还不知道,但对你未来的 Python 项目很有用。 1、交换两个变量 a = 4 b = 5 a,b = b,a
  • tensorflow2.0 实现自动写诗

    千次阅读 2020-06-20 22:38:25
    使用tensorflow经典的深度学习框架,使用python对其进行提取数据集的数据,并训练模型后,将本次构建的模型能实现应用...作为一名刚刚学习python和使用tensorflow的新手,记录在写程序中犯的错误。 1使用电脑跑数据发现
  • 古诗写入文件(python

    千次阅读 2019-12-29 16:05:51
    请将下面内容按行写入文件“D:/tmp/test/练习.txt”中,并且要求编码模式为utf-8,同时需要判断文件夹是否存在,不存在文件夹写入。 《送孟浩然之广陵》 年代:唐 作者: 李白 故人西辞黄鹤楼,烟花三月下扬州...
  • Python写个会做的机器人怎么样?今天小编就带领大家,利用自然语言处理技术和聊天机器人结合,做一个自动做的聊天机器人,你激动么?快来看看吧: The dog , which already ate a bunch of food, was full The...
  • 了解RPA: ...学习RPA ...下载RPA: ...前言 从我用 Python 编写第一行...在下面,我将给大家介绍并解释一些 Python 一行程序。 可能有些你还不知道,但对你未来的 Python 项目很有用。 1、交换两个变量 a = 4 b = 5 a,b = b,a
  • Python进行诗歌接龙

    千次阅读 2019-02-22 13:04:12
    之前讲解过人工智能对对联项目,本文将展示如何利用Python爬虫来实现诗歌接龙。 实现原理 该项目的思路如下: 第一步:利用爬虫爬取诗歌,制作诗歌语料库; 第二步:将诗歌分句,形成字典:键(key)为该句首...
  • Python程序设计 作业5 送你一首集句

    多人点赞 热门讨论 2021-06-18 16:00:56
    利用字典存放每个人对应的诗句和名,用pillow库构建图片。
  • Python写个会做的机器人怎么样?今天小编就带领大家,利用自然语言处理技术和聊天机器人结合,做一个自动做的聊天机器人,你激动么?快来看看吧: The dog , which already ate a bunch of food, was full The...
  • Python 爬虫 之 爬取古代的诗歌,并保存本地(这里以爬取李白的所有诗歌为例)(以备作为AI写诗的训练数据) 一、简单介绍 Python是一种跨平台的计算机程序设计语言。是一种面向对象的动态类型语言,最初被设计...
  • 广告关闭腾讯云双11爆品提前享,精选热门产品助力上云,云服务器... 开发准备相关资源python-sdk 项目 github 地址,欢迎贡献代码以及反馈问题。 pypi 项目 github 地址 。 (本版本 sdk 基于 json api 封装组成) ...
  • 前言 在2018年下半年的某一天...当时作为语音行业一员对此十分感兴趣,想着能不能用程序实现一个,思考技术方案的时候发现最大难度就是数据,遂求助 码农交友社区(https://github.com/),发现了开源库 chinese-poetry...
  • Python实现文件内容复制小程序(以txt文件为例),超详细注释对小白非常友好哦。
  • python+jieba分析唐诗三百首

    千次阅读 2020-06-02 13:39:15
    看到一个有意思的题目,可以玩一下正则、统计、jieba,花了几个小时好完善了下,本文只讲测试案例和注意点,代码在仓库中,欢迎star后拉一下:)~
  • 编写python程序方法1 打开“超级终端” 输入python3 ,输入python3表示用的python这门编程语言的第3个版本,如果只输入python的话表示用的是python的第2个版本 输入以下代码 编写python程序方法2 打开编辑软件...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 4,597
精华内容 1,838
关键字:

python程序写诗

python 订阅