知识图谱(七)之数据处理

一数据标注回顾

1.1整体思路

  1. 现在我们有txt和txtroiginal.

txt里面是标注数据,txtoriginal里面是原始数据,数据如下:

txt:

txtoriginal:

  1. 根据标注数据和标签类型构建字典

这是标签类型:

  1. 遍历原始数据,通过索引和标签的字典,给想引得位置打上标签.通过索引查字典,如果能查到则将对应的value作为标签,否则打上o的标签.

二代码实现

2.1使用路径拼接读取数据

python 复制代码
import os
import json

cur = os.getcwd()
print(cur)

os.chdir('..')
cur = os.getcwd()
print(f'修改以后的目录{cur}')

path=os.path.join(cur,'data/labels.json')
print(f'拼接后的路径{path}')

labels=json.load(open(path,'r',encoding='utf-8'))
print(f'labels->{labels}')

2.1.1补充os.getcwd()方法:这个方法的缺陷是其他包在导入使用这个方法的包后,获取到的是其他包的路径,会导致读取数据出现错误

报错的原因是路径输出的是当前文件夹的路径,因为输出的不是导入的包的路径,所以找不到相关文件.

2.2.2使用os.path.abspath()的方法可以避免这个问题

复制代码
python 复制代码
import os
import json

# 如何设计,让这个代码在调用时,相对路径不随着调用位置变化而变化
file_path = os.path.abspath(__file__)
print(f'file_path-->{file_path}')
base_dir = os.path.dirname(file_path)
print(f'base_dir-->{base_dir}')
# 路径拼接
path = os.path.join(base_dir, '../data/labels.json')
print(f'拼接之后的路径2-->{path}')
# 读取json文件
labels = json.load(open(path, 'r', encoding='utf-8'))
print(f'labels-->{labels}')

拼接好路径以后,使用os.walk()读取路径下的文件

这个方法返回的是可迭代对象,用循环的方法遍历,分别返回的是:文件夹路径,文件夹列表,文件列表

复制代码
python 复制代码
results = os.walk(os.path.join(base_dir, '../data_origin'))
print(f'results-->{results}')
for dir_path, dirs, files in results:  # 路径、文件夹(列表)、文件(列表)
    print('*'*50)
    print(f'dir_path-->{dir_path}')
    print(f'dirs-->{dirs}')
    print(f'files-->{files}')

2.2数据处理

先获取实体的英文名,然后用B-英文名或者I-英文名拼接,,得到每实体里面每个字的标签.

遍历原始文本,通过标签数据的索引给原始文本里面的字打标签,如果没有这个字的标签,就打O

2.2.1拼接的方法

拼接结果:

2.2.2遍历原始文本,给实体打标签

找到索引提取value,找不到索引打O

2.2.3最终结果

相关推荐
人工智能培训7 小时前
知识图谱:结构化表达实体与关系的知识组织技术
大数据·人工智能·算法·重构·生活·知识图谱
编程见习者8 小时前
AI应用开发之LangGraph解析
人工智能·知识图谱
loulanyue_10 小时前
从碎片文档到工业知识网络:TDengine工业知识图谱架构设计与大模型落地破局——读涛思数据OpenDay实录
网络·知识图谱·tdengine
Magicdata大数据4 天前
AI辅助教学:调用大模型从教材中生成习题,方便学员练习
java·spring boot·大模型·知识图谱·neo4j·ai辅助教学
涛思数据(TDengine)5 天前
直播预告 | 知识图谱,让文档自动变成知识网络
人工智能·ai·知识图谱·时序数据库·tdengine·工业ai
Rocky Ding*5 天前
【三年面试五年模拟】2026-10-21_零一万物知识图谱算法实习生一面面经全解析
论文阅读·人工智能·深度学习·机器学习·aigc·知识图谱·ai-native
JavaPub-rodert6 天前
王仕宇分享:Oxigraph 是什么?用 Rust + RocksDB 搭一个轻量 RDF/SPARQL 知识图谱数据库
数据库·rust·知识图谱
星川皆无恙8 天前
基于知识图谱的百科问答系统:Django + Neo4j 与实现
人工智能·python·机器学习·自然语言处理·django·知识图谱·neo4j
迪飞特科技9 天前
大模型接入业务系统:API、本地部署、RAG、智能体四种路线怎么选
java·数据库·人工智能·知识图谱·deepseek·本地化大模型
for_ever_love__11 天前
知识图谱构建流水线实战:实体关系抽取的提示词、质量抽检与增量维护
知识图谱·实体·文档·构建·rag·关系·抽取