diff --git a/spacy/errors.py b/spacy/errors.py index eadbf63d6..9473f1cf7 100644 --- a/spacy/errors.py +++ b/spacy/errors.py @@ -952,6 +952,7 @@ class Errors(metaclass=ErrorsWithCodes): "with `displacy.serve(doc, port=port)`") E1050 = ("Port {port} is already in use. Please specify an available port with `displacy.serve(doc, port=port)` " "or use `auto_switch_port=True` to pick an available port automatically.") + E1051 = ("Expected `entity_id` to be of type {should_type}, but is of type {is_type}.") # v4 error strings E4000 = ("Expected a Doc as input, but got: '{type}'") diff --git a/spacy/kb/candidate.py b/spacy/kb/candidate.py index b32b72dd8..a481d88f5 100644 --- a/spacy/kb/candidate.py +++ b/spacy/kb/candidate.py @@ -1,6 +1,8 @@ import abc from typing import List, Union, Callable +from ..errors import Errors + class Candidate(abc.ABC): """A `Candidate` object refers to a textual mention that may or may not be resolved @@ -97,6 +99,10 @@ class InMemoryCandidate(Candidate): ) self._hash_to_str = hash_to_str self._entity_freq = entity_freq + if not isinstance(self._entity_id, int): + raise ValueError( + Errors.E1051.format(should_type="int", is_type=str(type(entity_id))) + ) self._entity_id_str = self._hash_to_str(self._entity_id) @property