mirror of https://github.com/explosion/spaCy.git
rely on is_empty property instead of __len__ (#12347)
This commit is contained in:
parent
efbc3d37b3
commit
74cae47bf6
|
@ -444,8 +444,7 @@ class Errors(metaclass=ErrorsWithCodes):
|
||||||
E133 = ("The sum of prior probabilities for alias '{alias}' should not "
|
E133 = ("The sum of prior probabilities for alias '{alias}' should not "
|
||||||
"exceed 1, but found {sum}.")
|
"exceed 1, but found {sum}.")
|
||||||
E134 = ("Entity '{entity}' is not defined in the Knowledge Base.")
|
E134 = ("Entity '{entity}' is not defined in the Knowledge Base.")
|
||||||
E139 = ("Knowledge base for component '{name}' is empty. Use the methods "
|
E139 = ("Knowledge base for component '{name}' is empty.")
|
||||||
"`kb.add_entity` and `kb.add_alias` to add entries.")
|
|
||||||
E140 = ("The list of entities, prior probabilities and entity vectors "
|
E140 = ("The list of entities, prior probabilities and entity vectors "
|
||||||
"should be of equal length.")
|
"should be of equal length.")
|
||||||
E141 = ("Entity vectors should be of length {required} instead of the "
|
E141 = ("Entity vectors should be of length {required} instead of the "
|
||||||
|
|
|
@ -46,6 +46,9 @@ cdef class InMemoryLookupKB(KnowledgeBase):
|
||||||
self._alias_index = PreshMap(nr_aliases + 1)
|
self._alias_index = PreshMap(nr_aliases + 1)
|
||||||
self._aliases_table = alias_vec(nr_aliases + 1)
|
self._aliases_table = alias_vec(nr_aliases + 1)
|
||||||
|
|
||||||
|
def is_empty(self):
|
||||||
|
return len(self) == 0
|
||||||
|
|
||||||
def __len__(self):
|
def __len__(self):
|
||||||
return self.get_size_entities()
|
return self.get_size_entities()
|
||||||
|
|
||||||
|
|
|
@ -250,7 +250,7 @@ class EntityLinker(TrainablePipe):
|
||||||
# Raise an error if the knowledge base is not initialized.
|
# Raise an error if the knowledge base is not initialized.
|
||||||
if self.kb is None:
|
if self.kb is None:
|
||||||
raise ValueError(Errors.E1018.format(name=self.name))
|
raise ValueError(Errors.E1018.format(name=self.name))
|
||||||
if len(self.kb) == 0:
|
if hasattr(self.kb, "is_empty") and self.kb.is_empty():
|
||||||
raise ValueError(Errors.E139.format(name=self.name))
|
raise ValueError(Errors.E139.format(name=self.name))
|
||||||
|
|
||||||
def initialize(
|
def initialize(
|
||||||
|
|
|
@ -353,6 +353,9 @@ def test_kb_default(nlp):
|
||||||
"""Test that the default (empty) KB is loaded upon construction"""
|
"""Test that the default (empty) KB is loaded upon construction"""
|
||||||
entity_linker = nlp.add_pipe("entity_linker", config={})
|
entity_linker = nlp.add_pipe("entity_linker", config={})
|
||||||
assert len(entity_linker.kb) == 0
|
assert len(entity_linker.kb) == 0
|
||||||
|
with pytest.raises(ValueError, match="E139"):
|
||||||
|
# this raises an error because the KB is empty
|
||||||
|
entity_linker.validate_kb()
|
||||||
assert entity_linker.kb.get_size_entities() == 0
|
assert entity_linker.kb.get_size_entities() == 0
|
||||||
assert entity_linker.kb.get_size_aliases() == 0
|
assert entity_linker.kb.get_size_aliases() == 0
|
||||||
# 64 is the default value from pipeline.entity_linker
|
# 64 is the default value from pipeline.entity_linker
|
||||||
|
|
Loading…
Reference in New Issue