def test_when_multiple_entities_from_same_recognizer_only_one_is_returned(): registry = RecognizerRegistry() recognizer_supporting_two_ents = EntityRecognizer( supported_entities=["A", "B"], name="MyReco" ) registry.add_recognizer(recognizer_supporting_two_ents) recognizers = registry.get_recognizers( language="en", entities=["A", "B"], all_fields=False ) assert len(recognizers) == 1 assert recognizers[0].name == "MyReco"
def test_when_add_pattern_recognizer_then_item_added(): pattern = Pattern("rocket pattern", r"\W*(rocket)\W*", 0.8) pattern_recognizer = PatternRecognizer( "ROCKET", name="Rocket recognizer", patterns=[pattern] ) # Create an empty recognizer registry recognizer_registry = RecognizerRegistry(recognizers=[]) assert len(recognizer_registry.recognizers) == 0 # Add a new recognizer for the word "rocket" (case insensitive) recognizer_registry.add_recognizer(pattern_recognizer) assert len(recognizer_registry.recognizers) == 1 assert recognizer_registry.recognizers[0].patterns[0].name == "rocket pattern" assert recognizer_registry.recognizers[0].name == "Rocket recognizer"
def test_when_add_recognizer_then_also_outputs_others(nlp_engine): pattern = Pattern("rocket pattern", r"\W*(rocket)\W*", 0.8) pattern_recognizer = PatternRecognizer( "ROCKET", name="Rocket recognizer", patterns=[pattern], supported_language="en", ) registry = RecognizerRegistry() registry.add_recognizer(pattern_recognizer) registry.load_predefined_recognizers() assert len(registry.recognizers) > 1 analyzer = AnalyzerEngine(registry=registry, nlp_engine=nlp_engine) text = "Michael Jones has a rocket" results = analyzer.analyze(text=text, language="en") assert len(results) == 2
def test_when_remove_pattern_recognizer_then_item_removed(): pattern = Pattern("spaceship pattern", r"\W*(spaceship)\W*", 0.8) pattern_recognizer = PatternRecognizer( "SPACESHIP", name="Spaceship recognizer", patterns=[pattern] ) # Create an empty recognizer registry recognizer_registry = RecognizerRegistry(recognizers=[]) assert len(recognizer_registry.recognizers) == 0 # Add a new recognizer for the word "rocket" (case insensitive) recognizer_registry.add_recognizer(pattern_recognizer) # Expects one custom recognizer assert len(recognizer_registry.recognizers) == 1 # Remove recognizer recognizer_registry.remove_recognizer("Spaceship recognizer") # Expects zero custom recognizers assert len(recognizer_registry.recognizers) == 0