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

news2024/10/6 8:37:37

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

  • 一、我的需求
  • 二、项目环境搭建
    • 千帆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.coloradmin.cn/o/1085391.html

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

相关文章

【APUE】文件系统 — 进程环境

目录 一、再提 main 函数 二、进程的终止 2.1 正常终止 2.1.1 从 main 函数用 return 返回 2.1.2 主动调用 exit 函数 2.1.3 钩子函数 2.1.4 调用 _exit 或 _Exit 2.2 异常终止 三、命令行参数的分析 3.1 getopt 3.2 示例 四、环境变量 4.1 简介 4.2 查看环境…

内网收集哈希传递

1.内网收集的前提 获得一个主机权限 补丁提权 可以使用 systeminfo 然后使用python脚本找到缺少的补丁 下载下来 让后使用exp提权 收集信息 路由信息 补丁接口 dns域看一看是不是域控 扫描别的端口 看看有没有内在的web网站 哈希传递 哈希是啥 哈希…

墨者学院 WordPress 远程命令执行漏洞(CVE-2018-15877)

1. 背景介绍 近日,WordPress 插件Plainview Activity Monitor被曝出存在一个远程命令执行漏洞。Plainview Activity Monitor 是一款网站用户活动监控插件。 远程攻击者可以通过构造的url来诱导wordpress管理员来点击恶意链接最终导致远程命令执行 2.影响范围 Pla…

ajax同步与异步,json-serve的安装与使用,node.js的下载

20.ajax json 轻量级的数据格式做配置文件网络传输 xml 重量级的数据格式 可扩展标记语言做配置文件网络传输 现在目前主流就是大量采用json做网络传输数据格式 1.ajax的概念: 与服务器进行’通信’的一种技术,能够实现异步的刷新页面 **同步:**按照顺序一步步的执行,容易造…

Python应用-矩阵乘法-特征提取

目录 常规运算应用场景:特征提取特征矩阵权重矩阵举例说明代码展示 常规运算 import numpy as npmatrix1 np.array([[1, 2], [3, 4]]) matrix2 np.array([[5, 6], [7, 8]]) result np.dot(matrix1, matrix2) print(result) 输出结果: [[19 22][43 …

是谁还没听过杨氏矩阵~原理和实现代码都已经准备好了

有一个数字矩阵,矩阵的每行从左到右是递增的,矩阵从上到下是递增的,请编写程序在这样的矩阵中查找某个数字是否存在。 要求:时间复杂度小于O(N); 看到这个题目时,我们会马上想到暴力求解,即遍历这个矩阵的每…

Excel往Word复制表格时删除空格

1.背景 在编写文档,经常需要从Excel往Word里复制表格 但是复制过去的表格前面会出现空格(缩进) 再WPS中试了很多方法,终于摆脱了挨个删除的困扰 2. WPS排版中删除 选择表格菜单栏-选在【开始】-【排版】选择【更多段落处理】-【段…

论文阅读/写作扫盲

第一节:期刊科普 JCR分区和中科院分区是用于对期刊进行分类和评估的两种常见方法。它们的存在是为了帮助学术界和研究人员更好地了解期刊的学术质量、影响力和地位。 JCR分区(Journal Citation Reports):JCR分区是由Clarivate Ana…

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

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

端口被占用?两步解决端口占用问题

第一步:WinR 打开命令提示符,输入netstat -ano|findstr 端口号,找到被占用端口的进程 第二步: 杀死使用该端口的进程,输入taskkill /t /f /im 进程号( 注意是进程号,不是端口号)

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

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

Vue2实现图片预览功能 -- v-viewer:图片查看器

一. 先看效果图 二. 具体步骤 简介:一款基于 viewer.js 封装的Vue版插件,可用于图像查看,以及图片的旋转、缩放等功能预览 官网:v-viewer 文档说明:Vue图片浏览组件v-viewer,支持旋转、缩放、翻转等操作 - …

字符设备和杂项设备总结

字符设备是 3 大类设备(字符设备、块设备和网络设备)中的一类,其驱动程序完成的主要工作是初始化、添加和删除 cdev 结构体,申请和释放设备号,以及填充 file_operations 结构体中的操作函数,实现file_opera…

# Web server failed to start. Port 9793 was already in use

Web server failed to start. Port 9793 was already in use. 文章目录 Web server failed to start. Port 9793 was already in use.报错描述报错原因解决方法Spring Boot 修改默认端口号关闭占用某一端口号的进程关闭该进程 报错描述 Springboot项目启动控制台报错 Error st…

LeetCode【15】三数之和

题目&#xff1a; 解析&#xff1a; 参考&#xff1a;https://zhuanlan.zhihu.com/p/111715985 代码&#xff1a; public static List<List<Integer>> threeSum(int[] nums) {// 先排序Arrays.sort(nums);List<List<Integer>> result new ArrayLis…

房产中介租房小程序系统开发搭建

随着移动互联网的发展&#xff0c;租房小程序已经成为许多房产中介公司转型线上的重要工具。通过租房小程序&#xff0c;房产中介公司可以方便地展示房源信息、吸引租户、达成交易。那么&#xff0c;如何通过乔拓云网开发租房小程序呢&#xff1f;下面是详细的开发指南。 1.进入…

《UnityShader入门精要》学习1

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

微软警告国家级黑客正在利用关键的Atlassian Confluence漏洞

导语&#xff1a;近日&#xff0c;微软发布警告称&#xff0c;国家级黑客组织正在利用Atlassian Confluence的关键漏洞进行攻击。该漏洞已被微软追踪到一个名为Storm-0062&#xff08;又称DarkShadow或Oro0lxy&#xff09;的黑客组织。微软的威胁情报团队表示&#xff0c;他们自…

三次挥手和四次握手

TCP建立连接&#xff08;三次握手&#xff09; 经过DNS域名解析后&#xff0c;获取到了服务器的IP地址&#xff0c;在获取到IP地址后&#xff0c;便会开始建立一次连接&#xff0c;这是由TCP协议完成的&#xff0c;主要通过三次握手进行连接。 第一次握手&#xff1a; 建立连…

MySQL 2 环境搭建(MySQL5.7.43和8.0.34的下载;8.0.34的安装、配置教程 )

目录 MySQL的下载、8.0.34的安装及配置 1 MySQL版本介绍 2 MySQL 下载 1. 下载地址 2. 打开官网&#xff0c;点击DOWNLOADS ​编辑 3. 点击 MySQL Community Server 4. 在General Availability(GA) Releases中选择适合的版本 5.下载8.0.34和5.7.43版本 3 MySQL8.0 …