38 lines
1.1 KiB
Python
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()
|