当你拿起手机准备发朋友圈的时候,会不会在选好图片后却不知道要写什么文案?
又或者是看到一处美景时,想不出别的高级形容词,只会说:“woc,太好看了吧!”
问题不大!ai可以帮你搞定!就像下面这样:
ai根据这张图片生成的古诗是:
蕾蕾海河海,岳峰岳麓蔓。
不萌枝上春,自结心中线。
怎么样?还不错吧!
二、实现思路
我认为研究ai其实就是在研究我们人类,为什么这么说呢?举个例子:
我们在看图说话时,一般都是先看看图片上有什么内容,比如一张图里有山有水还有很多的植物,那我们对这张图的第一印象就是一张风景图,然后我们再根据图片上某一个具体的景物做详细的描述。
其实ai也是类似的!
要想让机器根据一张图片写古诗,可以分为以下三步:
最简单的就是图像分类,将图像分到某一个类别里,比如上面那张图的类别就是lakeside即湖边。
拿到图片的类别之后,也就有了这张图的关键字,但关键字往往很短,不足以写出一首完整的古诗,因此我们需要找到更多的关键词。
当关键词足够多时(即能构成古诗的上阕,如:昔年旅南服,始识王荆州。),我们就把关键词组合成古诗的上阕,然后送入模型。
最后得到模型的输出即古诗的下阕,上、下阕组合后就是一首完整的古诗,我们还可以对古诗进行评估,分析一下情感倾向。
三、调用三个模型就能快速写诗!
1首先将paddlehub更新到最新的版本:
in [1]
!pip install --upgrade paddlehub -i
https://pypitunatsinghuaeducn/simple
2安装所需要的模型:
图像分类:xception71_image
文本生成:ernie_gen_couplet
文本生成:ernie_gen_poetry
情感分析:senta_bow
in [2]
!hub install xception71_image==100 图像分类
!hub install ernie_gen_couplet==100 文本生成(对联),获取近似词
!hub install ernie_gen_poetry==100 生成古诗词
!hub install senta_bow==120 情感倾向分析
[2021-10-10 18:10:21,571] [ info] - successfully installed senta_bow-120
2021-10-10 18:10:21,920 - info - lock 140389601126352 released on /home/aistudio/paddlehub/tmp/senta_bow
3获取图片的分类,即该图片是什么
在放自己想要预测的图片时,只需替换test_img_path里的图片路径即可,其他的都不需要调整
左侧为大家准备了几张图片示例,大家也可以自行上传图片
in [14]
import paddlehub as hub
module_image = hubmodule(name=&34;xception71_image&34;) 调用图像分类的模型
test_img_path = &34;catjpg&34; 选择图像,即要根据哪张图片写诗
set input dict
input_dict = {&34;image&34;: [test_img_path]}
execute predict and print the result
results_image = module_imageclassification(data=input_dict)
pictureclassification = list(results_image[0][0]keys())[0]
print(&34;该图片的分类是:&34;,pictureclassification) 得到分类结果
[2021-10-10 18:16:30,477] [ info] - 638 pretrained paramaters loaded by paddlehub
该图片的分类是: tabby
因为这里得到的标签都是英文,所以这里我们先把英文翻译成中文,用到的库是translate:
in [5]
!pip install translate
in [15]
from translate import translator
translator = translator(to_lang=&34;chinese&34;)
pictureclassification_ch = translatortranslate(&34;{}&34;format(pictureclassification))
print(&34;该图片的分类是:&34;,pictureclassification_ch)
该图片的分类是: 虎斑猫
4根据图片的分类获取近义词
使用对联生成的模型来生成近义词,使用对联生成的可行性分析:
对联对仗工整,平仄协调,字数相同,结构相同
生成的近义词能更加丰富,古诗是丰富多彩的,需要丰富而充满想象力的词汇
大胆尝试后,发现效果不错
in [20]
import numpy as np
module_similar = hubmodule(name=&34;ernie_gen_couplet&34;) 调用对联生成的模型