File size: 1,581 Bytes
504f37b
 
38fd181
504f37b
 
 
 
 
 
 
 
 
 
 
 
 
38fd181
 
 
 
504f37b
 
 
38fd181
504f37b
 
 
 
 
 
 
 
 
 
38fd181
504f37b
 
 
 
38fd181
504f37b
 
 
 
38fd181
504f37b
 
 
 
38fd181
504f37b
 
 
 
38fd181
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
import re


def find_entity_spans(entity, text):
    """
    Finds the start and end indices of whole word entities in text.

    Args:
        entity: The entity string to search for.
        text: The text to search within.

    Returns:
        A list of tuples, where each tuple contains the start and end indices
        of a found entity.  Returns an empty list if no entities are found.
    """
    spans = []
    for m in re.finditer(
        r"\b" + re.escape(entity) + r"\b",
        text,
    ):  # The crucial change
        spans.append((m.start(), m.end()))
    return spans


# Example usage:
temp_text = "win winger winning"
entity = {"key": "win"}  # Example dictionary (adjust as needed)

spans = find_entity_spans(entity["key"], temp_text)
print(spans)  # Output: [(0, 3)] (Only "win" at the beginning)

temp_text = "The quick brown fox jumps over the lazy dog."
entity = {"key": "fox"}
spans = find_entity_spans(entity["key"], temp_text)
print(spans)  # Output: [(16, 19)]

temp_text = "foxes fox foxing"
entity = {"key": "fox"}
spans = find_entity_spans(entity["key"], temp_text)
print(spans)  # Output: [(0, 3), (6, 9)]

temp_text = "winger win winning"
entity = {"key": "win"}
spans = find_entity_spans(entity["key"], temp_text)
print(spans)  # Output: [(8, 11)]

temp_text = "winger win winning"
entity = {"key": "winger"}
spans = find_entity_spans(entity["key"], temp_text)
print(spans)  # Output: [(0, 6)]

temp_text = "winger win winning"
entity = {"key": "winning"}
spans = find_entity_spans(entity["key"], temp_text)
print(spans)  # Output: [(12, 19)]