没用的知识增加了,尝试用文心实现褒义词贬义词快速分类

尝试用文心实现褒义词贬义词快速分类

  • 一、我的需求
  • 二、项目环境搭建
    • 千帆SDK安装及使用流程
  • 三、项目实现过程
    • 创建应用
    • 获取签名
    • 调用接口
    • 计算向量积
    • 总结

  百度世界大会将于10月17日在北京首钢园举办,今天进入倒计时五天了。通过官方渠道的信息了解到,这次是百度向公众和产业交出的一份“年度AI成绩单”,其中一项备受关注的演讲是李彦宏先生将分享「手把手教你做AI原生应用」,进行一小时的“现场教学”。有消息称,文心一言4.0版本,也会在这场大会上发布,升级后的新变化还是比较期待体验的。
在这里插入图片描述
  从文心一言推出,围绕着它的的体验、实践有很多,今年3月,百度还推出了“千帆大模型平台”, 据称是全球首个一站式的企业级大模型平台,提供包括文心一言在内的大模型服务及第三方大模型服务,包括ErnieBot、 ErnieBot-turbo、BLOOMZ-7B、Embedding-V1、Qianfan-BLOOMZ-7B-compressed以及Qianfan-Chinese-Llama-2-7B。
在这里插入图片描述
  这些大模型提供了Chat对话、Completions续写、Embeddings向量化、自定义模型导入以及Images图像等多种功能。用户可以通过平台提供的API进行应用开发,实现自己想要的功能和应用场景。

一、我的需求

  记得上中学的时候,老师经常给我们讲解什么是褒义词,什么是贬义词,什么是中性词,但是每次考试的时候同学们都记不住,都会出错。我在浏览平台功能的时候,正好看到千帆大模型中有Embeddings向量化的功能,想着能不能搞一个【褒义词与贬义词快速分类】的功能,这样老师再也不用担心我的学习了。

  在开始之前,我们需要了解两个概念,其一是Embedding-V1,它是基于百度文心大模型技术的文本表示模型,将文本转化为用数值表示的向量形式,用于文本检索、信息推荐、知识挖掘等场景。其二是numpy库,numpy是一个广泛应用于科学计算和数据分析的Python库。它提供了高性能的多维数组对象,以及许多用于操作这些数组的函数。numpy不仅提供了快速、高效的数值计算能力,还提供了用于处理大型数据集和执行复杂数学运算的工具。

具体怎么做呢?我的思路是这样的:

  • 将“褒义词”和“贬义词”作为基础词去Embedding-V1模型中获取向量数组;
  • 将“美好的”和“肮脏的”作为测试词去Embedding-V1模型中获取向量数组;
  • 利用numpy库的函数算出测试词与基础词的向量积;
  • 最后利用一定规则来区分什么是贬义词、什么是褒义词;

二、项目环境搭建

  说干就干,先把项目需要的环境搭建起来,此处我用的是Python的环境。

  Python 环境的安装及SDK的下载这个地方就不在赘述了,直接省略,有不懂得同学可以滴滴我。
  安装numpy库,执行命令 pip install numpy。我们此时就是想利用numpy 库中的函数实现向量点积和矩阵乘法。

千帆SDK安装及使用流程

(1)安装千帆SDK
pip install qianfan
注意:目前支持 Python >= 3.7版本。

(2)调用千帆SDK

  • 步骤一,创建应用,获取应用API Key(AK) 和 Secret Key(SK)。
  • 步骤二,初始化AK 和 SK。
  • 步骤三,调用SDK。

具体操作步骤

三、项目实现过程

创建应用

  创建一个名为【褒贬词区分】的千帆应用,创建成功后,获取AppID、API Key、Secret Key 等信息。

获取签名

  通过应用的API_KEY和SECRET_KEY 获取应用的 access_token

def get_access_token():url = "https://aip.baidubce.com/oauth/2.0/token"params = {"grant_type": "client_credentials", "client_id": API_KEY, "client_secret": SECRET_KEY}return str(requests.post(url, params=params).json().get("access_token"))

调用接口

  拿到获取的 access_token 之后,用“褒义词”作为基础词去Embedding-V1模型中获取向量数组,剩下的几个词语获取向量数组的方法都是这个。

def get_vector_array(text):url = "https://aip.baidubce.com/rpc/2.0/ai_custom/v1/wenxinworkshop/embeddings/embedding-v1?access_token=" + "***..."payload = json.dumps({"input": [text]})headers = {'Content-Type': 'application/json'}response = requests.request("POST", url, headers=headers, data=payload)print(response['data'][0]['embedding'])

得到的调试向量数组格式如下:

['0.08061837404966354', '0.04078327864408493', '-0.09363867342472076', '0.028215458616614342', '-0.0002488529426045716', '0.03429635614156723', '-0.04498879984021187', '-0.03798121586441994', '-0.011711484752595425', '-0.02145105041563511', '0.019791603088378906', '-0.17122730612754822', 
'0.011323302052915096', '0.015307868830859661', '-0.13033172488212585', '-0.014496560208499432', '-0.011398260481655598', '0.07101204991340637', '0.023673566058278084', '0.028881099075078964', '0.046047814190387726', '-0.04538198560476303', '0.026869377121329308', '-0.06881920993328094', '0.017508693039417267', '-0.013237032108008862', '0.0011747998651117086', '-0.0385085791349411', '0.07648546993732452', '0.055476147681474686', '-0.00469418428838253', '0.07032959163188934', '-0.031531669199466705', '-0.02622816525399685', '-0.04684654623270035', '-0.002371862530708313', '0.021081145852804184', '0.08082328736782074', '-0.013437628746032715', '0.0258968323469162', '-0.09822260588407516', '0.08117881417274475', '0.0039118751883506775', '0.019459901377558708', '0.013869237154722214', '0.004998866003006697', '-0.057127662003040314', '0.005403431132435799', '-0.03721161186695099', '0.000022977143089519814', '0.007839921861886978', '-0.09754340350627899', '0.006771354470402002', '-0.05724136903882027', '-0.0028451320249587297', '0.05861274525523186', '-0.03603329509496689', '-0.059220317751169205', '-0.0385906845331192', '0.10700726509094238', '0.08236964046955109', '-0.023739730939269066', '-0.0031100588385015726', '0.07149451971054077', '-0.0199934933334589', '0.037235625088214874', '-0.010063654743134975', '0.0029898544307798147', '-0.01747535727918148', '0.014759315177798271', '0.02163994126021862', '-0.06262267380952835', '-0.010288061574101448', '0.044045817106962204', '0.06931136548519135', '-0.07700000703334808', '-0.007435771636664867', '0.025464389473199844', '-0.011003663763403893', '-0.07518579810857773', '-0.04184756800532341', '0.023904750123620033', '0.011393743567168713', '0.01837831176817417', '-0.0886322483420372', '0.0952671691775322', '-0.12693588435649872', '-0.038294460624456406', '0.12494516372680664', '0.03944138064980507', '0.02252635359764099', '-0.05095754563808441', '-0.0012124445056542754', '-0.05008591711521149', '-0.0782846137881279', '0.04561040550470352', '-0.015215445309877396', '-0.07060899585485458', '0.10074105858802795', '-0.0035771785769611597', '-0.0016859406605362892', '-0.0006168847903609276', '-0.005897987633943558', '-0.12729158997535706', '0.005399566609412432', '-0.1122061163187027', '-0.06463941186666489', '-0.09920275956392288', '0.03346830978989601', '0.026707271113991737', '0.015697190538048744', '-0.05596184358000755', '-0.010395456105470657', '-0.03530685231089592', '0.031741540879011154', '0.080228790640831', '0.03081914409995079', '0.07431047409772873', '0.029965108260512352', '-0.0037744399160146713', '-0.0901137962937355', '0.030600417405366898', '0.0031392634846270084', '0.10319962352514267', '0.004642121028155088', '0.08238579332828522', '0.06005106493830681', '-0.07278252393007278', '0.05138978362083435', '0.056823115795850754', '0.004057546146214008', '-0.04828854277729988', '0.09156550467014313', '0.05152333900332451', '-0.11374125629663467', '0.07170815020799637', '0.06275910139083862', '0.07493220269680023', '-0.0034050499089062214', '0.07737395167350769', '-0.03497365489602089', '-0.038866959512233734', '-0.008941351436078548', '0.01303667202591896', '-0.03233131766319275', '0.06729909032583237', '0.08887197822332382', '0.05096267908811569', '-0.09103943407535553', '0.06260557472705841', '-0.0160642359405756', '0.038234077394008636', '0.00792619027197361', '-0.08433590084314346', '-0.08574526011943817', '0.00002219131238234695', '0.02143322303891182', '-0.04925483837723732', '-0.009377656504511833', '-0.049814555794000626', '-0.03575558215379715', '-0.035428132861852646', '-0.056898653507232666', '-0.03874790668487549', '-0.0012135077267885208', '0.017201567068696022', '-0.042181432247161865', '0.09511004388332367', '-0.013392479158937931', '0.1335284262895584', '-0.019908159971237183', '-0.0023446588311344385', '-0.0055818622931838036', '0.01297300960868597', '0.02981858141720295', '-0.0035326394718140364', '-0.04641216993331909', '-0.005125344730913639', '-0.027598926797509193', '-0.044506143778562546', '0.0424048975110054', '0.06094472110271454', '-0.013269977644085884', '-0.022739848122000694', 
'0.06919900327920914', '-0.012230281718075275', '0.027269702404737473', '-0.029507067054510117', '0.01824810914695263', '0.026650087907910347', '0.03923342376947403', '0.05708055570721626', '0.027821602299809456', '-0.01805994287133217', '0.02489103563129902', '-0.002894284902140498', '-0.04258480295538902', '-0.04005945101380348', '0.032783474773168564', '0.004660352133214474', '0.03880106657743454', '0.07947057485580444', '0.0789344385266304', '-0.07657215744256973', '0.050499022006988525', '0.016807949170470238', '-0.0069297500886023045', '-0.06111866235733032', '0.0590253509581089', '-0.03539840131998062', '-0.005932340864092112', '0.002571317134425044', '0.023904312402009964', '-0.0854281559586525', '0.013114570640027523', '0.024038389325141907', '-0.03864211216568947', '0.014964412897825241', '0.03544454649090767', '-0.0199270136654377', '-0.08245886862277985', '-0.026577411219477654', '0.06511317193508148', '-0.014447598718106747', '0.01838453859090805', '0.09550153464078903', '0.02454116940498352', '-0.014310576021671295', '0.04404760152101517', '0.052973322570323944', '-0.10075508803129196', '-0.03487679362297058', '0.03173833340406418', '-0.00460244994610548', '-0.0739917978644371', '-0.05986810475587845', '0.04747162386775017', '0.017376329749822617', '0.05890245363116264', '-0.039818502962589264', '0.009928018786013126', '-0.000260817410890013', '0.05027851089835167', '-0.09310005605220795', '-0.06347518414258957', '0.010845684446394444', '-0.04205198958516121', '0.024881191551685333', '0.0043700882233679295', '-0.03337865322828293', '0.01294893678277731', '0.017244484275579453', '-0.015301528386771679', '-0.05580389127135277', '0.0592043474316597', '-0.04951205477118492', 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, '-0.10493233799934387', 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, '0.40346506237983704', 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, '0.3648037612438202', 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]

计算向量积

  调用 numpy 库中的函数对接口返回的向量数组进行计算,获取向量积

def cosine_similarity(a, b):return np.dot(a, b)
#褒义词
commendatory_words = get_vector_array("褒义词")
#贬义词
derogatory_term = get_vector_array("贬义词")
#漂亮的
beautiful = get_vector_array("漂亮的")
#肮脏的
dirty = get_vector_array("肮脏的")
def get_score(embedding):return cosine_similarity(commendatory_words, embedding) - cosine_similarity(derogatory_term, embedding)if __name__ == '__main__':print(get_score(beautiful))print("~~~~~~~~~~~~~~~~~~~~~~~~")print(get_score(dirty))

调用结果:
在这里插入图片描述
结果解释:
  值为正数表示与褒义词词性相近,如果值为负数表示与贬义词词性相近

总结

  到这儿,我的创意就全部实现了:通过评分的高低我们就可以做出该词是褒义词还是贬义词的判断。当然该程序还有很大的进步空间,后续可以支持多词语并发判断甚至是对一句话进行判断是表扬还是诋毁。
  作为开发者,我们非常期待在百度世界大会上看到最新的人工智能技术和应用案例,了解行业最前沿的技术和趋势。同时,我也期待通过百度世界大会与其他开发者和企业进行交流,分享经验和探讨合作可能性。此外,我也希望能够借此机会深入了解百度的技术和产品,掌握相关技能并运用到自己的项目中,实现更好的技术创新和商业价值。

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

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

相关文章

Web后端开发登录校验及JWT令牌,过滤器,拦截器详解

如果用户名正确则成功进入 登录功能 代码 Controller Service Mapper 结果 若登录成功结果如下: 如果登录失败,结果如下 登录校验 为什么需要登录校验 有时再未登录情况下, 我们也可以直接访问部门管理, 员工管理等功能 因此我们需要一个登录校验操作, 只有确认用户登录…

【Debian】报错:su: Authentication failure

项目场景: 今天我重新刷了一个debian系统。 系统版本: # 查看系统版本 lsb_release -a 我的系统版本: No LSB modules are available. Distributor ID:Debian Description: Debian GNU/Linux 12 (bookworm&#xff…

优雅而高效的JavaScript——箭头函数

🤗博主:小猫娃来啦 🤗文章核心:优雅而高效的JavaScript——箭头函数 文章目录 前言箭头函数的基本语法和特点箭头函数的语法箭头函数的词法绑定特性箭头函数的this值箭头函数无法使用arguments对象 箭头函数与传统函数的比较箭头函…

每年高考时间是几月几号 高考开始时间

高考是高中生最重要的一个阶段,甚至影响着很多学生的未来,相信大家都很关注高考的具体时间是什么时候,本次将详细给您介绍高考的具体开始时间以及结束时间。 每年高考的时间都是6月7日开始,一共持续三天时间左右,但是…

身份证号码,格式校验:@IdCard(自定义注解)

目标 自定义一个用于校验 身份证号码 格式的注解IdCard,能够和现有的 Validation 兼容,使用方式和其他校验注解保持一致(使用 Valid 注解接口参数)。 校验逻辑 有效格式 符合国家标准。 公民身份号码按照GB11643-…

竞赛选题 深度学习+opencv+python实现车道线检测 - 自动驾驶

文章目录 0 前言1 课题背景2 实现效果3 卷积神经网络3.1卷积层3.2 池化层3.3 激活函数:3.4 全连接层3.5 使用tensorflow中keras模块实现卷积神经网络 4 YOLOV56 数据集处理7 模型训练8 最后 0 前言 🔥 优质竞赛项目系列,今天要分享的是 &am…

印度网络安全:威胁与应对

随着今年过半,我们需要评估并了解不断崛起的网络威胁复杂性,这些威胁正在改变我们的数字景观。 从破坏性的网络钓鱼攻击到利用人工智能的威胁,印度的网络犯罪正在升级。然而,在高调的数据泄露事件风暴中,我们看到了政…

游戏反虚拟机检测方案

近年来,游戏市场高速发展,随之而来的还有图谋利益的游戏黑产。在利益吸引下,游戏黑产扩张迅猛,攻击趋势呈现出角度多样化的特点。 在这一趋势下,游戏安全防护的检测覆盖率显得尤为重要。如果游戏在某一环节出现被绕过…

Linux系统卡顿处理记录(Debian)

问题现象描述 现象linux操作系统卡顿(就是很慢),但是系统任然能够使用。 文章一步步的排查并且定位问题。 排查步骤 1. 使用top命令查看CPU是否占用过高。(未发现)排除问题 2. 使用df -h查看硬盘是否被占满。&#…

浏览器唤起钉钉 各项功能

浏览器唤起钉钉对应人员聊天 文档地址 https://open.dingtalk.com/document/client/unified-routing-protocol 唤起聊天 不过只能唤起叮叮的名片 id为叮叮号 <a href"dingtalk://dingtalkclient/action/sendmsg?dingtalk_id{id}"></a>id&#xff1a; …

Spark 9:Spark 新特性

Spark 3.0 新特性 Adaptive Query Execution 自适应查询(SparkSQL) 由于缺乏或者不准确的数据统计信息(元数据)和对成本的错误估算(执行计划调度)导致生成的初始执行计划不理想&#xff0c;在Spark3.x版本提供Adaptive Query Execution自适应查询技术&#xff0c;通过在”运行…

vite+vue3+ts中使用require.context | 报错require is not defined | 获取文件夹中的文件名

vitevue3ts中使用require.context|报错require is not defined|获取文件夹中的文件名 目录 vitevue3ts中使用require.context|报错require is not defined|获取文件夹中的文件名一、问题背景二、报错原因三、解决方法 一、问题背景 如题在vitevue3ts中使用required.context时报…

《UnityShader入门精要》学习1

读者可以在开源网站github&#xff08;https://github.com/candycat1992/Unity_Shaders_Book&#xff09;上下载本书的源代码。 第二章 渲染流水线 渲染流水线的最终目的在于生成或者说是渲染一张二维纹理&#xff0c;即我们在电脑屏幕上看到的所有效果&#xff0c;它的输入是…

【网络安全】「漏洞原理」(二)SQL 注入漏洞之理论讲解

前言 严正声明&#xff1a;本博文所讨论的技术仅用于研究学习&#xff0c;旨在增强读者的信息安全意识&#xff0c;提高信息安全防护技能&#xff0c;严禁用于非法活动。任何个人、团体、组织不得用于非法目的&#xff0c;违法犯罪必将受到法律的严厉制裁。 【点击此处即可获…

发送消息时序图

内窥镜消息队列发送消息原理 目的 有一个多线程的Java应用程序&#xff0c;使用消息队列来处理命令 时序图 startumlactor User participant "sendCmdWhiteBalance()" as Controller participant CommandConsumer participant MessageQueueUser -> Controller:…

【数据库】Sql Server数据迁移,处理自增字段赋值

给自己一个目标&#xff0c;然后坚持一段时间&#xff0c;总会有收获和感悟&#xff01; 在实际项目开发中&#xff0c;如果遇到高版本导入到低版本&#xff0c;或者低版本转高版本&#xff0c;那么就会出现版本不兼容无法导入&#xff0c;此时通过程序遍历创建表和添加数据方式…

开源音乐播放器!

导读音乐是生活的一部分。维基百科关于音乐发展历史的文章有这样一段不错的描述说&#xff1a;“全世界所有的人们&#xff0c;包括哪怕是最孤立、与世隔绝的部落&#xff0c;都会有自己的特色音乐……”好吧&#xff0c;我们开源人就构成了一个部落。我建议我们的“音乐形式”…

TCP/IP(十四)流量控制

一 流量控制 说明&#xff1a; 本文只是原理铺垫,没有用tcpdumpwiresahrk鲜活的案例讲解,后续补充 ① 基本概念 流量控制: TCP 通过接受方实际能接收的数据量来控制发送方的窗口大小 ② 正常传输过程 背景:1、客户端是接收方,服务端是发送方 --> 下载2、假设接收窗…

基于Vue+ELement实现增删改查案例与表单验证

目录 前言 一、增删改查案例的实现 1.查询 2.增加 3.修改 4.删除 5.增删改查效果演示 二、表单验证 1.在官网中找到表单---表单验证 2.定义规则 3.使用规则 前言 Element UI是一款基于Vue.js的组件库&#xff0c;提供了丰富的组件和功能&#xff0c;包括表单、按钮、…

mysql面试题28:MySQL的主从复制模式、MySQL主从复制的步骤、MySQL主从同步延迟的原因、MySQL主从同步延迟的解决办法

该文章专注于面试,面试只要回答关键点即可,不需要对框架有非常深入的回答,如果你想应付面试,是足够了,抓住关键点 面试官:简单讲一下MySQL的主从复制模式 MySQL的主从复制(Master-Slave Replication)是一种数据库复制技术,用于将一个MySQL数据库服务器(主服务器)的…