集算器不仅有大数据计算,还有诗和远方。最近看到不少写诗机器人的新闻,于是尝试用集算器简单地实现一个。这个实现真的很简单,简单到只有10几行代码,请看实现步骤:

1.下载字典和诗词

从网上找一个用于分词的字典文件,里面记录着每个中文词汇的词性。我从GitHub上找了一个,稍微处理之后保存到集文件dict.btx。

下载宋词三百首的txt文件,去掉空格和换行,以及其它文字以外的字符,得到一个长字符串。

2.训练

对上一步得到的长字符串进行分词,结果保存到集文件作为模板,实现代码如下:

 

A

B

C

1

=file("dict.btx").import@bi().keys(WORD).index()

   

2

=create(WORD,LEN,T)

   

3

宋词三百首宴山亭赵佶北行见杏花裁剪冰绡,轻叠数……

   

4

=len(A3)

>i=1

 

5

for (i<=A4)

>word3=A2.find(mid(A3,i,3) ), word2=A2.find(   mid(A3,i,2) ), word1=A2.find( mid(A3,i,1) )

 

6

 

if (word3!=null)

>A2.insert(0, word3.(WORD),3,word3.(T)), i=i+3

7

 

else if (word2!=null)

>A2.insert(0, word2.(WORD),2,word2.(T)), i=i+2

8

 

else if (word1!=null)

>A2.insert(0, word1.(WORD),1,word1.(T)), i=i+1

9

 

else

>i=i+1

10

=file("宋词模型.txt").export@t(A2)

   

A1读取字典文件,并且建立索引;

A2定义模板记录的数据结构,三个字段表示:词、长度、词性;

A5到A9是循环处理,对A3进行分词,这里最长只处理三个字组成的词;

A10把结果保存;

这一步得到一个模板,内容是《宋词三百首》里所有文字的分词,以及这些分词的词性。

3.创作

创作的原理是找一首宋词作为目标,得到它的每个分词,根据分词的长度和词性,从上一步的模板里随机找一个词进行替换。这里选择的是《水调歌头·明月几时有》,来看代码:

 

A

B

C

1

=file("宋词模型.txt").import@t()

   

2

=file("dict.btx").import@bi().keys(WORD).index()

   

3

明月几时有,把酒问青天。不知天上宫阙,今夕是何年。我欲乘风归去。惟恐琼楼玉宇,高处不胜寒,起舞弄清影,何似在人间。

   

4

=len(A3)

>str="", i=1, words=null

 

5

for (i<=A4)

>word3=A2.find(mid(A3,i,3)   ),word2=A2.find( mid(A3,i,2) ), word1=A2.find( mid(A3,i,1) )

 

6

 

if (word3!=null)

>words=A1.select(LEN==3&&   T==word3.(T) ), i=i+3, str=str+words(1+rand(words.len())).(WORD)

7

 

else if (word2!=null)

>words=A1.select(LEN==2&&   T==word2.(T) ), i=i+2, str=str+words(1+rand(words.len())).(WORD)

8

 

else if (word1!=null)

>words=A1.select(LEN==1&&   T==word1.(T) ), i=i+1, str=str+words(1+rand(words.len())).(WORD)

9

 

else

>str=str+mid(A3,i,1), i=i+1

10

>output(str)

   

运行结果如下,这些“作品”虽然存在语法错误,但还是有模有样的,总比我自己写的要好很多。

晚秋无奈送,伫立鹧鸪天。已成西下黄叶,春寒疏何处。我又花下离别。酒醒阳关萧萧,如许悲欢霜,初见年少影,谁曾在斜阳。

春寒何在喧,不解烟雨任。梳洗江上西风,明月怜此地。谁先水声惹起。相思洛阳晓色,几许不成魂,不应相迎竞,他未为梢头。

而今几度寄,相认问青天。催发江上蓬壶,黄昏发何处。别未御街可惜。轻吹江南那堪,先断闲来闲,相逢拘束影,任又在旧事。

昨夜无处应,不知阑珊处。映带楼上王孙,如今来有时。任更点点飘香。垂涎池塘秋千,到处望断天,酒醒衰草影,我尤把天涯。

选择一首发到朋友圈,居然得到不少点赞。

实现原理是同词性替换,根据这个还可以实现写唐诗的功能。如果对模板文件进一步调整,根据韵律和平仄优化词性,效果会更好。这就是属于人工智能的人工劳动了,需要专业知识和辛苦付出,不是一下可以达成的。

感兴趣的同学可以下载附件。

15368090470002ffa.rar

10 行代码,集算器实现写诗机器人相关推荐

  1. 10 行代码集算器实现写诗机器人

    可阅读原文:http://c.raqsoft.com.cn/article/1536756719594?r=alice 集算器不仅有大数据计算,还有诗和远方.最近看到不少写诗机器人的新闻,于是尝试用集 ...

  2. Python3,10行代码,我把情书写在她的照片里,她被我的才华征服了。

    10行代码把情书写在她的照片里 1.引言 2.Pillow 2.1 Pillow 安装 2.2 Pillow 介绍 2.2.1 新建及保存图片 2.2.2 重新绘制图片 2.2.3 图片合并 2.3 ...

  3. 10行代码集2000张美女图,Python爬虫120例,再上征途

    <Python 爬虫 120 例>专栏简介 Python 爬虫 100 例教程,编写自 2018-07-30 到 2020-10-28,将近 800 天,至今依旧是 Python 爬虫领域 ...

  4. oracle测试报告模板,Oracle与集算器对照测试报告

    1.测试目的 针对相同的硬件环境和计算任务,对比Oracle和集算器的性能差异,为客户选型提供参考. 2.硬件环境 设备数量:1台 CPU:16核Intel(R) Xeon(R) CPU E5620  ...

  5. java漏斗代码_集算示例:10 行代码解决漏斗转换计算

    销售过程是一个多环节的过程,哪个步骤有了过大瑕疵,都会导致业绩急剧下滑.而诊断出哪个步骤有瑕疵,除了无形的经验,还有量化的诊断方式,就是今天要讨论的主角:转化漏斗模型. 示例数据 为了详细讨论这个漏斗 ...

  6. 10 行代码,实现写诗机器人

    集算器不仅有大数据计算,还有诗和远方.最近看到不少写诗机器人的新闻,于是尝试用集算器简单地实现一个.这个实现真的很简单,简单到只有10几行代码,请看实现步骤: 1下载字典和诗词 从网上找一个用于分词的 ...

  7. 10行代码,实现写诗机器人

    集算器不仅有大数据计算,还有诗和远方.最近看到不少写诗机器人的新闻,于是尝试用集算器简单地实现一个.这个实现真的很简单,简单到只有10几行代码,请看实现步骤: 1下载字典和诗词 从网上找一个用于分词的 ...

  8. 手写数字识别c语言作业,10 行代码,实现手写数字识别

    识别手写的阿拉伯数字,对于人类来说十分简单,但是对于程序来说还是有些复杂的. 不过随着机器学习技术的普及,使用10几行代码,实现一个能够识别手写数字的程序,并不是一件难事.这是因为有太多的机器学习模型 ...

  9. 集算器访问HTTP数据的代码示例

    使用集算器(esProc)可以很方便的从http数据源读取数据进行处理. 本例子中有一个servlet,对外提供json格式的雇员信息查询.Servlet访问数据库的员工表,保存了员工的信息,如下: ...

最新文章

  1. python爬虫代码实例-Python爬虫爬取百度搜索内容代码实例
  2. tomcat与apache区别
  3. Heritrix 3.1.0 源码解析(六)
  4. Linux/Ubuntu: 命令行任务(To-Do List)管理 task - A command line todo manager
  5. 图像傅里叶变换的频率怎么理解?【转载】
  6. 集成ueditor后显示html问题处理
  7. 面试题总结——JAVA高级工程师
  8. 如何更改static控件的字体大小
  9. 怎么看接收灵敏度desense问题?
  10. 用pywinhook或pyhook监听鼠标事件
  11. 【数学建模】微分方程求解 | dsolve函数 | ode45函数
  12. 测试网站速度简单方法
  13. 王菲 单行道 今天忽然听
  14. python设置颜色_使用python改变颜色的色调
  15. TTL与OC电路和MOS管
  16. 导入地形数据到pointwise中生成网格
  17. 阿里云OSS 图片处理api(custom)
  18. 基于本地虚拟机搭建k8s集群
  19. Linux键盘按键中断驱动示例
  20. 成神之路 第015期。

热门文章

  1. 在API 中,常用的code码
  2. 数字MIC(es7202 PDM协议)MIC录音声音较小
  3. 使用python进行视频截取
  4. jsp基于java廉价房屋租赁管理系统
  5. linux设备授权命令,# Linux命令
  6. 学习Linux有哪些工作方向?
  7. Matlab进行射频TRL校准,如何设计和验证TRL校准件,TRL校准应如何操作?-射频/微波-与非网...
  8. Linux常用环境软件安装(提供对应安装包)
  9. JVM监控:JMX组件与底层原理
  10. 出现报错No such file or directory: experiments/coco/w32/w32_4x_reg03_bs10_512_adam_lr1e-3_coco_x140.yaml