没用的知识增加了,尝试用文心实现褒义词贬义词快速分类
尝试用文心实现褒义词贬义词快速分类
- 一、我的需求
- 二、项目环境搭建
- 千帆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))
调用结果:
结果解释:
值为正数表示与褒义词词性相近,如果值为负数表示与贬义词词性相近
总结
到这儿,我的创意就全部实现了:通过评分的高低我们就可以做出该词是褒义词还是贬义词的判断。当然该程序还有很大的进步空间,后续可以支持多词语并发判断甚至是对一句话进行判断是表扬还是诋毁。
作为开发者,我们非常期待在百度世界大会上看到最新的人工智能技术和应用案例,了解行业最前沿的技术和趋势。同时,我也期待通过百度世界大会与其他开发者和企业进行交流,分享经验和探讨合作可能性。此外,我也希望能够借此机会深入了解百度的技术和产品,掌握相关技能并运用到自己的项目中,实现更好的技术创新和商业价值。
相关文章:

没用的知识增加了,尝试用文心实现褒义词贬义词快速分类
尝试用文心实现褒义词贬义词快速分类 一、我的需求二、项目环境搭建千帆SDK安装及使用流程 三、项目实现过程创建应用获取签名调用接口计算向量积总结 百度世界大会将于10月17日在北京首钢园举办,今天进入倒计时五天了。通过官方渠道的信息了解到,这次是…...

AWS SAP-C02教程3--网络资源
架构设计中网络也是少不了的一个环节,而AWS有自身的网络结构和网络产品。本章中将带你看看AWS中不同网络产品,以及计算资源、存储资源等产品在网络架构中处于哪个位置,如何才能让它们与互联网互通、与其它产品互通。下图视图将SAP涉及到网络相关组件在一张图表示出来,图中可…...

【TensorFlow2 之012】TF2.0 中的 TF 迁移学习
#012 TensorFlow 2.0 中的 TF 迁移学习 一、说明 在这篇文章中,我们将展示如何在不从头开始构建计算机视觉模型的情况下构建它。迁移学习背后的想法是,在大型数据集上训练的神经网络可以将其知识应用于以前从未见过的数据集。也就是说,为什么…...

mysql面试题46:MySQL中datetime和timestamp的区别
该文章专注于面试,面试只要回答关键点即可,不需要对框架有非常深入的回答,如果你想应付面试,是足够了,抓住关键点 面试官:MySQL中DATETIME和TIMESTAMP的区别 在MySQL中,DATETIME和TIMESTAMP是两种用于存储日期和时间的数据类型。虽然它们都可以用于存储日期和时间信息…...

【Spring Boot】RabbitMQ消息队列 — RabbitMQ入门
💠一名热衷于分享知识的程序员 💠乐于在CSDN上与广大开发者交流学习。 💠希望通过每一次学习,让更多读者了解我 💠也希望能结识更多志同道合的朋友。 💠将继续努力,不断提升自己的专业技能,创造更多价值。🌿欢迎来到@"衍生星球"的CSDN博文🌿 🍁本…...

Navicat定时任务
Navicat定时任务 1、启动Navicat for MySQL工具,连接数据库。 2、查询定时任务选项是否开启 查询命令:SHOW VARIABLES LIKE ‘%event_scheduler%’; ON表示打开,OFF表示关闭。 打开定时任务命令 SET GLOBAL event_scheduler 0; 或者 SET G…...

小白必备:简单几步, 使用Cpolar+Emlog在Ubuntu上搭建个人博客网站
文章目录 前言1. 网站搭建1.1 Emolog网页下载和安装1.2 网页测试1.3 cpolar的安装和注册 2. 本地网页发布2.1 Cpolar临时数据隧道2.2.Cpolar稳定隧道(云端设置)2.3.Cpolar稳定隧道(本地设置) 3. 公网访问测试总结 前言 博客作为使…...
封装 Token
什么是token? 作为计算机术语,是“令牌”的意思 。 Token 是服务端生成的一串字符串,以作客户端进行请求的一个令牌,当第一次登录后,服务器生成一个Token便将此Token返回给客户端,以后客户端只需带上这个Token前来请…...
CloudCompare 二次开发(17)——点云添加均匀分布的随机噪声
目录 一、概述二、代码集成三、结果展示一、概述 不依赖任何第三方点云相关库,使用CloudCompare编程实现点云添加随机噪声。添加随机噪声的算法原理见:PCL 点云添加均匀分布的随机噪声。 二、代码集成 1、mainwindow.h文件public中添加: void doActionAddRandomNoise(); …...

研发必会-异步编程利器之CompletableFuture(含源码 中)
近期热推文章: 1、springBoot对接kafka,批量、并发、异步获取消息,并动态、批量插入库表; 2、SpringBoot用线程池ThreadPoolTaskExecutor异步处理百万级数据; 3、基于Redis的Geo实现附近商铺搜索(含源码) 4、基于Redis实现关注、取关、共同关注及消息推送(含源码) 5…...

上海亚商投顾:沪指高开高走 锂电等新能源赛道大反攻
上海亚商投顾前言:无惧大盘涨跌,解密龙虎榜资金,跟踪一线游资和机构资金动向,识别短期热点和强势个股。 一.市场情绪 沪指昨日高开后强势震荡,创业板指盘中一度翻绿,随后探底回升再度走高。碳酸锂期货合约…...

力扣第235题 二又搜索树的最近公共祖先 c++
题目 235. 二叉搜索树的最近公共祖先 中等 (简单) 相关标签 树 深度优先搜索 二叉搜索树 二叉树 给定一个二叉搜索树, 找到该树中两个指定节点的最近公共祖先。 百度百科中最近公共祖先的定义为:“对于有根树 T 的两个结点 p、q&…...

时代风口中的Web3.0基建平台,重新定义Web3.0!
近年来,Web3.0概念的广泛兴起,给加密行业带来了崭新的叙事方式,同时也为加密行业提供了更加具有想象力的应用场景与商业空间,并让越来越多的行业从业者们意识到只有更大众化的市场共性需求才能推动加密市场的持续繁荣。当前围绕这…...

React学习笔记 001
什么是React 1.发送请求获取数据 处理数据(过滤、整理格式等) 3.操作DOM呈现页面 react 主要是负责第三部 操作dom 处理页面 数据渲染为HTML视图的开源js库。 好处 避免dom繁琐 组件化 提升复用率 特点 声明式编程: 简单 组件化编程…...

2023 | github无法访问或速度慢的问题解决方案
github无法访问或速度慢的问题解决方案 前言: 最近经常遇到github无法访问, 或者访问特别慢的问题, 在搜索了一圈解决方案后, 有些不再有效了, 但是其中有几个还特别好用, 总结一下. 首选方案 直接在github.com的域名上加一个fast > githubfast.com, 访问的是与github完全相…...

unity各种插件集合(自用)
2D Animation——2D序列帧/骨骼动画相关 2D PSD Importer——psb骨骼动画(unity官方建议使用psb而非psd) (Advanced —show preview package 勾选)出现 2D IK——反向动力学IK Universal RP——升级项目到Urp(通用渲…...

内网收集哈希传递
1.内网收集的前提 获得一个主机权限 补丁提权 可以使用 systeminfo 然后使用python脚本找到缺少的补丁 下载下来 让后使用exp提权 收集信息 路由信息 补丁接口 dns域看一看是不是域控 扫描别的端口 看看有没有内在的web网站 哈希传递 哈希是啥 哈希…...
前端目录笔记
HTML HTML 笔记:初识 HTML(HTML文本标签、文本列表、嵌入图片、背景色、网页链接)-CSDN博客html 笔记:CSS_UQI-LIUWJ的博客-CSDN博客HTML 笔记 表格_UQI-LIUWJ的博客-CSDN博客 javascript JavaScript 笔记 初识JavaScript&…...

Sui主网升级至V1.11.2版本
Sui主网现已升级至V1.11.2版本,同时Sui协议升级至27版本。其他升级要点如下: 对于一些更高级别的交易,更改了一些gas费设置,使其gas费消耗的更快。这些更改不影响以前在网络上运行的任何交易,只是为了确保在开始大量使…...
Mysql-数据库和数据表的基本操作
Mysql数据库和数据表的基本操作 一.数据库 1.创建数据库 创建数据库就是在数据库系统中划分一块空间存储数据 (1)语法 create database 数据库名称;(2)查看数据库 show create database 数据库名;(3)…...
Vim 调用外部命令学习笔记
Vim 外部命令集成完全指南 文章目录 Vim 外部命令集成完全指南核心概念理解命令语法解析语法对比 常用外部命令详解文本排序与去重文本筛选与搜索高级 grep 搜索技巧文本替换与编辑字符处理高级文本处理编程语言处理其他实用命令 范围操作示例指定行范围处理复合命令示例 实用技…...

理解 MCP 工作流:使用 Ollama 和 LangChain 构建本地 MCP 客户端
🌟 什么是 MCP? 模型控制协议 (MCP) 是一种创新的协议,旨在无缝连接 AI 模型与应用程序。 MCP 是一个开源协议,它标准化了我们的 LLM 应用程序连接所需工具和数据源并与之协作的方式。 可以把它想象成你的 AI 模型 和想要使用它…...

家政维修平台实战20:权限设计
目录 1 获取工人信息2 搭建工人入口3 权限判断总结 目前我们已经搭建好了基础的用户体系,主要是分成几个表,用户表我们是记录用户的基础信息,包括手机、昵称、头像。而工人和员工各有各的表。那么就有一个问题,不同的角色…...
在Ubuntu中设置开机自动运行(sudo)指令的指南
在Ubuntu系统中,有时需要在系统启动时自动执行某些命令,特别是需要 sudo权限的指令。为了实现这一功能,可以使用多种方法,包括编写Systemd服务、配置 rc.local文件或使用 cron任务计划。本文将详细介绍这些方法,并提供…...

网络编程(UDP编程)
思维导图 UDP基础编程(单播) 1.流程图 服务器:短信的接收方 创建套接字 (socket)-----------------------------------------》有手机指定网络信息-----------------------------------------------》有号码绑定套接字 (bind)--------------…...

C# 求圆面积的程序(Program to find area of a circle)
给定半径r,求圆的面积。圆的面积应精确到小数点后5位。 例子: 输入:r 5 输出:78.53982 解释:由于面积 PI * r * r 3.14159265358979323846 * 5 * 5 78.53982,因为我们只保留小数点后 5 位数字。 输…...

Python Ovito统计金刚石结构数量
大家好,我是小马老师。 本文介绍python ovito方法统计金刚石结构的方法。 Ovito Identify diamond structure命令可以识别和统计金刚石结构,但是无法直接输出结构的变化情况。 本文使用python调用ovito包的方法,可以持续统计各步的金刚石结构,具体代码如下: from ovito…...
JS手写代码篇----使用Promise封装AJAX请求
15、使用Promise封装AJAX请求 promise就有reject和resolve了,就不必写成功和失败的回调函数了 const BASEURL ./手写ajax/test.jsonfunction promiseAjax() {return new Promise((resolve, reject) > {const xhr new XMLHttpRequest();xhr.open("get&quo…...

接口自动化测试:HttpRunner基础
相关文档 HttpRunner V3.x中文文档 HttpRunner 用户指南 使用HttpRunner 3.x实现接口自动化测试 HttpRunner介绍 HttpRunner 是一个开源的 API 测试工具,支持 HTTP(S)/HTTP2/WebSocket/RPC 等网络协议,涵盖接口测试、性能测试、数字体验监测等测试类型…...
uniapp 字符包含的相关方法
在uniapp中,如果你想检查一个字符串是否包含另一个子字符串,你可以使用JavaScript中的includes()方法或者indexOf()方法。这两种方法都可以达到目的,但它们在处理方式和返回值上有所不同。 使用includes()方法 includes()方法用于判断一个字…...