python & R 实现数字变古诗

本文介绍了一个将数字转化为宋词的小程序,分别使用Python和R语言实现。更新内容包括R语言的实现,涉及strsplit、grepl和sub等字符串处理函数的学习与应用。

输入数字转换为宋词的小程序


###实在太懒,不想手动一个个输数字——所以我写了一个小代码自动帮我把这些信息键入字典(U1S1我觉得这个挺方便的,以后更新字典词库也方便,比如)
###核心逻辑是:
###1)把字符串中的数字和汉字单独提取出来
###2)通过update功能一个个更新进去(我目前还是用for循环的,不知道update有没有支持向量的用法...)

stri = '00萧瑟 01空 21一笑 41深处 61一片 81不是 02东风 22黄昏 42时节 62桃李 82时候 03何处 23当年 43平生 63人生 83肠断 04人间 24天涯 44凄凉 64十分 84富贵 05风流 25相逢 45春色 65心事 85蓬莱 06归去 26芳草 46匆匆 66黄花 86昨夜 07春风 27尊前 47功名 67一声 87行人 08西风 28一枝 48一点 68佳人 88今夜 09归来 29风雨 49无限 69长安 89谁知 10江南 30流水 50今日 70东君 90不似 11相思 31依旧 51天上 71断肠 91江上 12梅花 32风吹 52杨柳 72而今 92悠悠 13千里 33风月 53西湖 73鸳鸯 93几度 14回首 34多情 54桃花 74为谁 94青山 15明月 35故人 55扁舟 75十年 95何时 16多少 36当时 56消息 76去年 96天气 17如今 37无人 57憔悴 77少年 97惟有 18阑干 38斜阳 58何事 78海棠 98一曲 19年年 39不知 59芙蓉 79寂寞 99月明 20万里 40不见 60神仙 80无情 100往事'
###在这里复制黏贴后我还是做了一下小处理的,手动把个位数换成了两位的形式,例如:1->01,2->02,不然后面处理不方便(这步我确实不知道怎么省掉)

import re
num1 = re.findall(r'\d+\d',stri)
letter1 = re.findall(r'\D+\D',stri)
diction={
   
   }
for i in range(0,100):
        diction.update({
   
   num1[i]:letter1[i]})
###最基础的正则表达式找一下,然后我们所有的'num':'letter'都存好啦!

x = input('input num')
x = x.replace('.','')

list1=list()
for i in range(0,len(x),2):
    list1.append(x[i:i+2])


###这里主要是为了处理比如3.1415这种小数的形式,删除了'.'

if len
### 关于Python中的数字诗意生成 在探讨如何通过Python实现“数字诗意”的过程中,可以从多个角度切入。所谓“数字诗意”,通常是指利用算法和逻辑将数字转化为某种具有艺术感或文学性的表达形式。这种技术可能涉及随机数生成、字符串操作、模式匹配以及自然语言处理等领域。 #### 利用`random`模块生成随机诗句 可以通过Python内置的`random`库来生成具有一定规律性和美感的数字组合,并将其映射为文字描述。例如: ```python import random def generate_poetic_number(): digits = ''.join([str(random.randint(0, 9)) for _ in range(6)]) poetic_descriptions = [ f"{digits[:3]} 如同星辰般闪耀", f"{digits[3:]} 像流水一样轻柔" ] return "\n".join(poetic_descriptions) print(generate_poetic_number()) ``` 上述代码片段展示了如何生成六个随机数字并赋予它们诗意化的解释[^1]。 #### 结合正则表达式与爬虫抓取现成诗歌资源 如果希望基于已有的中文古诗或其他文学作品构建自己的数字诗意生成器,则可考虑采用Web爬虫技术获取大量素材作为训练集。这里推荐使用Requests库配合BeautifulSoup解析网页内容,再借助正则表达式提取有用信息[^2]: ```python import requests from bs4 import BeautifulSoup import re url = 'https://example.com/poems' response = requests.get(url) soup = BeautifulSoup(response.text, 'html.parser') poem_texts = soup.find_all('div', class_='poem') pattern = r'\d+' # 匹配任意长度的连续数字串 for poem in poem_texts: text = poem.get_text() numbers_in_poem = re.findall(pattern, text) if numbers_in_poem: print(f"发现含数字 {numbers_in_poem} 的诗句:{text}") ``` 此脚本会访问指定URL上的页面,查找所有包含数字的经典诗词实例。 #### 使用虚拟环境管理依赖项 为了确保项目运行稳定,在开发此类应用之前建议先设置独立的工作区——即创建一个新的Conda虚拟环境。这样不仅可以隔离不同项目的包版本冲突问题,还能方便后续维护工作[^4]: ```bash conda create --name digital_poetry_env python=3.10 numpy matplotlib conda activate digital_poetry_env pip install beautifulsoup4 requests regex ``` 以上命令序列说明了怎样快速搭建适合执行复杂文本分析任务所需的计算框架。 ---
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值