INNER CODE UNIT · Python
build_terms
Zverik/every_door · tools/json_to_sqlite.py:455
def build_terms(lang: str, data: dict[str, dict]) -> Iterator[tuple]:
for name in data:
name_src = references.get(references.presets_name, name, data, 'name')
terms_src = references.get(references.presets_name, name, data, 'terms')
aliases = data[name].get('aliases')
terms = [normalize(s) for s in re.split(r'\W+', terms_src or '') if s]
nameterms = [normalize(s) for s in re.split(r'\W+', name_src or '') if s]
aliasterms = [normalize(s) for s in re.split(r'\W+', aliases or '') if s]
# First words have higher priority
tfirst = None if not terms else terms[0]
ntfirst = None if not nameterms else nameterms[0]
# Convert to sets to deduplicate
nameterms = set(nameterms)
terms = (set(terms) | set(aliasterms)) - nameterms
for term in terms: