I am using SpacyEnityExtractor (mostly) and DIETclassifier (rarely) to extract a person’s name from a user input phrase during Form filling. But for some cases neither of this extractor, extract the entity from input phrase. Can someone tell me how to handle this situation
- I have one solution in my mind, if the extractor fails 2 or 3 times then store the user input text into a slot, without using an entity extractor (tracker.latest_message.get(“text”)), But I don’t know how to handle it.
This is how my code is right now
def extract_person(self, dispatcher, tracker, domain):
extractor_list = tracker.latest_message['entities']
if len(extractor_list)>0:
confid = 0
for elements in extractor_list[::-1]:
if elements['entity']== 'PERSON':
if elements['extractor'] == 'SpacyEntityExtractor':
person_name = elements['value']
break
if elements['extractor'] == 'DIETClassifier':
if elements['confidence_entity'] > confid:
person_name = elements['value']
return{"person":person_name}