Changeset 1319

Show
Ignore:
Timestamp:
05/23/08 17:57:05 (6 months ago)
Author:
sgillies
Message:

Handle river, island, island group suffixes

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • pleiades.normalizer/trunk/pleiades/normalizer/base.py

    r1315 r1319  
    2929MULTIPLE_DASHES_REGEX = re.compile(r"\-+") 
    3030EXTRA_DASHES_REGEX = re.compile(r"(^\-+)|(\-+$)") 
     31RIVER_REGEX = re.compile(r" fl\.$") 
     32ISLAND_REGEX = re.compile(r" Ins\.$", re.I) 
     33ISLAND_GROUP_REGEX = re.compile(r" Inss\.$", re.I) 
    3134MAX_LENGTH = 120 
     35 
    3236 
    3337def cropName(base, maxLength=MAX_LENGTH): 
     
    101105        """Returns a normalized text. text has to be a unicode string. 
    102106        """ 
     107        suffix = None 
     108        for re in [RIVER_REGEX, ISLAND_REGEX, ISLAND_GROUP_REGEX]: 
     109            m = re.search(label) 
     110            if m: 
     111                suffix = m.group() 
     112                label = re.sub('', label) 
     113                break 
     114 
    103115        for text in label.split('/'): 
     116            if suffix is not None: 
     117                text = text + suffix 
    104118            text = baseNormalize(text) 
    105119            base = text.lower() 
  • pleiades.normalizer/trunk/pleiades/normalizer/tests/batlas.txt

    r1315 r1319  
    33 
    44    >>> from pleiades.normalizer import normalizer 
     5 
     6Simple tests 
    57 
    68    >>> list(normalizer.normalizeN(u'Tetrapyrgia')) 
     
    1820    >>> list(normalizer.normalizeN(u'Kalaba(n)tia')) 
    1921    ['kalabantia'] 
    20      
     22    
     23Multiple names 
     24 
    2125    >>> list(normalizer.normalizeN(u'Tripolis ad Maeandrum/Apollonia ad Maeandrum/Antoniopolis')) 
    2226    ['tripolis-ad-maeandrum', 'apollonia-ad-maeandrum', 'antoniopolis'] 
    23     
     27 
     28Multiply-named rivers, islands, island groups 
     29 
     30    >>> list(normalizer.normalizeN(u'Foo/Bar fl.')) 
     31    ['foo-fl', 'bar-fl'] 
     32     
     33    >>> list(normalizer.normalizeN(u'Foo/Bar Ins.')) 
     34    ['foo-ins', 'bar-ins'] 
     35 
     36    >>> list(normalizer.normalizeN(u'Foo/Bar Inss.')) 
     37    ['foo-inss', 'bar-inss'] 
     38 
     39Non-ASCII characters 
     40 
    2441    >>> list(normalizer.normalizeN(unicode('Ağva', 'utf-8'))) 
    2542    ['agva'] 
     
    2744    >>> list(normalizer.normalizeN(unicode('Çaykenarı', 'utf-8'))) 
    2845    ['caykenari'] 
    29      
     46 
     47Non-ASCII punctuation 
     48 
    3049    >>> list(normalizer.normalizeN(unicode('‘Iotana’', 'utf-8'))) 
    3150    ['iotana'] 
    32