Errol/src/errol.py

38 lines
1.1 KiB
Python

import spacy
from spacy.tokens import Doc,Token
from src.nlp import doc_to_triple,root_of_doc,merge_token_entity
from src.wikidata import Wikidata
from src.normalizer import normalize_triple
import rdflib
from rdflib import Graph, Literal, RDF, URIRef
from rdflib.namespace import FOAF , XSD
class Errol():
def __init__(self):
#self.nlp = spacy.load('fr_dep_news_trf')
self.nlp = spacy.load('fr_core_news_lg')
self.wikidata = Wikidata()
self.knowledge = Graph()
self.knowledge.parse('data/knowledge.rdf', format='n3')
def answer(self,sentence):
print(normalize_triple(doc_to_triple(root_of_doc(merge_token_entity(self.nlp(sentence))))))
return self.wikidata.request_triple(normalize_triple(doc_to_triple(root_of_doc(merge_token_entity(self.nlp(sentence))))))
#return
def test():
nlp = spacy.load('fr_dep_news_trf')
assert(doc_to_triple(root_of_doc(nlp("Qui est le roi d'angleterre ?"))) == (angleterre, 'roi ', '?'))
print("All tests passed")
if __name__ == '__main__':
test()