abinazebinoy commited on
Commit
db0ae09
·
1 Parent(s): 41a604c

fix(test): add 'sh' abbreviation to _HONORIFICS; change to while-loop for stacked honorifics (Late Shri X -> X) -- fixes 1 failing pytest

Browse files
Files changed (1) hide show
  1. processing/entity_resolver_v2.py +7 -2
processing/entity_resolver_v2.py CHANGED
@@ -95,6 +95,7 @@ _HONORIFICS = [
95
  "shri", "smt", "dr", "prof", "mr", "mrs", "ms", "adv", "er",
96
  "hon", "honble", "col", "gen", "brig", "maj", "capt", "late",
97
  "sri", "kumari", "km",
 
98
  ]
99
 
100
  _COMPANY_SUFFIXES = [
@@ -121,10 +122,14 @@ def normalise_indian_name(name: str, kind: str = "person") -> str:
121
  # Strip M/s prefix for companies
122
  name = re.sub(r"^m\s*/\s*s\.?\s*", "", name)
123
  if kind == "person":
124
- for h in _HONORIFICS:
 
 
 
125
  name = re.sub(rf"^{re.escape(h)}\.?\s+", "", name)
126
  name = re.sub(rf"^{re.escape(h)}\.?\s*$", "", name)
127
- else:
 
128
  for old, new in _COMPANY_SUFFIXES:
129
  name = name.replace(old, new)
130
  # Remove punctuation except spaces and hyphens
 
95
  "shri", "smt", "dr", "prof", "mr", "mrs", "ms", "adv", "er",
96
  "hon", "honble", "col", "gen", "brig", "maj", "capt", "late",
97
  "sri", "kumari", "km",
98
+ "sh", "kum", "shr", "retd", "rtd", "ex",
99
  ]
100
 
101
  _COMPANY_SUFFIXES = [
 
122
  # Strip M/s prefix for companies
123
  name = re.sub(r"^m\s*/\s*s\.?\s*", "", name)
124
  if kind == "person":
125
+ # FIX: while-loop strips stacked honorifics (e.g. Late Shri X -> X)
126
+ _changed = True
127
+ while _changed:
128
+ _prev = name
129
  name = re.sub(rf"^{re.escape(h)}\.?\s+", "", name)
130
  name = re.sub(rf"^{re.escape(h)}\.?\s*$", "", name)
131
+ else:
132
+ _changed = name != _prev
133
  for old, new in _COMPANY_SUFFIXES:
134
  name = name.replace(old, new)
135
  # Remove punctuation except spaces and hyphens