怎么用个人电脑做网站,icp备案添加网站,aspx怎么做网站,十大必做调查网站目录 1. 代码学习1.1 源代码1.2 代码解读 没有图谱称为弱人工智能#xff0c;有图谱的称为强人工智能。
图谱可以让机器学习和人工智能具备推理能力。
1. 代码学习
1.1 源代码
# -*- coding: utf-8 -*-
from py2neo import Node, Graph, Relationship# 可以先阅读下文档有图谱的称为强人工智能。
图谱可以让机器学习和人工智能具备推理能力。
1. 代码学习
1.1 源代码
# -*- coding: utf-8 -*-
from py2neo import Node, Graph, Relationship# 可以先阅读下文档https://py2neo.org/v4/index.htm
class DataToNeo4j(object):将excel中数据存入neo4jdef __init__(self):建立连接link Graph(http://localhost:7474/, usernameneo4j, passwordroot)self.graph link# self.graph NodeMatcher(link)self.graph.delete_all()def create_spo(self, result):# 创建节点, 和关系start Node(temp, nameresult[0])end Node(temp, nameresult[2])self.graph.create(start)self.graph.create(end)r1 Relationship(start, result[1], end)self.graph.create(r1)from ltp import LTPltp LTP()# 使用语义角色标注构建和抽取关系
def srl_AtoA(sent):# 句子进行分词操作seg, hidden ltp.seg([sent])seg seg[0]print(seg)srl ltp.srl(hidden, keep_emptyFalse)[0]print(srl)results []for s in srl:key s[0]values s[1]start, end , for value in values:print(value:, value)if value[0] A0:start .join(seg[value[1]:value[2] 1])if value[0] A1:end .join(seg[value[1]:value[2] 1])if start ! and end ! :results.append([start, seg[key], end])return results# 分句操作
sents ltp.sent_split([该僵尸网络包含至少35000个被破坏的Windows系统攻击者和使用者正在秘密使用这些系统来开采Monero加密货币。该僵尸网络名为“ VictoryGate”自2019年5月以来一直活跃。])
spo DataToNeo4j()
for sent in sents:print(sent)results srl_AtoA(sent)print(results)for result in results:spo.create_spo(result)print(- * 100)1.2 代码解读
这段代码的主要目的是将文本信息中的实体和它们之间的关系抽取出来并将这些信息存储到Neo4j数据库中。Neo4j是一个图形数据库专门用于处理数据之间的关系。代码包括两个主要部分与Neo4j交互的部分和文本处理部分。 与Neo4j交互 类 DataToNeo4j 用于连接Neo4j数据库并操作数据。在 __init__ 方法中通过Graph对象建立了与Neo4j数据库的连接。create_spo 方法用于创建节点和关系。它接受一个包含三个元素的列表 result分别代表起始节点、关系和终止节点。这个方法首先创建两个节点起始和终止然后在这两个节点之间创建一个关系。 文本处理 使用了LTP语言技术平台库来处理文本。srl_AtoA 函数接受一个句子使用LTP库进行分词和语义角色标注。语义角色标注的结果用于识别句子中的主要实体A0和A1标记的部分以及这些实体之间的关系。这些识别出的实体和关系被组织成一个列表并返回。
代码的工作流程如下
首先LTP库用于分句和分词并对句子进行语义角色标注。对于每个句子srl_AtoA 函数被用来提取实体和它们之间的关系。提取出的实体和关系被发送到 DataToNeo4j 对象。DataToNeo4j 对象使用这些数据在Neo4j数据库中创建相应的节点和关系。
这个过程有效地将自然语言文本中的实体和关系转换为图数据库中的节点和边便于进行复杂的关系查询和分析。