mirror of
https://github.com/explosion/spaCy.git
synced 2024-12-25 17:36:30 +03:00
Make Span hashable. Closes #1019
This commit is contained in:
parent
24c4c51f13
commit
4d98511db7
|
@ -77,3 +77,15 @@ def test_spans_override_sentiment(en_tokenizer):
|
||||||
assert doc[:2].sentiment == 10.0
|
assert doc[:2].sentiment == 10.0
|
||||||
assert doc[-2:].sentiment == 10.0
|
assert doc[-2:].sentiment == 10.0
|
||||||
assert doc[:-1].sentiment == 10.0
|
assert doc[:-1].sentiment == 10.0
|
||||||
|
|
||||||
|
|
||||||
|
def test_spans_are_hashable(en_tokenizer):
|
||||||
|
"""Test spans can be hashed."""
|
||||||
|
text = "good stuff bad stuff"
|
||||||
|
tokens = en_tokenizer(text)
|
||||||
|
span1 = tokens[:2]
|
||||||
|
span2 = tokens[2:4]
|
||||||
|
assert hash(span1) != hash(span2)
|
||||||
|
span3 = tokens[0:2]
|
||||||
|
assert hash(span3) == hash(span1)
|
||||||
|
|
||||||
|
|
|
@ -66,6 +66,10 @@ cdef class Span:
|
||||||
elif op == 5:
|
elif op == 5:
|
||||||
return self.start_char >= other.start_char
|
return self.start_char >= other.start_char
|
||||||
|
|
||||||
|
def __hash__(self):
|
||||||
|
return hash((self.doc, self.label, self.start_char, self.end_char))
|
||||||
|
|
||||||
|
|
||||||
def __len__(self):
|
def __len__(self):
|
||||||
self._recalculate_indices()
|
self._recalculate_indices()
|
||||||
if self.end < self.start:
|
if self.end < self.start:
|
||||||
|
|
Loading…
Reference in New Issue
Block a user