【娱乐圈明星知识图谱2】信息抽取
目录
1. 项目介绍
2. 信息抽取介绍
3. ChatGPT 信息抽取代码实战
4. 信息抽取主逻辑
5. 项目源码
1. 项目介绍
利用爬虫项目中爬取的大量信息
【娱乐圈明星知识图谱1】百科爬虫_Encarta1993的博客-CSDN博客娱乐圈明星知识图谱百度百科爬虫百度百科爬虫百度百科爬虫百度百科爬虫百度百科爬虫百度百科爬虫百度百科爬虫百度百科爬虫百度百科爬虫百度百科爬虫百度百科爬虫百度百科爬虫百度百科爬虫百度百科爬虫百度百科爬虫百度百科爬虫百度百科爬虫百度百科爬虫百度百科爬虫百度百科爬虫百度百科爬虫百度百科爬虫百度百科爬虫百度百科爬虫百度百科爬虫百度百科爬虫百度百科爬虫百度百科爬虫百度百科爬虫百度百科爬虫百度百科爬虫百度百科爬虫百度百科爬虫百度百科爬虫百度百科爬虫https://blog.csdn.net/u014147522/article/details/131160490从中抽取出可结构化的关键信息。
此项目中我们比较关注
姓名
性别
生日
出生地
毕业学校
主要作品
这6个信息点。
2. 信息抽取介绍
信息抽取任务是指从文本中识别和提取特定类型的信息。这些信息可以是实体(如人名、地点、组织机构等)、关系(如人物之间的关联、物品属性等)或事件(如时间、动作、状态等)等。信息抽取任务通常包括以下步骤:
1. 实体识别:识别文本中的实体,例如人名、地点、组织机构等。
2. 关系识别:识别实体之间的关系,例如人物之间的关联、物品属性等。
3. 事件识别:识别文本中描述的事件,例如时间、动作、状态等。
4. 信息提取:从文本中提取出需要的信息,例如一个公司的总部所在地、某个人的联系方式等。
由于现在是 2023 年,大模型元年,NLP 任务全部被大模型统一了。因此,本项目使用 ChatGPT 来做信息抽取。
- 大模型
大语言模型(LLM)是一种预训练的深度学习模型,可以用于各种自然语言处理任务,包括信息抽取。信息抽取是从非结构化文本中提取结构化信息的过程。LLM可以通过学习大量的文本数据来提高其在信息抽取任务中的性能。LLM通常使用自监督学习来预训练,这意味着它可以从未标记的数据中学习,而不需要人工标注数据。LLM可以通过多种方式进行微调,以适应不同的信息抽取任务。
- ChatGPT
ChatGPT是由OpenAI开发的人工智能聊天机器人,它使用了基于GPT-3.5和GPT-4的大型语言模型,能够理解和学习人类的语言,进行自然的对话和互动。ChatGPT不仅可以聊天,还能完成各种任务,如写邮件、视频脚本、文案、翻译、代码、论文等。
3. ChatGPT 信息抽取代码实战
大模型的交互主要是使用 Prompt。
Prompt是一种用于指导大型语言模型生成自然语言文本的文本片段。在使用大型语言模型时,我们需要提供一个Prompt,以指导模型产生符合我们期望的文本结果。Prompt可以是一个单词、一句话、一段话或一个完整的篇章。
import openaifrom utils import get_api_keyopenai.api_key = get_api_key()def call_gpt(context):prompt = "\n\n\n根据上文中给定的介绍细节,请仔细找出或推测出这个人的‘姓名、性别、生日、出生地、毕业学校、主要作品’这6个信息点,如果没有则用空字符串代替,并按照json格式输出,如果value有多个则按照jsonarray输出"content = context + promptmessages = [{'role': 'system', 'content': '你是一个自动信息抽取专家机器人。'}]messages.append({'role': 'user', 'content': content})response = openai.ChatCompletion.create(model='gpt-3.5-turbo',messages=messages,)return response["choices"][0]["message"]["content"]if __name__ == "__main__":context = "黄晓明,1977年11月13日出生于山东省青岛市市南区,中国内地影视男演员、流行乐歌手,毕业于北京电影学院表演系"result = call_gpt(context=context)print(result)
执行上面代码可得到:
{
"姓名": "黄晓明",
"性别": "男",
"生日": "1977年11月13日",
"出生地": "山东省青岛市市南区",
"毕业学校": "北京电影学院",
"主要作品": ""
}
可以看出非常满足我们信息抽取的要求。
4. 信息抽取主逻辑
本项目中主要是对前一项目中爬取的明星信息做抽取。以下是其中一条爬到的数据:
{"title": "黄晓明","url": "https://baike.baidu.com/item/黄晓明/6597","summary": "\n黄晓明,1977年11月13日出生于山东省青岛市,中国内地男演员、歌手,毕业于北京电影学院表演系\n[1-2] 。1998年主演个人首部电视剧《爱情不是游戏》进入演艺圈\n[3] \n。2001年凭借古装剧《大汉天子》获得关注\n[4] \n。自2005年起连续10年入选“福布斯中国名人榜”\n[5] \n。2006年参演古装片《夜宴》\n[378] \n。2007年主演民国剧《新上海滩》\n[440] \n;同年发行个人首张专辑《It's Ming》\n[382] \n 。2009年凭借歌曲《好人卡》获得北京流行音乐典礼年度金曲奖\n[391] \n。2010年凭借谍战片《风声》获得第17届北京大学生电影节最受欢迎男演员奖\n[6] \n。2011年成立黄晓明工作室\n[383] \n。2013年凭借剧情片《中国合伙人》获得中国电影金鸡奖、中国电影华表奖、大众电影百花奖最佳男主角奖\n[7-9] 。2015年成为首位在好莱坞中国剧院留下手印的中国内地男演员\n[10] \n。2016年凭借史诗片《大唐玄奘》获得第13届中国长春电影节最佳男主角奖\n[11] \n。2017年主演古装剧《琅琊榜之风起长林》\n[12] \n。2018年主演爱情片《无问西东》上映\n[13] \n。2019年凭借剧情片《烈火英雄》该片获得第35届大众电影百花奖最佳男主角奖、第33届中国电影金鸡奖最佳男主角奖\n[15-16] ;同年担任第32届中国电影金鸡奖评委\n[17] \n。2020年主演民国剧《鬓边不是海棠红》\n[380] \n。2021年主演年代剧《光荣与梦想》播出\n[377] \n。演艺事业外,他还热心于公益慈善\n[390] \n。2008年担任中国儿童少年基金会形象大使。2009年担任联合国儿童基金香港委员会儿童基金会爱心大使\n[18] \n。2014年当选山东省十大杰出青年\n[19] \n,同年成立“黄晓明明天爱心基金”。2016年担任中国保护大熊猫研究中心形象大使\n[20] \n。\n","basic-info": "\n\n中文名\n\n黄晓明\n\n外文名\n\nHuang Xiaoming\n\n别 名\n\n教主、猫、钢钉侠、熊猫明\n[376] \n、囧明\n\n国 籍\n\n中国\n\n民 族\n\n汉族\n\n出生地\n\n山东省青岛市市南区\n\n出生日期\n\n1977年11月13日\n\n星 座\n\n天蝎座\n\n血 型\n\nO型\n\n身 高\n\n179 cm\n[21] \n\n毕业院校\n\n北京电影学院\n\n职 业\n\n演员、歌手\n[22] \n\n经纪公司\n\n黄晓明工作室\n\n代表作品\n\n中国合伙人、风声、烈火英雄、无问西东、大唐玄奘、大上海、撒娇女人最好命、大汉天子、神雕侠侣、新上海滩、暗香、精忠岳飞、鬓边不是海棠红、匹夫、锦绣缘华丽冒险、琅琊榜之风起长林、赵氏孤儿、鹿鼎记、玫瑰之战、暗恋、什么都可以、缘、精忠传奇、就算没有明天\n\n\n\n主要成就\n\n第29届中国电影金鸡奖最佳男主角奖\n第32届大众电影百花奖最佳男主角奖\n第15届中国电影华表奖优秀男演员奖\n第32届中国电影金鸡奖评委\n第13届中国长春电影节最佳男主角奖\n\n展开\n\n\n\n主要成就\n\n第29届中国电影金鸡奖最佳男主角奖\n第32届大众电影百花奖最佳男主角奖\n第15届中国电影华表奖优秀男演员奖\n第32届中国电影金鸡奖评委\n第13届中国长春电影节最佳男主角奖\n\n第17届北京大学生电影节最受欢迎男演员\n第10届华语电影传媒大奖最具人气男演员\n第11届华语电影传媒大奖最受瞩目男演员\n山东省十大杰出青年称号\n[23] \n联合国艾滋病规划署中国亲善大使\n[24] \n中国电影家协会青年和新文艺群体工作委员会会长\n[25] \n第12届中国长春电影节最佳男主角奖\n第35届大众电影百花奖最佳男主角奖\n第33届中国电影金鸡奖最佳男主角奖\n[26] \n\n收起\n\n\n\n\n\n公益基金\n\n黄晓明明天爱心基金\n\n生 肖\n\n蛇\n\n影友会\n\n明教\n\n性 别\n\n男\n\n\n"
}
我们需要对每条爬到的数据依次进行抽取
import json
import random
import time
from tqdm import tqdm
from extractor import call_gptdef main():with open("data/person.jsonl", "r", encoding="utf-8") as f:data = [i.strip() for i in f.readlines() if i.strip()]with open("data/result.jsonl", "w", encoding="utf-8") as f:for line in tqdm(data):line = json.loads(line)query = line["title"] + "\n\n\n" + line["summary"] + "\n\n\n" + line["basic-info"] + "\n\n\n"url = line["url"]try:res = call_gpt(query)f.write(json.dumps(json.loads(res), ensure_ascii=False) + "\t" + url + "\n")except KeyboardInterrupt:breakexcept:print("error")time.sleep(120)continuetime.sleep(random.random() * 3)if __name__ == "__main__":main()
其中,person.jsonl 来自上一个爬虫项目中,执行完这个代码可以得到 result.jsonl,即信息抽取的结果。
5. 项目源码
https://gitee.com/hl0929/baike-extractor
相关文章:
【娱乐圈明星知识图谱2】信息抽取
目录 1. 项目介绍 2. 信息抽取介绍 3. ChatGPT 信息抽取代码实战 4. 信息抽取主逻辑 5. 项目源码 1. 项目介绍 利用爬虫项目中爬取的大量信息 【娱乐圈明星知识图谱1】百科爬虫_Encarta1993的博客-CSDN博客娱乐圈明星知识图谱百度百科爬虫百度百科爬虫百度百科爬虫百度百…...
C++ rand的用法
C rand的用法 rand()介绍srand()介绍产生随机数的用法产生一定范围随机数的通用表示公式 我们知道 rand() 函数可以用来产生随机数,但是这不是真正意义上的随机数,是一个伪随机数,是根据一个数(我们可以称它为种子)为基…...
element时间选择器的默认值
概览:vue使用element组件,需要给时间选择器设置默认值,场景一:默认时间选择器,场景二:时间范围选择器,开始时间和结束时间。 一、默认时间选择器 实现思路: element组件的v-model绑…...
fiddler过滤器
1、fiddler Fiddler是一个免费、强大、跨平台的HTTP抓包工具。下载地址 2、为什么适用过滤器 不适用过滤器时,所有的报文都会被抓包。 我们在开发或测试时,只需要抓包某个域名下的报文 ,以“www.baidu.com”为例,不设置过滤器&…...
面试必考精华版Leetcode2130.链表最大孪生和
题目: 代码(首刷看解析 day22): class Solution { public:int pairSum(ListNode* head) {ListNode* slowhead;ListNode* fasthead->next;while(fast->next!nullptr){slowslow->next;fastfast->next->next;}//反转…...
qemu kvm 新建虚拟机
开始菜单打开虚拟机管理器...
Charles抓包工具使用(一)(macOS)
Fiddler抓包 | 竟然有这些骚操作,太神奇了? Fiddler响应拦截数据篡改,实现特殊场景深度测试(一) 利用Fiddler抓包调试工具,实现mock数据特殊场景深度测试(二) 利用Fiddler抓包调试工…...
2023年8月美团外卖3-18元红包优惠券天天领取活动日历及美团外卖红包领取使用
2023年8月美团外卖3-18元红包天天领取活动日历 根据上图美团外卖红包领取活动时间表以下时间可以天天领取3-18元美团外卖红包优惠券: 1、2023年8月18日 可领取美团外卖18元神券节红包; 2、2023年8月每周六、周日每天可领取12元美团外卖节红包ÿ…...
深度学习各层负责什么内容?
1、深度学习——神经网络简介 深度学习(Deep Learning)(也称为深度结构学习【Deep Structured Learning】、层次学习【Hierarchical Learning】或者是深度机器学习【Deep Machine Learning】)是一类算法集合,是机器学习的一个分支。 深度学习方法近年来,…...
【硬件设计】模拟电子基础二--放大电路
模拟电子基础二--放大电路 一、基本放大电路1.1 初始电路1.2 静态工作点1.3 分压偏置电路 二、负反馈放大电路三、直流稳压电路 前言:本章为知识的简单复习,适合于硬件设计学习前的知识回顾,不适合运用于考试。 一、基本放大电路 1.1 初始电…...
基于应用值迭代的马尔可夫决策过程(MDP)的策略的机器人研究(Matlab代码实现)
💥💥💞💞欢迎来到本博客❤️❤️💥💥 🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。 ⛳️座右铭&a…...
控件旋转90度,并跟随大小缩放
控件旋转角度,并跟随缩放改变大小 背景使用控件结果 背景 一个项目需求,需要旋转某个控件90使用,在网上找了很多资料,没有特别合适的,自己试水试了一天半,终于弄了个大概其,特此记录 使用控件…...
软件外包开发的PHP开发框架
PHP有许多流行的开发框架,每个框架都有其独特的特点和优势。下面列举的只是一部分PHP开发框架,还有其他一些框架如Slim、Zend Framework等也值得一提。选择合适的框架取决于项目的需求和开发团队的偏好,您可以根据项目规模、复杂性和功能需求…...
D2L学习记录-10-词嵌入word2vec
NLP-1-词嵌入(word2vec) 参考: 《动手学深度学习 Pytorch 第1版》第10章 自然语言处理 第1、2、3 和 4节 (词嵌入) 词嵌入 (word2vec): 词向量:自然语言中,词是表义的基本单元。词向量是用来表示词的向量。词嵌入 (word embedding)&#x…...
海外独立站怎么搭建?7个海外独立站搭建指南
在海外搭建独立站(独立网站)有几个关键步骤,以下是一个简要的指南: 选择域名和主机: 首先,选择一个适合你网站主题的域名。确保它简洁、易记,并且与你的品牌或内容相关联。 然后,…...
flask中实现restful-api
flask中实现restful-api 举例,我们可以创建一个用于管理任务(Task)的API。在这个例子中,我们将有以下API: GET /tasks: 获取所有任务POST /tasks: 创建一个新的任务GET /tasks/<id>: 获取一个任务的详情PUT /t…...
Centos7 安装man中文版手册
查找man中文安装包: yum search man-pages 安装man-pages-zh-CN.noarch: yum install -y man-pages-zh-CN.noarch...
untiy代码打压缩包,可设置密码
1、简单介绍: 用的是一个插件SharpZipLib,在vs的Nuget下载,也可以去github下载https://github.com/icsharpcode/SharpZipLib 用这个最主要的是因为,这个不用请求windows的文件读写权限,关于这个权限我搞了好久&#…...
【iOS】—— UIKit相关问题
文章目录 UIKit常用的UIKit组件懒加载的优势 CALayer和UIView区别关系 UITableViewUITableView遵循的两个delegate以及必须实现的方法上述四个必须实现方法执行顺序其他方法的执行顺序: UICollectionView和UITableView的区别UICollectionViewFlowLayout和UICollecti…...
Linux系统防火墙Firewalld
目录 Firewalld概述 Firewalld和iptables的区别 Firewalld网络区域 区域介绍与概念 9个预定义区域 Firewalld数据处理流程 firewalld检查数据包的源地址的规则 Firewalld防火墙的配置方式 常用的firewall-cmd命令选项 服务管理 端口管理 Firewalld概述 Firewalld防火…...
7.4.分块查找
一.分块查找的算法思想: 1.实例: 以上述图片的顺序表为例, 该顺序表的数据元素从整体来看是乱序的,但如果把这些数据元素分成一块一块的小区间, 第一个区间[0,1]索引上的数据元素都是小于等于10的, 第二…...
三维GIS开发cesium智慧地铁教程(5)Cesium相机控制
一、环境搭建 <script src"../cesium1.99/Build/Cesium/Cesium.js"></script> <link rel"stylesheet" href"../cesium1.99/Build/Cesium/Widgets/widgets.css"> 关键配置点: 路径验证:确保相对路径.…...
高防服务器能够抵御哪些网络攻击呢?
高防服务器作为一种有着高度防御能力的服务器,可以帮助网站应对分布式拒绝服务攻击,有效识别和清理一些恶意的网络流量,为用户提供安全且稳定的网络环境,那么,高防服务器一般都可以抵御哪些网络攻击呢?下面…...
OpenLayers 分屏对比(地图联动)
注:当前使用的是 ol 5.3.0 版本,天地图使用的key请到天地图官网申请,并替换为自己的key 地图分屏对比在WebGIS开发中是很常见的功能,和卷帘图层不一样的是,分屏对比是在各个地图中添加相同或者不同的图层进行对比查看。…...
稳定币的深度剖析与展望
一、引言 在当今数字化浪潮席卷全球的时代,加密货币作为一种新兴的金融现象,正以前所未有的速度改变着我们对传统货币和金融体系的认知。然而,加密货币市场的高度波动性却成为了其广泛应用和普及的一大障碍。在这样的背景下,稳定…...
springboot整合VUE之在线教育管理系统简介
可以学习到的技能 学会常用技术栈的使用 独立开发项目 学会前端的开发流程 学会后端的开发流程 学会数据库的设计 学会前后端接口调用方式 学会多模块之间的关联 学会数据的处理 适用人群 在校学生,小白用户,想学习知识的 有点基础,想要通过项…...
处理vxe-table 表尾数据是单独一个接口,表格tableData数据更新后,需要点击两下,表尾才是正确的
修改bug思路: 分别把 tabledata 和 表尾相关数据 console.log() 发现 更新数据先后顺序不对 settimeout延迟查询表格接口 ——测试可行 升级↑:async await 等接口返回后再开始下一个接口查询 ________________________________________________________…...
SpringAI实战:ChatModel智能对话全解
一、引言:Spring AI 与 Chat Model 的核心价值 🚀 在 Java 生态中集成大模型能力,Spring AI 提供了高效的解决方案 🤖。其中 Chat Model 作为核心交互组件,通过标准化接口简化了与大语言模型(LLM࿰…...
数据结构第5章:树和二叉树完全指南(自整理详细图文笔记)
名人说:莫道桑榆晚,为霞尚满天。——刘禹锡(刘梦得,诗豪) 原创笔记:Code_流苏(CSDN)(一个喜欢古诗词和编程的Coder😊) 上一篇:《数据结构第4章 数组和广义表》…...
从零手写Java版本的LSM Tree (一):LSM Tree 概述
🔥 推荐一个高质量的Java LSM Tree开源项目! https://github.com/brianxiadong/java-lsm-tree java-lsm-tree 是一个从零实现的Log-Structured Merge Tree,专为高并发写入场景设计。 核心亮点: ⚡ 极致性能:写入速度超…...
