Это связано с тем, как ents
представлены в spaCy. Это классы с заданными реализациями c, поэтому даже entities_2[0] == entities_1[0]
будет иметь значение False
. Судя по всему, класс Span не имеет реализации __eq__
, что, по крайней мере, на первый взгляд, является простой причиной.
Если вы распечатаете значение of entity_2 [0] это даст вам US, но это просто потому, что в классе span есть метод __repr__
, реализованный в том же файле. Если вы хотите выполнить булево сравнение, одним из способов было бы использовать свойство text
Span
и выполнить что-то вроде:
entities_1[0].text in [e.text for e in entities_2]
edit:
Как указал @abb out, Span
реализует __richcmp__
, однако это применимо к тому же экземпляру Span
, так как он проверяет положение самого токена.