- "'nº' > 'no'"
- "ª > a"
- "º > o"
- - "[[:Punctuation:][:Symbol:]] > ' '"
- - "ß > 'ss'" # German szet is unimbigiously equal to double ss
- - "[^[:Letter:] [:Number:] [:Space:]] >"
+ - "[[:Punctuation:][:Symbol:]\u02bc] > ' '"
+ - "ß > 'ss'" # German szet is unambiguously equal to double ss
+ - "[^[:alnum:] [:Canonical_Combining_Class=Virama:] [:Space:]] >"
- "[:Lm:] >"
- ":: [[:Number:]] Latin ()"
- ":: [[:Number:]] Ascii ();"
- ":: lower ()"
- "[^a-z0-9[:Space:]] >"
- ":: NFC ()"
+ - "[:Space:]+ > ' '"
sanitizers:
+ - step: clean-housenumbers
+ filter-kind:
+ - housenumber
+ - conscriptionnumber
+ - streetnumber
+ convert-to-name:
+ - (\A|.*,)[^\d,]{3,}(,.*|\Z)
+ - step: clean-postcodes
+ convert-to-address: yes
+ default-pattern: "[A-Z0-9- ]{3,12}"
+ - step: clean-tiger-tags
- step: split-name-list
- step: strip-brace-terms
- step: tag-analyzer-by-language
mode: append
token-analysis:
- analyzer: generic
+ - id: "@housenumber"
+ analyzer: housenumbers
+ - id: "@postcode"
+ analyzer: postcodes
- id: bg
analyzer: generic
mode: variant-only
mode: variant-only
variants:
- !include icu-rules/variants-de.yaml
+ mutations:
+ - pattern: ä
+ replacements: ["ä", "ae"]
+ - pattern: ö
+ replacements: ["ö", "oe"]
+ - pattern: ü
+ replacements: ["ü", "ue"]
- id: el
analyzer: generic
mode: variant-only