Я храню объект предыдущего узла и текущий узел, чтобы я мог создать связь между предыдущим и текущим узлом, например, строка «Есть кот», каждое слово будет узлом в neo4j, который будет иметь отношение«: next» со следующим узлом, так что «там» - [] -> «есть» и так далее, но я сталкиваюсь с TypError: TypeError: параметры типа Node не поддерживаются, я знаю, что есть проблема с моей переменной шифрования узла, но я могуне понять, пожалуйста, будьте полезны, я застрял здесь
Я попытался присвоить 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()
Ошибка: повышение TypeError (obj) TypeError:
Во время обработки вышеуказанного исключения произошло другое исключение: