当前位置: 首页 > news >正文

ConceptNet

conceptNet 下载

http://openkg.cn/dataset/conceptnet5-chinese
https://github.com/commonsense/conceptnet5/wiki/Downloads

conceptNet 读取

下载到的数据是 csv 格式的,用 utf8 格式读取

data = pd.read_csv(FILE, delimiter='\t')
data.columns = ['uri', 'relation', 'start', 'end', 'json']

表中内容看起来一团乱麻,实际含义很明确:

符号含义
/r关系,relation,边
/c概念,concept,节点
/zh中文
/fr法语
uri把(关系,起点,终点)三元组拼接成字符串,可作为索引
json附加信息

在这里插入图片描述

删除不只含中文节点的关系(边)

data = data[data['start'].apply(lambda row: row.find('zh')>0) & data['end'].apply(lambda row: row.find('zh')>0)]
data.index = range(data.shape[0])

在这里插入图片描述
从 json 列中提取边的权重信息

import json
weights = data['json'].apply(lambda row: json.loads(row)['weight'])
data.pop('json')
data.insert(4,'weights',weights)

在这里插入图片描述

中文繁简体转换

from langconv import *

转换繁体到简体

def cht_to_chs(line):
   line = Converter('zh-hans').convert(line)
   line.encode('utf-8')
   return line

转换简体到繁体

def chs_to_cht(line):
	line = Converter('zh-hant').convert(line)
	line.encode('utf-8')
  	return line 

查询

只查询起始节点

def search(words, n=20):
    result = data[data['start'].str.contains(chs_to_cht(words))]
    topK_result = result.sort_values("weights", ascending=False).head(n)
    return topK_result

search("柯南")

在这里插入图片描述

格式化输出结果

template = {
'/r/RelatedTo':'和{}相关',
'/r/FormOf':'的形式为{}',
'/r/IsA':'是{}',
'/r/PartOf':'是{}的一部分',
'/r/HasA':'具有{}',
'/r/UsedFor':'用来{}',
'/r/CapableOf':'可以{}',
'/r/AtLocation':'在{}',
'/r/Causes':'导致{}',
'/r/HasSubevent':',接下来,{}',
'/r/HasFirstSubevent':',紧接着,{}',
'/r/HasLastSubevent':'的最后一步是{}',
'/r/HasPrerequisite':'的前提为{}',
'/r/HasProperty':'具有{}的属性',
'/r/MotivatedByGoal':'受到{}的驱动',
'/r/ObstructedBy':'受到{}的影响',
'/r/Desires':'想要{}',
'/r/CreatedBy':'被{}创造',
'/r/Synonym':'和{}同义',
'/r/Antonym':'和{}反义',
'/r/DistinctFrom':'和{}相区别',
'/r/DerivedFrom':'由{}导致',
'/r/SymbolOf':'象征着{}',
'/r/DefinedAs':'定义为{}',
'/r/MannerOf':'',
'/r/LocatedNear':'和{}相邻',
'/r/HasContext':'的背景是{}',
'/r/SimilarTo':'和{}相似',
'/r/EtymologicallyRelatedTo':'',
'/r/EtymologicallyDerivedFrom':'',
'/r/CausesDesire':'',
'/r/MadeOf':'由{}制成',
'/r/ReceivesAction':'',
'/r/ExternalURL':''
}

def strip(str):
    return str.split('/')[3]

案例:柯南

topK_result = search("柯南",20)
for i in topK_result.index:
    i = topK_result.loc[i]
    if len(template[i['relation']]) > 0:
        print(strip(i['start'])+template[i['relation']].format(strip(i['end'])))
'''
柯南想要小蘭
柯南想要推理
柯南可以推理
柯南想要破案
柯南可以辦案
柯南在卡通
名偵探柯南在漫畫店
柯南想要小蘭姊姊
柯南想要探險
柯南想要玩
柯南想要琴酒
柯南想要當小孩子
柯南想要看書
柯南想要真相
柯南想要睡
柯南想要福爾摩斯
柯南想要壞人
柯南想要線索
柯南想要縮小
'''

在这里插入图片描述
柯南真刺激

相关文章:

  • 如何制作倒影
  • pyecharts 标记指定经纬度
  • Photoshop制作倒影字
  • folium 可视化地理数据
  • geoJson 下载
  • 绚丽多彩Photoshop打造水中倒影
  • 概率图模型
  • PhotoShop的字体安装及制作文字特效
  • 艺术字体 Photoshop滤镜打造线框特效美术字
  • python topk
  • Photoshop 7.0做发光字体
  • win10 安装 lapack + blas
  • 用Photoshop制作钻石字
  • pytorch 保留验证集上最好的模型
  • AETA地震预测AI算法大赛训练集可视化
  • 《剑指offer》分解让复杂问题更简单
  • 【Leetcode】104. 二叉树的最大深度
  • 【许晓笛】 EOS 智能合约案例解析(3)
  • javascript面向对象之创建对象
  • JavaWeb(学习笔记二)
  • nodejs实现webservice问题总结
  • Odoo domain写法及运用
  • PAT A1120
  • springboot_database项目介绍
  • SpringBoot几种定时任务的实现方式
  • WebSocket使用
  • 不发不行!Netty集成文字图片聊天室外加TCP/IP软硬件通信
  • 第三十一到第三十三天:我是精明的小卖家(一)
  • 少走弯路,给Java 1~5 年程序员的建议
  • 深入体验bash on windows,在windows上搭建原生的linux开发环境,酷!
  • 数据可视化之 Sankey 桑基图的实现
  • 智能网联汽车信息安全
  • [Shell 脚本] 备份网站文件至OSS服务(纯shell脚本无sdk) ...
  • AI又要和人类“对打”,Deepmind宣布《星战Ⅱ》即将开始 ...
  • 分布式关系型数据库服务 DRDS 支持显示的 Prepare 及逻辑库锁功能等多项能力 ...
  • 国内唯一,阿里云入选全球区块链云服务报告,领先AWS、Google ...
  • #NOIP 2014# day.1 生活大爆炸版 石头剪刀布
  • (LeetCode) T14. Longest Common Prefix
  • (办公)springboot配置aop处理请求.
  • (每日持续更新)jdk api之FileReader基础、应用、实战
  • (转)setTimeout 和 setInterval 的区别
  • .chm格式文件如何阅读
  • .NET CF命令行调试器MDbg入门(四) Attaching to Processes
  • .Net Core与存储过程(一)
  • .NET 中小心嵌套等待的 Task,它可能会耗尽你线程池的现有资源,出现类似死锁的情况
  • .NET/C# 阻止屏幕关闭,阻止系统进入睡眠状态
  • .net打印*三角形
  • .net对接阿里云CSB服务
  • .pyc文件还原.py文件_Python什么情况下会生成pyc文件?
  • ?
  • @WebServiceClient注解,wsdlLocation 可配置
  • [ C++ ] STL---仿函数与priority_queue
  • [1159]adb判断手机屏幕状态并点亮屏幕
  • [Angular 基础] - 指令(directives)
  • [ARC066F]Contest with Drinks Hard