无法通过neo4jdri建立上一个和下一个节点之间的关系

2024-10-02 12:22:47 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在存储前一个节点和当前节点的对象,以便在前一个节点和当前节点之间创建关系例如字符串是“有一只猫”,每个单词将是neo4j中的节点,它将具有“:next”与下一个节点的关系,因此“There”-[]->是“等等,但我面对的是错误: TypeError:不支持Node类型的参数 我知道我的node-cypher变量有问题,但我无法解决,请帮助我,我被困在这里

我已尝试将previousNode.single()[0]分配给错误所在的cypher变量

import nltk
from neo4j import GraphDatabase
from nltk.corpus import wordnet as wn
from nltk.tokenize import sent_tokenize

class DefFromNltk:
#listToTokenize = input("Enter string for NEO4J")
text = "There is a cat. Cat is sitting on the couch. Cat is very dirty"
sentenses = sent_tokenize(text)

# Establishing Connection
graphdb = GraphDatabase.driver(uri="bolt://localhost:7687", auth=("neo4j", "huwaiza"))

# Making Session Object
session = graphdb.session()
print(sentenses)
counter1=0
counter2=0
previousNode=None
#Creating node of sentence
for sentense in sentenses:
    q1 = "CREATE(s:Sentence{label:$sentense}) return s"
    sentenceNode=session.run(q1, sentense=sentense)

    print(sentense)
    wordsFromSentence = nltk.word_tokenize(sentense)
    print(wordsFromSentence)
    counter1 = counter1 +1
    #Creating nodes of words
    for word in wordsFromSentence:
        print(word)
        q2 = "CREATE(w:Words{label:$word}) return w"
        ##################################
        wordNode = session.run(q2, word=word)
        #print(dict(wordNode.single()[0]))

        if previousNode is not None:
            print("what ther")
            #q2 = "MATCH (p:Words{label:$word}),(n:Words{label:$word}) create (p)-[:next]->(n)"
            #q2 = "MATCH (p:Words{label:$previousNode.label}),(n:Words{label:$wordNode.label}) create (p)-[:next]->(n)"
            #q2 = "MATCH (p:$previousNode),(n:$wordNode) CREATE (p)-[:next]->(n)"
            q2 = "CREATE ($previousNode)-[:next]->($wordNode)"
            session.run(q2,previousNode=previousNode.single()[0],wordNode=wordNode.single()[0])
        else:
            previousNode= wordNode
            #previousNode = wordNode
            #print(wordNode.single()[0])
            counter2 = counter2+1

print(counter1,counter2)
session.close()
deficlass  = DefFromNltk()

错误是 raise TypeError(对象) 类型错误:

在处理上述异常时,发生了另一个异常:


Tags: import节点session错误labelwordnextwords

热门问题