淘优惠

淘优惠

《Catching a Unicorn with GLTR: A tool to detect automatically generated text》,http://gltr.io

热门文章 0

淘宝搜:【天降红包222】领超级红包,京东搜:【天降红包222】
淘宝互助,淘宝双11微信互助群关注公众号 【淘姐妹】

catch the moment,catch my breath翻译,catch mybreath,catches

作者:高长宽

历史上有名的“东坡续词”,是文学史上的一段佳话,这也引发了作者的深思。他在这诗词创作的过程中,看到了数理思维的影子,就好比在求解一个“最优化问题”:

在一定的约束条件下,如诗词要遵守的平仄、押韵、对仗/对偶、五七变式、词谱、情境等,诗词创作者需要用文字将自己内心的真实感动用语言文字表达出来。

因此,作者认为,诗词之精美和数理之严密是可以完美结合的。

既然诗歌的创作是有规律的,那么,通过一定的数据挖掘手段,我们是能够从中发现一些insight的。

在本文中,作者循着这个思路,将运用若干文本挖掘方法对手头的诗歌语料库(该诗歌原始语料库地址为https://github.com/Werneror/Poetry)进行深入挖掘和分析,该诗歌语料库的基本统计数据如下:

从上表可以看到,该诗歌语料库中共计近85万余首诗歌,诗歌作者数量达29377位之多;其中,字段包括“题目”、“朝代”、“作者”和“内容(诗歌)”。

为了方便后续的分析,笔者仅取其中的律诗和绝句,且仅取其中的五言和七言,排律(如《春江花月夜》、《长恨歌》等)、杂言(如李白的将进酒)等就不在本文的分析范围之内。经过数据清洗后,最终得诗504,443,占到原数据库的59.1%。以下分别是清洗后的诗歌数据统计结果和部分样例:

针对上述数据,笔者在本文中主要有两个大目标:

  • 构建一个包含热门题材标签的诗歌语料库,用于后续的诗歌题材分类和诗歌生成任务;
  • 基于上述诗歌语料库的各类文本挖掘和语义分析,以期得到有趣味的发现。
针对上述目标,本文的实现路线图,同时也是本文的行文脉络,如下所示:
值得注意的是,上述实现路径中,涉及到自然语言处理的两大组成部分,即自然语言理解(分词、语义建模、语义相似度、聚类和分类等)和自然语言生成(诗歌生成和诗歌翻译), 看完也会对自然语言处理有一定的了解。信息量大,请耐心享用~
1 诗歌分词和热词发现
给定一首诗歌文本,在其中随机取一个片段,如何判断这个片段是否是一个有意义的词汇呢?如果这个片段左右的搭配变化较多、很丰富,同时片段内部的成分搭配很固定,那么,我们可以认为这个片段是一个词汇,比如下图中所示的“摩诘”就是符合这个定义,那么它就是一个词汇。
在具体实施的算法中,衡量片段外部左右搭配的丰富程度的指标叫“自由度”,可以用(左右)信息熵来度量;而片段内部搭配的固定程度叫“凝固度”,可以用子序列的互信息来度量。
在这里,笔者利用Jiayan(甲言)对这54余万首诗歌进行自动分词,在结果中按照词汇出现频率从高到低进行排序,最终从语料库中抽取若干有意义的高频词。其中,词汇的长度从1到4。抽取结果如下:
笔者观察其中部分结果,发现一字词、二字词才能算得上一般意义上的词汇,如“不”、“烁”、“岁寒”、“留滞”等 ;三字词和四字词一般是多类词性词汇的组合,严格上讲,应该算作短语或者固定表达,如“随流水”、”云深处”、“人间万事”、“江湖万里”等。但本文为了表述方便,笔者将它们统一称之为词。
下面,笔者分别展示词长从1到4的TOP100的高频词词云(点击图片可放大查看)。
一字高频词中,除去“不”、“无”、“有”这类“虚词”,单看“人山风日天云春花年月水”这11个高频字,暗合了中国天人合一哲学传统,作诗如作画,作诗者是把人放到自然环境、天地岁月这个时空大画卷中,七情六欲、天人感应,诗情画意就由感而生,诗意盎然了!
“诗画本一律”,古人诚不我欺!
二字高频词中,较为显眼的是“万里”、“千里”,它们描绘出巨大的空间感,在诗歌中经常跟“宏景”“贬谪”、“思乡”、“闺怨”等主题捆绑在一起。
此外,“明月”、“故人”、“白云”、“功名”、“人间”、“平生”和“相逢”等词汇也是横亘古今的热门用语。
三字高频词中,数字的使用很是常见,如“二三子”、“二十四”、“一樽酒”、“二千石”等。其中,最值得一提的是诗人们用数词对时空的描绘:表达时间跨度的,如“二十年”、“四十年”、“五百年”、“十年前”、“千载后”等;表达空间距离的,如“千里外”、“三百里”、“百尺楼”...
古人总是喜欢把自己置身于浩瀚渺茫的时空之中,去思考自己匆匆的人生。正如东坡在《赤壁赋》的感慨:“寄蜉蝣于天地,渺沧海之一粟。哀吾生之须臾,羡长江之无穷!”
在四字高频词中,空间方位的词汇较多,如“南北东西”、“江南江北”、“东西南北”等词。因四字词词长较长,像“人间万事”、“千岩万壑”、“明月清风”、“白云深处”、“相逢一笑”等词就拥有较高的信息量,能够还原大部分的诗歌意境了。
2 训练含纳诗歌词汇语义关联性的词嵌入模型
词嵌入模型可以从海量的诗歌文本中自动学习到字词之间的关联关系,据此可实现字词关联度分析、字词相似度分析、聚类分析等任务。然而,计算机程序不能直接处理字符串形式的文本数据,所以笔者首当其冲的一个步骤就是将诗歌文本数据分词,之后再“翻译”为计算机可以处理的数据形式,这由一个名为“文本向量化”的操作来实现。先谈分词,它跟前面的高频词挖掘有联系,是后续所有分析任务的起始点。结合前面积累的词库,再基于有向无环词图、句子最大概率路径和动态规划算法对这54万首诗歌进行分词操作。
现试举一例:
分词前:“万物生芸芸,与我本同气。氤氲随所感,形体偶然异。丘岳孰为高,尘粒孰为细。忘物亦忘我,优游何所觊。”
分词后:
['万物', '生', '芸芸', ',', '与', '我', '本', '同', '气', '。','氤氲', '随', '所', '感', ','
,'形体', '偶然', '异', '。', '丘岳', '孰', '为', '高', ',', '尘', '粒', '孰', '为', '细', '。',              
 '忘', '物', '亦', '忘我', ',', '优游', '何', '所', '觊', '。']
分词之后再做适当处理就可以“喂给”词嵌入模型(这里是Word2vec)进行训练了。
基于Word2vec词嵌入模型能从大量未标注的文本数据中“学习”到字/词向量,而且这些字/词向量包含了字词之间的语义关联关系(可以是语义相关或句法相关),正如现实世界中的“物以类聚,类以群分”一样,字词可以由它们身边的字(上下文语境)来定义,而Word2vec词嵌入模型恰恰能学习到这种词汇和语境之间的关联性。
其基本原理如下图所示:
训练完该模型后,将其训练结果投射到三维空间,则是如下景象:
在训练Word2vec的过程中,模型会从大量的诗歌文本数据中学习到词汇之间的2类关联关系,即聚合关系和组合关系。
聚合关系:如果词汇A和词汇B可以互相替换,则它们具有聚合关系。换言之,如果词汇A和词汇B含有聚合关系,在相同的语义或者句法类别中可以利用其中一个来替换另一个,但不影响对整个句子的理解。例如,“萧萧”、“潇潇”都是象声词,多用于描述雨声,具有聚合关系,那么“山下兰芽短浸溪,松间沙路净无泥,萧萧暮雨子规啼”中的“萧萧”可以换做“潇潇”。
组合关系:如果词汇A和词汇B可以在句法关系上相互结合,那么它们具有组合关系。例如,“雨打梨花深闭门,忘了青春,误了青春。赏心乐事共谁论?”中的“忘了”和“误了”都和“青春”存在组合关系,都是“动词+名词”的动宾结构。
现在来寻找与“兵”存在语义关联性的若干词汇:
结果大都是跟“战争”&“创伤”相关的词汇,语义关联关系捕获能力较强,后续的热门诗歌体裁挖掘任务也会用到词嵌入模型的这个特性。
3 度量诗歌词汇之间的语义关联关系
3.1 利用余弦相似性度量诗歌词汇关联度
度量词汇之间的相似度或者关联度,我们一般会使用两个词汇的词向量之间的余弦值,词向量之间的夹角越小,则余弦值越大,越接近1,则语义相关度越高;反之,相关度越低。如下图所示,展示了“甲兵”、“兵戈”和“烽火”之间的余弦相似度的可视化示意图:
通过上述词嵌入模型,similarity(“甲兵”,“兵戈”)=0.75,similarity(“甲兵”,“烽火”)=0.37,similarity(“兵戈”,“烽火”)=0.48。则在这三个词汇中,“甲兵”和“兵戈”之间的语义相关度最高,其次是“兵戈”和“烽火”,最次的“甲兵”和“烽火”。
这种给一个数值来识别词汇相关不相关的方法优点在于表达简洁、计算高效,比如接下来将要进行的热门诗歌题材发现/聚类。但是,这种词汇相关度的计算没有把词汇之间的相关度的“因果路径”直观的反映出来。
那么,有没有一种直观的方法来展示词汇之间的语义相关性,并且能看到为什么它们是存在这样的关联关系(也就是找到词汇关联路径或者语义演变路径)?
答案是---当然有。
我们需要把这个找寻词汇语义演变路径的任务转换成一个TSP问题(旅行商问题)。
3.2 利用A*算法找寻词汇之间的语义演变路径
TSP问题(Traveling Salesman Problem)又译为旅行推销员问题,是数学领域中著名问题之一。假设有一个旅行商人要拜访n个城市,他必须选择所要走的路径,路径的限制是每个城市只能拜访一次,而且最后要回到原来出发的城市。路径的选择目标是要求得的路径路程为所有路径之中的最小值。
回到词汇相关度度量的问题上来,如果我们能在上述训练得到的词嵌入空间中找到两个词汇之间的最短“语义演变”线路,我们就能直观的呈现出这2个词汇之间产生语义关联的“前因后果”。
要实现这个目的,有一个很棒的算法可以实现 --- A*算法(A* search algorithm)。
A*算法,也叫A*(A-Star)算法,是一种静态路网中求解最短路径最有效的直接搜索方法,也是解决许多搜索问题的有效算法。算法中的距离估算值与实际值越接近,最终搜索速度越快。
下图中,网状结果即是之前构建的word2vec词嵌入空间,节点是其中分布的词汇,边由字词之间的余弦相关度构成。
笔者基于上面的词嵌入模型,结合A*算法来计算两个词汇之间的最短语义路径,部分结果如下所示:
在上图的5个词汇对中,“渔樵”和“躬耕”之间的语义距离最短,也就是语义相关度最高,它们之间的语义演变路径也就越短,中间只隔了2个词汇;“燕市”和“宝婺”的语义距离最大,语义相关度最小,二者的语义演变路径隔了12个词汇。
可以看到,语义关联性越弱(distance值越大)的两个词汇之间的最短语义演变路径就越长,反之越短,所以语义距离与语义演变路径长度呈正相关关系,语义关联度与语义演变路径呈负相关关系。
有了前面的词嵌入模型和语义相关度做“铺垫”,后续的热门诗歌题材发现就水到渠成了~
4 用文本聚类进行热门诗歌题材发现
先开宗明义,在本文中,关于“诗歌题材”中的“题材”二字的定义,笔者认为是:
作为诗歌创作材料的社会生活的某些方面,亦特指诗人用以表现作品主题思想的素材,通常是指那些经过集中、取舍、提炼而进入作品的生活事件或生活现象。一言以蔽之,写景、摹物、抒情、记事、明理皆是“题材”。
因为事先不知道这54万余首诗歌中到底会存在多少个题材,所以笔者选取的聚类算法没有预设聚类数这个参数,且兼顾运行效率和节省计算资源,能利用前面训练好的word2vec词嵌入模型和语义关联度计算。此时,有个很好的选择 --- 社区发现算法中的Infomap。
4.1 基于社区发现的热门诗歌题材发现

chatgpt保姆级注册教程


ChatGPT怎么注册?ChatGPT账号需要玩家进行注册,只有注册成功后才能体验这个软件,需要注意的是,想要注册ChatGPT,需要将网络环境切换成国外的ip,且后续的注册流程都需要在这个网络环境下进行。具体的流程小伙伴们可以参考小编带来的这篇教程,相信能给大家带来帮助,话不多说一起来看看吧。

《ChatGPT》注册教程:

1、首先玩家需要将网络环境切换成国外ip,比如美国、加拿大等。

2、并且在后续的注册流程中,还必须要在网络环境下面进行。

>>>官网链接:点击进入

3、打开链接之后,使用自己的邮箱进行账号注册。

4、在打开游戏之后,查收OpenAI账号验证邮件,点击验证按钮即可完成验证。

步骤流程:

以上就是特玩小编整理带来的《ChatGPT》注册教程,更多相关游戏攻略,请点击关注特玩手游网!


【EasyNLP】EasyNLP带你玩转CLIP图文检索

easyapi,easy online,easy-,easyn p2

随着自媒体的不断发展,多种模态数据例如图像、文本、语音、视频等不断增长,创造了互联网上丰富多彩的世界。为了准确建模用户的多模态内容,跨模态检索是跨模态理解的重要任务,采用一种模态的数据作为数据,检索另一种模态的数据。其中,图文检索是跨模态检索的一种主流任务,广泛应用于各种网络应用中,其难点在于跨模态的表示鸿沟。具体来说,文本和图像的数据处于不同的向量空间,无法直接去度量他们的相似性。OpenAI提出了CLIP(Contrastive Language-Image Pre-training)模型,在大规模图文数据集上进行了对比学习训练,在多个数据集上的准确度表明,CLIP优于各种基于ImageNet的模型,也具有良好的零样本学习(Zero-shot Learning)能力。

EasyNLP是阿里云机器学习PAI 团队基于 PyTorch 开发的易用且丰富的中文NLP算法框架,支持常用的中文预训练模型和大模型落地技术,并且提供了从训练到部署的一站式 NLP 开发体验。EasyNLP 提供了简洁的接口供用户开发 NLP 模型,包括NLP应用 AppZoo 和预训练 ModelZoo,同时提供技术帮助用户高效的落地超大预训练模型到业务。由于跨模态理解需求的不断增加,EasyNLP也将支持各种跨模态模型,特别是中文领域的跨模态模型,推向开源社区,希望能够服务更多的 NLP 和多模态算法开发者和研究者,也希望和社区一起推动 NLP /多模态技术的发展和模型落地。

本文简要介绍如何在EasyNLP框架中玩转CLIP模型。

以下简要介绍在EasyNLP框架使用CLIP模型的教程。

首先准备训练数据与验证数据,为tsv文件。这一文件包含以制表符\ 分隔的两列,第一列为文本,第二列为图片的base64编码。用于提取向量接入向量检索系统的输入文件为单列,仅包含文本或图片的base64编码。

为了方便开发者,我们也提供了转换图片到base64编码的示例代码:

import base64  from io import BytesIO  from PIL import Image    img=Image.open(fn)  img_buffer=BytesIO()  img.save(img_buffer, format=img.format)  byte_data=img_buffer.getvalue()  base64_str=base64.b64encode(byte_data) # bytes

下列文件已经完成预处理,可用于测试:

# train  https://atp-modelzoo-sh.oss-cn-shanghai.aliyuncs.com/release/tutorials/CLIP/MUGE_MR_train_base64_part.tsv    # valid  https://atp-modelzoo-sh.oss-cn-shanghai.aliyuncs.com/release/tutorials/CLIP/MUGE_MR_valid_base64_part.tsv    # text  https://atp-modelzoo-sh.oss-cn-shanghai.aliyuncs.com/release/tutorials/CLIP/MUGE_MR_test_base64_part_text.tsv    # image  https://atp-modelzoo-sh.oss-cn-shanghai.aliyuncs.com/release/tutorials/CLIP/MUGE_MR_test_base64_part_image.tsv

我们采用以下命令对CLIP模型进行fine-tune:

easynlp \\    --mode train \\    --worker_gpu=1 \\    --tables=https://zhuanlan.zhihu.com/p/MUGE_MR_train_base64_part.tsv,https://zhuanlan.zhihu.com/p/MUGE_MR_valid_base64_part.tsv \\    --input_schema=text:str:1,image:str:1 \\    --first_sequence=text \\    --second_sequence=image \\    --checkpoint_dir=https://zhuanlan.zhihu.com/p/clip_model/ \\    --learning_rate=1e-4  \\    --epoch_num=1  \\    --random_seed=42 \\    --logging_steps=100 \\    --save_checkpoint_steps 200 \\    --sequence_length=32 \\    --micro_batch_size=32 \\    --app_name=clip \\    --save_all_checkpoints \\    --user_defined_parameters='pretrain_model_name_or_path=clip_chinese_roberta_large_with_vit_large fix_vision=True mode=finetune'      

训练完成后模型被保存到https://zhuanlan.zhihu.com/p/clip_model/。训练结束后,我们可以对模型进行评估:

easynlp \\    --mode evaluate \\    --worker_gpu=1 \\    --tables=https://zhuanlan.zhihu.com/p/MUGE_MR_valid_base64_part.tsv \\    --input_schema=text:str:1,image:str:1 \\    --first_sequence=text \\    --second_sequence=image \\    --checkpoint_dir=https://zhuanlan.zhihu.com/p/clip_model/ \\    --random_seed=42 \\    --logging_steps=100 \\    --save_checkpoint_steps=500 \\    --sequence_length=32 \\    --micro_batch_size=32 \\    --app_name=clip 

模型训练完毕后,我们可以将其用于文本或图片的特征提取,示例如下:

easynlp \\        --mode predict \\        --worker_gpu=1 \\        --tables=https://zhuanlan.zhihu.com/p/MUGE_MR_test_base64_part_text.tsv \\        --input_schema=text:str:1 \\        --output_schema=text_feat \\        --outputs=https://zhuanlan.zhihu.com/p/text_feat.tsv \\        --first_sequence=text \\        --checkpoint_dir=https://zhuanlan.zhihu.com/p/clip_model/ \\        --random_seed=42 \\        --logging_steps=100 \\        --save_checkpoint_steps=500 \\        --sequence_length=32 \\        --micro_batch_size=2 \\        --app_name=clip     easynlp \\        --mode predict \\        --worker_gpu=1 \\        --tables=https://zhuanlan.zhihu.com/p/MUGE_MR_test_base64_part_image.tsv \\        --input_schema=image:str:1 \\        --output_schema=image_feat \\        --outputs=https://zhuanlan.zhihu.com/p/image_feat.tsv \\        --first_sequence=image \\        --checkpoint_dir=https://zhuanlan.zhihu.com/p/clip_model/ \\        --random_seed=42 \\        --logging_steps=100 \\        --save_checkpoint_steps=500 \\        --sequence_length=32 \\        --micro_batch_size=2 \\        --app_name=clip 

提取出的特征存储在一个tsv文件中,每行对应输入中的一个文本或一个图片,维度之间采用制表符\ 分隔。

  1. Alec Radford, Jong Wook Kim, Chris Hallacy, Aditya Ramesh, Gabriel Goh, Sandhini Agarwal Girish Sastry, Amanda Askell, Pamela Mishkin, Jack Clark, Gretchen Krueger. Ilya Sutskever. Learning transferable visual models from natural language supervision. arXiv
  2. Chengyu Wang, Minghui Qiu, Taolin Zhang, Tingting Liu, Lei Li, Jianing Wang, Ming Wang, Jun Huang, Wei Lin. EasyNLP: A Comprehensive and Easy-to-use Toolkit for Natural Language Processing. arXiv
  • Github地址:
  • [EasyNLP解析]阿里灵杰:阿里云机器学习PAI开源中文NLP算法框架EasyNLP,助力NLP大模型落地
  • [EasyNLP技术]EasyNLP带你玩转图文检索(本文)
  • [EasyNLP技术]ACL工作之元知识蒸馏MetaKD
  • [EasyNLP技术]电商多模态预训练FashionBERT
  • [EasyNLP技术]EasyNLP框架概览

上一篇win10、python3.6/python3.7平台下,Mujoco150安装教程(附安装包)

下一篇【GPT-3】第2章 使用 OpenAI API