def addSentence(self, sentence): """Add a sentence into the Concept Network of Ector. Add a sentence into the Concept Network of Ector. Adds its tokens too. /* except when the sentence already exists (in this case, the occurrence is not incremented, nor are expression created -this should lead to the creation of expressions identical to the sentence). */ In the case where file exist, username is not taken into account, but file is, and is of type "file". - sentence sentence to add Return the node of the sentence added.""" state = self.cn.getState(self.username) # Activate the utterer, and add it to the concept network uttererNode = UttererNode(self.username) self.cn.addNode(uttererNode) state.fullyActivate(self.username, "utterer") # Add the sentence node to the concept network. sentenceNode = SentenceNode(sentence) self.cn.addNode(sentenceNode) #state.setNodeActivationValue(100, sentence, "sentence") state.fullyActivate(sentence, "sentence") # TODO: if the occurrence of the sentence node is only 1, # compute the expressions pass # Link it to the utterer node. self.cn.addBidirectionalLink(uttererNode, sentenceNode) # Add the tokens to the concept network, link them to the sentence e = Entry("None") tokens = e.getTokens(sentence) beginning = 1 middle = 0 end = 0 previousTokenNode = None i = 0 for token in tokens: i += 1 if i == len(tokens): end = 1 # Add the token node to the concept network tokenNode = TokenNode(token, 1, beginning, middle, end) self.cn.addNode(tokenNode) state.fullyActivate(token, "token") if beginning: beginning = 0 middle = 1 if middle and i == len(tokens) - 1: middle = 0 end = 1 # Link it to the previous node if previousTokenNode: self.cn.addLink(previousTokenNode, tokenNode) previousTokenNode = tokenNode # Link it to the sentence node self.cn.addBidirectionalLink(tokenNode, sentenceNode) return sentenceNode
def addSentence(self,sentence): """Add a sentence into the Concept Network of Ector. Add a sentence into the Concept Network of Ector. Adds its tokens too. /* except when the sentence already exists (in this case, the occurrence is not incremented, nor are expression created -this should lead to the creation of expressions identical to the sentence). */ In the case where file exist, username is not taken into account, but file is, and is of type "file". - sentence sentence to add Return the node of the sentence added.""" state = self.cn.getState(self.username) # Activate the utterer, and add it to the concept network uttererNode = UttererNode(self.username) self.cn.addNode(uttererNode) state.fullyActivate(self.username, "utterer") # Add the sentence node to the concept network. sentenceNode = SentenceNode(sentence) self.cn.addNode(sentenceNode) #state.setNodeActivationValue(100, sentence, "sentence") state.fullyActivate(sentence, "sentence") # TODO: if the occurrence of the sentence node is only 1, # compute the expressions pass # Link it to the utterer node. self.cn.addBidirectionalLink(uttererNode, sentenceNode) # Add the tokens to the concept network, link them to the sentence e = Entry("None") tokens = e.getTokens(sentence) beginning = 1 middle = 0 end = 0 previousTokenNode = None i = 0 for token in tokens: i += 1 if i == len(tokens): end = 1 # Add the token node to the concept network tokenNode = TokenNode(token, 1, beginning, middle, end) self.cn.addNode(tokenNode) state.fullyActivate(token, "token") if beginning: beginning = 0 middle = 1 if middle and i == len(tokens) - 1: middle = 0 end = 1 # Link it to the previous node if previousTokenNode: self.cn.addLink(previousTokenNode,tokenNode) previousTokenNode = tokenNode # Link it to the sentence node self.cn.addBidirectionalLink(tokenNode, sentenceNode) return sentenceNode