Spaces:
Build error
Build error
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
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 |
-
|
|
|
|
|
|
|
|
|
|
| 125 |
name = re.sub(rf"^{re.escape(h)}\.?\s+", "", name)
|
| 126 |
name = re.sub(rf"^{re.escape(h)}\.?\s*$", "", name)
|
| 127 |
-
|
|
|
|
| 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
|