用nltk模仿海子写中文现代诗

文章目录

  • 前言
  • 开始编程
    • 寻找素材
    • 处理语料
    • 一些类似的步骤
  • 运行结果

前言

仅仅写英文诗还不够,我们又把主意打到了中文诗头上。不过要写古体诗还有一些困难,我们先尝试一下现代诗。

写中文现代诗的代码与英文诗类似,区别主要在语料的处理上,建议先看如何写英文诗。

开始编程

寻找素材

同样的,要学海子写诗,第一步就是找到足够多海子本人写的诗。而内网的资源同样没眼看,我们还是把视线投向外网,这个网站上的资源还算不错,纯净度远高于我在一些网盘上找到的资源。
在这里插入图片描述

处理语料

大致的处理流程与英文语料类似,不过都是筛去不相干的一些“杂质”,再对文本进行划分。

去除杂质包括去除英文、阿拉伯数字以及一些带有符号的非诗句,用几个函数就可以判断:

fuhao=[':','-','(',')','、','—','(',')']
def is_English(ch):return (ch>=u'\u0041' and ch<=u'\u005a') or (ch>= u'\u0061' and ch<=u'\u007a')
def is_number(ch):return ch >= u'\u0030' and ch<=u'\u0039'
def check(s):for ch in s:if ch in fuhao or is_English(ch) or is_number(ch):return Falsereturn True

不过中文语料与英文语料最大的不同在于英文语料天然有空格作为分隔符,划分要容易得多;而中文却没有这种好事,要划分不同的成分困难得多。但是Python那是真的强的一批,jieba库直接解决这个问题:
在这里插入图片描述
借助jieba的帮助,我们就可以把文本划分为像英文诗那样的“单词”形式。

import jieba
import nltk
import randomfuhao=[':','-','(',')','、','—','(',')']
sentences=[]
def is_English(ch):return (ch>=u'\u0041' and ch<=u'\u005a') or (ch>= u'\u0061' and ch<=u'\u007a')
def is_number(ch):return ch >= u'\u0030' and ch<=u'\u0039'
def check(s):for ch in s:if ch in fuhao or is_English(ch) or is_number(ch):return Falsereturn True
with open('hz.txt','r',encoding='utf8') as f:for line in f.readlines():line=line.strip()if len(line)>3 and len(line)<30 and check(line):sentences.append(jieba.lcut(line))

一些类似的步骤

说实话,几乎一摸一样……

最后写诗的部分多加了一点随机,毕竟写的不一定是十四行诗嘛~

voc=set()
for line in sentences:for word in line:voc.add(word)
voc.add('<s>')
voc.add('</s>')
voc=list(voc)
n=3
all_ngrams=[]
for line in sentences:paddedline=nltk.lm.preprocessing.pad_both_ends(line,n)ngrams=list(nltk.ngrams(paddedline,n))all_ngrams.append(ngrams)
lm=nltk.lm.MLE(n)
lm.fit(all_ngrams,voc)
sonnet=[]
text_seed=['<s>']*(n-1)
while len(sonnet)<random.randint(5,20):while True:try:line=lm.generate(random.randint(8,15),text_seed=text_seed)except ValueError:continueelse:line=[word for word in line if word not in['<s>','</s>']]sonnet.append("".join(line))break
print("\n".join(sonnet))

运行结果

问题与英文诗类似,每句单独生成,缺乏连贯,有时候还不完整。

而且由于海子的诗本身比较少,学习后多样化不足,会出现许多海子的原句……好多诗我觉得随机生成的不错,结果是人家海子早就写过的……

英文诗可能也有这个问题,不过我对英文和莎士比亚的十四行诗不够敏感,所以没有发觉。
在这里插入图片描述
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/50512.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

OpenAI的ChatGPT、微软的New Bing、百度的文心一言、Google的Bard、阿里云的通义千问

随着 ChatGPT 热潮卷起来&#xff0c;微软发布New Bing、百度发布了文心一言、Google 发布了 Bard&#xff0c;阿里云官方终于也宣布了&#xff0c;旗下的 AI 大模型“通义千问”也正式开启测试&#xff01; ChatGPT ChatGPT是一种由OpenAI训练的大型语言模型。它的原理是基于…

ControlNet仅靠一张照片完成“旧房改造” | GitHub热榜第一

Alex 发自 凹非寺量子位 | 公众号 QbitAI 这是同一个房间改装前后的样子&#xff1a; 一下子质感Up&#xff0c;从凌乱过时变成了有腔有调的现代风。 至于设计费嘛&#xff0c;其实是…一分钱都没花&#xff01; 因为这并不是专业设计师做的方案&#xff0c;而全靠一只AI完成。…

chatgpt赋能python:Python怎么抢优惠券?优惠不再是梦想!

Python怎么抢优惠券&#xff1f;优惠不再是梦想&#xff01; 在如今的消费社会&#xff0c;优惠券已成为人们购物时追逐的目标。而优惠券的数量有限且抢手&#xff0c;往往仅能在短时间内领取&#xff0c;因此初次抢到心仪的优惠券可谓令人欣喜不已。而对于程序员们而言&#…

第十八届全国大学生智能汽车竞赛-竞速比赛完全模型组规则

01 完全模型组 一、比赛构成 百度完全模型竞速赛分为线上资格赛、线下分区赛和全国总决赛三个阶段&#xff0c;组委会将综合考虑线上资格赛和线下分区赛成绩来进行全国总决赛名额的选拔&#xff0c;其中线上成绩占10%&#xff0c;线下成绩占90%。组委会将从报名参加线上资格赛的…

国赛来咯!第十八届全国大学生智能汽车竞赛百度竞速赛正式开启

「第十八届全国大学生智能汽车竞赛—百度完全模型组竞速赛」将于1月7日&#xff08;本周六19:00&#xff09;全面启航&#xff01;大赛组委会秘书长、清华大学卓晴教授届时将亲临百度飞桨B站直播间&#xff0c;和同学们一起聊备赛&#xff0c;话今年。 竞赛介绍 「全国大学生智…

【智能汽车竞赛】极速越野组参赛总结

目录 第一章 引 言 第二章 机械结构的调整与优化 2.1 主板和驱动板板的固定及连接 2.2 模型车机械部分安装及改造 2.2.1 优化车身强度 2.2.2 前轮定位 2.3 传感器的设计安装 2.3.1 ICM-20602 安装 2.3.2 gps 传感器的安装 第三章&#xff1a;硬件电路设计 3.1 主控板模块 3.…

史上最强模型 GPT-4 上线:一张手绘草图能生一个网站、60 秒搞定一个游戏开发!...

整理 | 苏宓 出品 | CSDN&#xff08;ID&#xff1a;CSDNnews&#xff09; 平地一声雷&#xff0c;GPT-4 重磅来袭。 3 月 14 日&#xff0c;OpenAI 正式上线新一代人工智能大模型 GPT-4&#xff0c;它是一个大型多模态模型&#xff0c;可以接受图像和文本输入&#xff0c;同时…

【12亿】微信月活11.12亿,抖音年赚200亿?中国最受欢迎五大社交平台

在互联网行业&#xff0c;社交一直都是巨头们的兵家必争之地。从QQ到微信&#xff0c;从微博到抖音&#xff0c;新的社交平台在不断出现和崛起&#xff0c;用户也从90后延伸到了00后&#xff0c;而社交时代的风云变幻&#xff0c;也映射了互联网发展趋势以及网友社交方式的变化…

让OpenAI GPT3替我写数据竞赛代码!

★★★ 本文源自AlStudio社区精品项目&#xff0c;【点击此处】查看更多精品内容 >>> 让OpenAI GPT3替我写数据竞赛代码&#xff01; OpenAI与ChatGPT OpenAI是在美国成立的人工智能研究公司&#xff0c;核心宗旨在于实现安全的通用人工智能(AGI)。他们开发的ChatGP…

Github Copilot Chat申请,安装,及常见问题解决

文章目录 实际使用效果&#xff1a;申请使用常见问题 参考 Copilot Chat 是Copilot X 引入的预览功能&#xff0c;不但可以像Chatgpt一样聊天&#xff0c;也可以解释代码&#xff0c;bug 修复&#xff0c;也可以生成单元测试。是一个非常有吸引力的功能。 实际使用效果&#xf…

Android 科大讯飞 语音转文字

Android 科大讯飞 语音转文字 语音听写SDK适配安卓6.0需要手动申请权限&#xff0c;各位可以自信查询资料实现,关于语音听写SDK的开发&#xff0c;参考科大讯飞开放平台官网为准 第一&#xff0c;首先去科大讯飞官网注册一个账号&#xff1a;https://console.xfyun.cn/app/myap…

讯飞离线语音合成接入

讯飞离线语音合成接入&#xff1a; 文字转语音的方法 1.Google TextToSpeech 中文语音引擎 Google提供了原生的方法TextToSpeech&#xff0c;但是不支持中文&#xff0c;sad… 不过可以用第三方的语音引擎&#xff0c;eg&#xff0c;讯飞&#xff0c;百度… 详情参考&…

如何高效Prompt?

优先声明&#xff0c;本文来自转载&#xff0c;来源为稀土掘金的腾讯云开发者 的个人主页 - 动态 - 掘金 本文原文来自我问了鹅厂程序员&#xff1a;你们工作中怎么用ChatGPT&#xff1f;如何高效Prompt&#xff1f; - 掘金 如有侵权冒犯&#xff0c;联系立删。 &#x1f44…

解决Mac电脑连接校园网不弹出登陆窗口问题汇总

1.查看你的DNS有没有改过&#xff0c;把自己改过的DNS全部删除&#xff0c;变更为默认的就好。 2.有使用梯子的同学&#xff0c;记得把梯子暂时先关闭一下&#xff0c;然后在连接校园网Wi-Fi。 3.你有登录页面的网址吗&#xff1f;没有的话&#xff0c;让同学复制给你&#xf…

python毕业设计 基于django框架校园鲜花水果商城毕业设计设计与实现

商城功能概要 首页、分类、商品详情页面&#xff0c;包含加入购物车、收藏商品、立即购买、用户登录、订单管理、地址管理&#xff1b;完整的购物流程&#xff0c;商品的加入、编辑、删除、批量选择&#xff0c;收货地址的选择&#xff0c;下单、会员中心&#xff08;订单、收…

基于Java+SpringBoot+Vue前后端分离校园闲置物品交易网站

博主介绍&#xff1a;✌全网粉丝20W,csdn特邀作者、博客专家、CSDN新星计划导师、java领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌ &#x1f345;文末获取源码联系&#x1f345; &#x1f447;&#x1f3fb; 精彩专…

案例26:基于Springboot校园社团管理系统开题报告

博主介绍&#xff1a;✌全网粉丝30W,csdn特邀作者、博客专家、CSDN新星计划导师、java领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌ &#x1f345;文末获取源码联系&#x1f345; &#x1f447;&#x1f3fb; 精彩专…

基于Java+Vue+uniapp微信小程序实现餐厅校园订餐平台

博主介绍&#xff1a;✌全网粉丝20W,csdn特邀作者、博客专家、CSDN新星计划导师、java领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌ &#x1f345;文末获取联系&#x1f345;精彩专栏推荐订阅&#x1f447;&#x1f…

校园网不能建立到远程计算机,校园网已拒绝远程连接是什么问题及如何解决

校园网已拒绝远程连接是什么问题及如何解决你知道吗&#xff1f;对于正常日常生活中的我们在需要远程进行办公或学习的时候出现这种问题最让人头大了&#xff0c;可是面对这样的问题我们应该如何更好的解决呢&#xff1f;一般出现校园网无法远程连接的原因有太多&#xff0c;这…

天翼校园网连接不上服务器无响应,天翼校园网dns解析出错怎么办

摘要 腾兴网为您分享:苹果手机&#xff0c;芒果tv&#xff0c;闲聊app&#xff0c;爱奇艺视频&#xff0c;步步高等知识经验教程&#xff0c;欢迎大家关注腾兴网。 很多大学生都是用的天翼校园网&#xff0c;在学校办理的便宜好用&#xff0c;不过有在使用中会碰到各种问题&…