附录C:数据集资源
知识图谱与AI融合应用的开发和研究需要大量高质量的数据。本附录将介绍公开的知识图谱数据集、评估基准与竞赛,以及数据采集与处理工具,帮助读者获取和处理知识图谱数据。
C.1 公开知识图谱数据集
C.1.1 通用知识图谱
通用知识图谱涵盖多个领域的知识,适用于通用型应用场景。
C.1.1.1 Freebase
- 描述:Freebase是一个由Meta(原Facebook)开发的大型协作式知识库,包含超过30亿条三元组。
- 特点:
- 结构化表示现实世界中的实体和关系
- 涵盖人物、地点、组织、事件等多个领域
- 支持SPARQL查询
- 应用场景:通用搜索、问答系统、知识增强的AI模型
- 获取方式:已关闭,数据已迁移到Wikidata,可通过Google Knowledge Graph API访问部分数据
C.1.1.2 Wikidata
- 描述:Wikidata是一个免费的协作式知识库,由维基媒体基金会维护,是Wikipedia的结构化数据版本。
- 特点:
- 包含超过1亿个实体和15亿条声明
- 支持多种语言
- 允许任何人编辑和贡献
- 提供SPARQL端点和API访问
- 应用场景:通用知识应用、跨语言知识图谱、维基数据增强
- 获取方式:
C.1.1.3 DBpedia
- 描述:DBpedia是从Wikipedia中提取的结构化知识库,包含超过460万个实体和6.7亿条三元组。
- 特点:
- 自动从Wikipedia中提取结构化数据
- 支持多种语言版本
- 提供标准化的实体描述和分类
- 支持SPARQL查询
- 应用场景:语义搜索、链接开放数据、知识增强
- 获取方式:
C.1.1.4 YAGO
- 描述:YAGO(Yet Another Great Ontology)是一个精确的知识图谱,结合了Wikipedia、WordNet和GeoNames的数据。
- 特点:
- 包含超过1000万个实体和1.2亿条三元组
- 提供时间和空间信息
- 高准确性和一致性
- 支持SPARQL查询
- 应用场景:时间感知的知识应用、地理信息系统、精确知识推理
- 获取方式:
C.1.1.5 ConceptNet
- 描述:ConceptNet是一个多语言的常识知识图谱,包含超过3000万个节点和3.4亿条关系。
- 特点:
- 专注于常识知识,如概念之间的关系
- 支持多种语言
- 采用简单的边类型,如"isA"、"hasPart"、"usedFor"等
- 适合自然语言理解和生成任务
- 应用场景:常识推理、自然语言理解、对话系统
- 获取方式:
C.1.2 领域知识图谱
领域知识图谱专注于特定领域的知识,适用于垂直领域的应用场景。
C.1.2.1 医疗健康领域
C.1.2.1.1 UMLS(Unified Medical Language System)
- 描述:UMLS是一个集成的医学术语知识库,包含超过300万个概念和1.3亿条关系。
- 特点:
- 整合了100多个医学术语表
- 涵盖疾病、症状、药物、基因等多个医学概念
- 提供概念之间的映射关系
- 应用场景:医疗信息系统、临床决策支持、药物发现
- 获取方式:
- 官方网站:https://www.nlm.nih.gov/research/umls/
- 获取条件:需要申请UMLS许可证
C.1.2.1.2 SNOMED CT(Systematized Nomenclature of Medicine -- Clinical Terms)
- 描述:SNOMED CT是一个国际标准的医学术语集,包含超过35万个概念和140万条关系。
- 特点:
- 涵盖临床护理、疾病诊断、药物治疗等领域
- 支持多语言
- 定期更新
- 应用场景:电子病历、临床决策支持、医疗数据分析
- 获取方式:
- 官方网站:https://www.snomed.org/
- 获取条件:需要会员资格或授权
C.1.2.2 金融领域
C.1.2.2.1 FinCEN(Financial Crimes Enforcement Network)
- 描述:FinCEN提供金融犯罪相关的数据,包括可疑活动报告(SARs)和货币交易报告(CTRs)。
- 特点:
- 包含金融机构提交的可疑交易数据
- 用于反洗钱(AML)和打击恐怖融资(CFT)
- 支持金融网络分析
- 应用场景:金融风控、反洗钱、欺诈检测
- 获取方式:
- 官方网站:https://www.fincen.gov/
- 数据访问:需要遵守严格的法规和许可
C.1.2.2.2 OpenFIGI(Open Financial Instrument Global Identifier)
- 描述:OpenFIGI是一个免费的金融工具标识符数据库,包含超过1.8亿个金融工具的信息。
- 特点:
- 提供金融工具的唯一标识符
- 包含股票、债券、衍生品等多种金融工具
- 支持API访问
- 应用场景:金融数据分析、投资组合管理、风险管理
- 获取方式:
C.1.2.3 地理领域
C.1.2.3.1 GeoNames
- 描述:GeoNames是一个地理数据库,包含超过1100万个地理名称和特征。
- 特点:
- 涵盖城市、河流、山脉、湖泊等地理实体
- 包含经纬度、人口、海拔等属性
- 支持多种语言
- 应用场景:地理信息系统、导航服务、位置基于服务
- 获取方式:
C.1.2.3.2 OpenStreetMap(OSM)
- 描述:OpenStreetMap是一个免费的协作式地图数据库,包含全球的地理数据。
- 特点:
- 由志愿者贡献和维护
- 包含道路、建筑物、 POI等地理特征
- 支持多种数据格式
- 应用场景:地图应用、导航服务、城市规划
- 获取方式:
C.1.2.4 学术领域
C.1.2.4.1 DBLP
- 描述:DBLP是一个计算机科学领域的数字图书馆,包含超过500万篇论文和150万位作者的信息。
- 特点:
- 涵盖计算机科学的各个子领域
- 包含论文、作者、会议、期刊等实体
- 提供论文之间的引用关系
- 应用场景:学术搜索、作者网络分析、研究趋势分析
- 获取方式:
C.1.2.4.2 CiteSeer
- 描述:CiteSeer是一个学术文献搜索引擎和数字图书馆,专注于计算机科学领域。
- 特点:
- 包含超过300万篇论文
- 提供论文的引用关系网络
- 支持全文搜索
- 应用场景:学术搜索、文献计量学分析、引用网络分析
- 获取方式:
- 官方网站:http://citeseerx.ist.psu.edu/
- 数据访问:提供API和数据集下载
C.2 评估基准与竞赛
评估基准和竞赛是推动知识图谱与AI融合技术发展的重要动力。本部分将介绍常用的评估基准数据集和竞赛平台。
C.2.1 知识图谱补全
知识图谱补全(KGC)是指根据已有知识预测缺失的三元组,常用的评估基准包括:
C.2.1.1 FB15k / FB15k-237
- 描述:FB15k是从Freebase中提取的知识图谱补全数据集,包含14951个实体和1345个关系。FB15k-237是FB15k的改进版本,移除了可逆关系,更具挑战性。
- 特点:
- FB15k:14951个实体,1345个关系,592213个三元组
- FB15k-237:14541个实体,237个关系,310116个三元组
- 评估指标:Mean Reciprocal Rank (MRR)、Hits@1、Hits@3、Hits@10
- 获取方式:
- 官方网站:https://everest.hds.utc.fr/lib/exe/fetch.php?media=en:fb15k.zip
- 代码实现:可在GitHub上搜索相关实现
C.2.1.2 WN18 / WN18RR
- 描述:WN18是从WordNet中提取的知识图谱补全数据集,包含40943个实体和18个关系。WN18RR是WN18的改进版本,移除了可逆关系。
- 特点:
- WN18:40943个实体,18个关系,151442个三元组
- WN18RR:40943个实体,11个关系,93003个三元组
- 评估指标:MRR、Hits@1、Hits@3、Hits@10
- 获取方式:
- 官方网站:https://everest.hds.utc.fr/lib/exe/fetch.php?media=en:wordnet-18.zip
- 代码实现:可在GitHub上搜索相关实现
C.2.1.3 NELL-995
- 描述:NELL-995是从Never-Ending Language Learning(NELL)系统中提取的数据集,包含18244个实体和200个关系。
- 特点:
- 包含从网络自动提取的知识
- 实体和关系类型丰富
- 评估指标:MRR、Hits@1、Hits@10
- 获取方式:
C.2.2 实体识别与关系抽取
实体识别(NER)和关系抽取(RE)是知识图谱构建的核心技术,常用的评估基准包括:
C.2.2.1 CoNLL-2003
- 描述:CoNLL-2003是实体识别的经典数据集,包含英语和德语的新闻文本。
- 特点:
- 包含4种实体类型:Person(PER)、Organization(ORG)、Location(LOC)、Miscellaneous(MISC)
- 英语训练集:14041个句子,203621个词
- 评估指标:Precision、Recall、F1-score
- 获取方式:
C.2.2.2 ACE(Automatic Content Extraction)
- 描述:ACE是一个多语言的实体识别和关系抽取数据集,包含新闻、博客、论坛等多种文本类型。
- 特点:
- 支持多种语言:英语、阿拉伯语、汉语
- 包含实体识别、关系抽取、事件抽取等任务
- 评估指标:Precision、Recall、F1-score
- 获取方式:
- 官方网站:https://www.ldc.upenn.edu/collaborations/past-projects/ace
- 获取条件:需要LDC许可证
C.2.2.3 TACRED(TAC Relation Extraction Dataset)
- 描述:TACRED是一个大规模的关系抽取数据集,包含超过100k个标注的关系实例。
- 特点:
- 包含42种关系类型,其中包含一种"no_relation"类型
- 数据来自新闻和网页文本
- 实体对之间的关系标注详细
- 评估指标:Precision、Recall、F1-score
- 获取方式:
- 官方网站:https://nlp.stanford.edu/projects/tacred/
- 数据下载:提供数据集和代码
C.2.3 竞赛平台
C.2.3.1 SemEval(International Workshop on Semantic Evaluation)
- 描述:SemEval是一个年度语义评估竞赛,涵盖多个自然语言处理任务,包括知识图谱相关任务。
- 相关任务:
- 语义关系提取
- 实体链接
- 常识推理
- 获取方式:
C.2.3.2 KBP(Knowledge Base Population)
- 描述:KBP是由NIST组织的知识图谱构建竞赛,旨在评估从文本中提取知识并填充知识库的能力。
- 相关任务:
- 实体链接
- 关系抽取
- 事件抽取
- 获取方式:
C.2.3.3 GraphChallenge
- 描述:GraphChallenge是一个图算法和系统的竞赛平台,涵盖知识图谱相关的图计算任务。
- 相关任务:
- 图神经网络性能评估
- 大规模图处理
- 知识图谱推理
- 获取方式:
C.2.3.4 Kaggle
- 描述:Kaggle是一个数据科学竞赛平台,包含多个知识图谱相关的竞赛。
- 相关竞赛:
- 知识图谱补全
- 实体识别与关系抽取
- 图神经网络应用
- 获取方式:
C.3 数据采集与处理工具
数据采集与处理是知识图谱构建的重要环节。本部分将介绍常用的数据采集与处理工具。
C.3.1 数据采集工具
C.3.1.1 Scrapy
- 描述:Scrapy是一个强大的Python网络爬虫框架,用于从网站提取结构化数据。
- 特点:
- 高性能的异步爬虫
- 支持分布式爬取
- 可扩展的插件系统
- 内置数据提取和处理功能
- 应用场景:大规模数据采集、网站内容提取、API数据采集
- 获取方式:
- 官方网站:https://scrapy.org/
- 安装:
pip install scrapy
C.3.1.2 BeautifulSoup
- 描述:BeautifulSoup是一个Python库,用于解析HTML和XML文档,提取结构化数据。
- 特点:
- 简单易用的API
- 支持多种解析器
- 强大的HTML树遍历和搜索功能
- 应用场景:网页数据提取、小型爬虫、数据清洗
- 获取方式:
- 官方网站:https://www.crummy.com/software/BeautifulSoup/
- 安装:
pip install beautifulsoup4
C.3.1.3 Selenium
- 描述:Selenium是一个自动化测试工具,可用于模拟浏览器行为,采集动态生成的网页内容。
- 特点:
- 支持多种浏览器
- 可以模拟用户交互
- 支持JavaScript渲染的页面
- 应用场景:动态网页采集、需要登录的网站、复杂交互的数据采集
- 获取方式:
- 官方网站:https://www.selenium.dev/
- 安装:
pip install selenium
C.3.2 数据清洗工具
C.3.2.1 OpenRefine
- 描述:OpenRefine(原Google Refine)是一个强大的数据清洗和转换工具,适用于处理杂乱的数据。
- 特点:
- 可视化的数据清洗界面
- 支持多种数据格式
- 强大的聚类功能,用于识别重复记录
- 支持扩展插件
- 应用场景:数据去重、格式转换、缺失值处理、数据标准化
- 获取方式:
- 官方网站:https://openrefine.org/
- 下载:提供Windows、Mac、Linux版本
C.3.2.2 Pandas
- 描述:Pandas是一个Python数据分析库,提供强大的数据清洗和转换功能。
- 特点:
- 支持多种数据格式
- 强大的数据过滤、排序、分组功能
- 灵活的数据转换操作
- 与其他Python库良好集成
- 应用场景:大规模数据清洗、数据转换、特征工程
- 获取方式:
- 官方网站:https://pandas.pydata.org/
- 安装:
pip install pandas
C.3.3 知识抽取工具
C.3.3.1 Stanford CoreNLP
- 描述:Stanford CoreNLP是一个Java实现的自然语言处理工具包,提供多种NLP功能。
- 特点:
- 支持实体识别、关系抽取、情感分析等多种功能
- 支持多种语言
- 提供REST API和多种编程语言接口
- 应用场景:知识抽取、文本分析、自然语言理解
- 获取方式:
- 官方网站:https://stanfordnlp.github.io/CoreNLP/
- 下载:提供Java库和模型
C.3.3.2 spaCy
- 描述:spaCy是一个Python实现的工业级自然语言处理库,提供高效的NLP功能。
- 特点:
- 高性能,适合生产环境
- 支持多种语言模型
- 提供实体识别、关系抽取、依存句法分析等功能
- 丰富的生态系统
- 应用场景:知识抽取、文本分类、信息提取
- 获取方式:
- 官方网站:https://spacy.io/
- 安装:
pip install spacy - 模型下载:
python -m spacy download en_core_web_sm
C.3.3.3 OpenIE(Open Information Extraction)
- 描述:OpenIE是一个开源的信息抽取系统,用于从文本中提取三元组形式的事实。
- 特点:
- 不需要预定义的关系类型
- 支持多种语言
- 提供命令行工具和API
- 应用场景:开放信息抽取、大规模知识获取、文本摘要
- 获取方式:
C.3.4 数据格式转换工具
C.3.4.1 Apache Jena
- 描述:Apache Jena是一个Java框架,用于构建语义Web和链接数据应用,支持多种RDF数据格式转换。
- 特点:
- 支持RDF、Turtle、N-Triples、JSON-LD等多种格式
- 提供命令行工具和Java API
- 支持SPARQL查询
- 应用场景:RDF数据转换、知识图谱构建、语义Web应用
- 获取方式:
- 官方网站:https://jena.apache.org/
- 下载:提供二进制和源代码
C.3.4.2 RMLMapper
- 描述:RMLMapper是一个数据映射工具,用于将结构化数据转换为RDF格式。
- 特点:
- 支持多种数据源:CSV、JSON、XML、关系数据库
- 使用RML(RDF Mapping Language)定义映射规则
- 支持大规模数据转换
- 应用场景:结构化数据转换为RDF、知识图谱构建、数据集成
- 获取方式:
C.4 本章小结
本附录介绍了知识图谱与AI融合应用开发和研究所需的数据集资源,包括:
公开知识图谱数据集:
- 通用知识图谱:Freebase、Wikidata、DBpedia、YAGO、ConceptNet
- 领域知识图谱:医疗健康(UMLS、SNOMED CT)、金融(FinCEN、OpenFIGI)、地理(GeoNames、OpenStreetMap)、学术(DBLP、CiteSeer)
评估基准与竞赛:
- 知识图谱补全:FB15k / FB15k-237、WN18 / WN18RR、NELL-995
- 实体识别与关系抽取:CoNLL-2003、ACE、TACRED
- 竞赛平台:SemEval、KBP、GraphChallenge、Kaggle
数据采集与处理工具:
- 数据采集:Scrapy、BeautifulSoup、Selenium
- 数据清洗:OpenRefine、Pandas
- 知识抽取:Stanford CoreNLP、spaCy、OpenIE
- 数据格式转换:Apache Jena、RMLMapper
这些资源为知识图谱与AI融合应用的开发和研究提供了重要支持,读者可以根据自己的需求选择合适的数据集和工具,加速研究和开发进程。