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

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

  • 一、我的需求
  • 二、项目环境搭建
    • 千帆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.mzph.cn/news/103879.shtml

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

相关文章

Jmeter连接mysql数据库详细步骤

一、一般平常工作中使用jmeter 连接数据库的作用 主要包括: 1、本身对数据库进行测试(功能、性能测试)时会需要使用jmeter连接数据库 2、功能测试时,测试出来的结果需要和数据库中的数据进行对比是否正确一致。这时候可以通过j…

XML外部实体注入攻击XXE

xml是扩展性标记语言,来标记数据、定义数据类型,是一种允许用户对自己的标记语言进行定义的源语言。XML文档结构包括XML声明、DTD文档类型定义(可选)、文档元素,一般无法直接打开,可以选择用excl或记事本打…

内存空间的分配与回收之连续分配管理方式

1.连续分配管理方式 连续分配:指为用户进程分配的必须是一个连续的内存空间。 1.单一连续分配 在单一连续分配方式中,内存被分为系统区和用户区。系统区通常位于内存的低地址部分,用于存放操作系统相关数据;用户区用于存放用户进程相关数据。内存中只…

2023年淘宝天猫双11活动时间什么时候开始到几月几号结束?

2023年淘宝天猫双11超级红包领取时间 第一阶段:2023年10月24日20:00 至11月03日23:59 第二阶段:2023年11月04日00:00 至 11月11日23:59 2023年淘宝天猫双11超级红包使用时间 第一阶段:2023年10月31日20:00 至11月03日23:59 第二阶段&…

Xcode 14.3.1build 报错整理

1、Command PhaseScriptExecution failed with a nonzero exit code 2、In /Users/XX/XX/XX/fayuan-mediator-app-rn/ios/Pods/CocoaLibEvent/lib/libevent.a(buffer.o), building for iOS Simulator, but linking in object file built for iOS, file /Users/XX/XX/XX/fayuan…

微服务设计原则:构建弹性和可维护的应用

文章目录 1. 单一职责原则2. 独立性和自治性3. 弹性和容错性4. API 网关5. 日志和监控6. 版本管理7. 自动化部署和持续集成8. 安全性9. 数据一致性10. 文档和通信拓展思考结论 🎉欢迎来到架构设计专栏~微服务设计原则:构建弹性和可维护的应用 ☆* o(≧▽…

Qt打开ui文件经常报错

报错如下: 解决方法: 最后设置成默认值 即可

竞赛选题 深度学习 机器视觉 人脸识别系统 - opencv python

文章目录 0 前言1 机器学习-人脸识别过程人脸检测人脸对其人脸特征向量化人脸识别 2 深度学习-人脸识别过程人脸检测人脸识别Metric Larning 3 最后 0 前言 🔥 优质竞赛项目系列,今天要分享的是 🚩 深度学习 机器视觉 人脸识别系统 该项目…

高并发下的服务容错

在微服务架构中,我们将业务拆分成一个个的服务,服务与服务之间可以相互调用,但是由于网络 原因或者自身的原因,服务并不能保证服务的100%可用,如果单个服务出现问题,调用这个服务就会 出现网络延迟&#xf…

计算机网络传输层知识总结·

传输层提供的服务 传输层的功能 ●传输层提供进程之间的逻辑通信,即端到端的通信 ●复用和分用 ●差错检测(首部和数据部分) ●面向连接的TCP和无连接的UDP 端口的作用 ●端口标识的是主机中的进程 ●硬件端口是不同…

3D WEB轻量化引擎HOOPS:促进CAD软件的创新与协作

CAD软件一直以来都在现代工程、建筑、制造和设计领域发挥着至关重要的作用。在数字时代,CAD软件的开发者不断追求提高软件性能、增加功能和改善用户体验,在这一努力中,HOOPS技术(高度优化的面向对象并行软件)滑块露头角…

IDEA启动报错Failed to create JVM. JVM path的解决办法

今天启动IDEA时IDEA报错,提示如下。 if you already hava a JDK installed, define a JAVA_HOME variable in Computer > Systen Properties > System Settings > Environment Variables.Failed to create JVM. JVM path:D:\ideaIU2023.2.3\IntelliJ IDE…

使用c++视觉处理----canny 边缘检测、sobel边缘检测、scharr 滤波边缘检测

使用c视觉处理canny 边缘检测、sobel边缘检测、scharr 滤波边缘检测 #include <opencv2/opencv.hpp>int main() {// 读取图像cv::Mat image cv::imread("1.jpg", cv::IMREAD_GRAYSCALE); // 转为灰度图像if (image.empty()) {std::cerr << "无法加…

混凝土搅拌站预拌厂数字孪生可视化管理系统,三维可视化数据监控平台

本项目基于三维建模、数据融合等技术&#xff0c;构建一套实时的混凝土搅拌站厂区数字孪生可视化系统&#xff0c;提升混凝土搅拌站厂区信息化建设水平。 通过三维可视化项目的建设&#xff0c;实现搅拌站厂区展示和漫游、生产流程中设备的实时映射孪生、关键设备参数及指标图…

关于一篇什么是JWT的原理与实际应用

目录 一.介绍 1.1.什么是JWT 二.结构 三.Jwt的工具类的使用 3.1. 依赖 3.2.工具类 3.3.过滤器 3.4.控制器 3.5.配置 3.6. 测试类 用于生成JWT 解析Jwt 复制jwt&#xff0c;并延时30分钟 测试JWT的有效时间 测试过期JWT的解析 四.应用 今天就到这了&#xff0c;希…

NLP项目:维基百科文章爬虫和分类【02】 - 语料库转换管道

一、说明 我的NLP项目在维基百科条目上下载、处理和应用机器学习算法。相关上一篇文章中&#xff0c;展示了项目大纲&#xff0c;并建立了它的基础。首先&#xff0c;一个 Wikipedia 爬网程序对象&#xff0c;它按名称搜索文章&#xff0c;提取标题、类别、内容和相关页面&…

@Mapper与@MapperScan注解

Mapper Mapper Mapper.xml文件 作用在dao&#xff08;mapper&#xff09;层上的一个注解&#xff0c;将接口生成一个动态代理类&#xff0c;有了这个注解就不用 再写Mapper.xml文件 如果缺少这个注解&#xff0c;运行项目就会报相应的错误 Field userMapper in com.example…

electron 升级 v22 遇到问题

Electron 漏洞 https://mp.weixin.qq.com/s/5LpSJb_5uV8EIDOl3fz9Tw 由于 23以上不在支持win 7 8 8.1 所以我选择安装 v22.3.24 electron 22.3.24 node-sass 6.0.1 sass-loader 10.4.1 对应的版本 npm i node-sass6.0.1 --sass_binary_sitehttps://npm.taobao.org/mirrors…

深度学习基础知识 BatchNorm、LayerNorm、GroupNorm的用法解析

深度学习基础知识 BatchNorm、LayerNorm、GroupNorm的用法解析 1、BatchNorm2、LayerNorm3、GroupNorm用法&#xff1a; BatchNorm、LayerNorm 和 GroupNorm 都是深度学习中常用的归一化方式。 它们通过将输入归一化到均值为 0 和方差为 1 的分布中&#xff0c;来防止梯度消失和…

深度神经网络压缩与加速技术

// 深度神经网络是深度学习的一种框架&#xff0c;它是一种具备至少一个隐层的神经网络。与浅层神经网络类似&#xff0c;深度神经网络也能够为复杂非线性系统提供建模&#xff0c;但多出的层次为模型提供了更高的抽象层次&#xff0c;因而提高了模型的能力。深度神经网络是一…