mirror of
				https://github.com/explosion/spaCy.git
				synced 2025-11-04 01:48:04 +03:00 
			
		
		
		
	* Use isort with Black profile * isort all the things * Fix import cycles as a result of import sorting * Add DOCBIN_ALL_ATTRS type definition * Add isort to requirements * Remove isort from build dependencies check * Typo
		
			
				
	
	
		
			79 lines
		
	
	
		
			2.2 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
			
		
		
	
	
			79 lines
		
	
	
		
			2.2 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
from .char_classes import (
 | 
						||
    ALPHA,
 | 
						||
    ALPHA_LOWER,
 | 
						||
    ALPHA_UPPER,
 | 
						||
    COMBINING_DIACRITICS,
 | 
						||
    CONCAT_QUOTES,
 | 
						||
    CURRENCY,
 | 
						||
    HYPHENS,
 | 
						||
    LIST_CURRENCY,
 | 
						||
    LIST_ELLIPSES,
 | 
						||
    LIST_ICONS,
 | 
						||
    LIST_PUNCT,
 | 
						||
    LIST_QUOTES,
 | 
						||
    PUNCT,
 | 
						||
    UNITS,
 | 
						||
)
 | 
						||
 | 
						||
TOKENIZER_PREFIXES = (
 | 
						||
    ["§", "%", "=", "—", "–", r"\+(?![0-9])"]
 | 
						||
    + LIST_PUNCT
 | 
						||
    + LIST_ELLIPSES
 | 
						||
    + LIST_QUOTES
 | 
						||
    + LIST_CURRENCY
 | 
						||
    + LIST_ICONS
 | 
						||
)
 | 
						||
 | 
						||
 | 
						||
TOKENIZER_SUFFIXES = (
 | 
						||
    LIST_PUNCT
 | 
						||
    + LIST_ELLIPSES
 | 
						||
    + LIST_QUOTES
 | 
						||
    + LIST_ICONS
 | 
						||
    + ["'s", "'S", "’s", "’S", "—", "–"]
 | 
						||
    + [
 | 
						||
        r"(?<=[0-9])\+",
 | 
						||
        r"(?<=°[FfCcKk])\.",
 | 
						||
        r"(?<=[0-9])(?:{c})".format(c=CURRENCY),
 | 
						||
        r"(?<=[0-9])(?:{u})".format(u=UNITS),
 | 
						||
        r"(?<=[0-9{al}{e}{p}(?:{q})])\.".format(
 | 
						||
            al=ALPHA_LOWER, e=r"%²\-\+", q=CONCAT_QUOTES, p=PUNCT
 | 
						||
        ),
 | 
						||
        r"(?<=[{au}][{au}])\.".format(au=ALPHA_UPPER),
 | 
						||
    ]
 | 
						||
)
 | 
						||
 | 
						||
TOKENIZER_INFIXES = (
 | 
						||
    LIST_ELLIPSES
 | 
						||
    + LIST_ICONS
 | 
						||
    + [
 | 
						||
        r"(?<=[0-9])[+\-\*^](?=[0-9-])",
 | 
						||
        r"(?<=[{al}{q}])\.(?=[{au}{q}])".format(
 | 
						||
            al=ALPHA_LOWER, au=ALPHA_UPPER, q=CONCAT_QUOTES
 | 
						||
        ),
 | 
						||
        r"(?<=[{a}]),(?=[{a}])".format(a=ALPHA),
 | 
						||
        r"(?<=[{a}])(?:{h})(?=[{a}])".format(a=ALPHA, h=HYPHENS),
 | 
						||
        r"(?<=[{a}0-9])[:<>=/](?=[{a}])".format(a=ALPHA),
 | 
						||
    ]
 | 
						||
)
 | 
						||
 | 
						||
 | 
						||
# Some languages e.g. written with the Cyrillic alphabet permit the use of diacritics
 | 
						||
# to mark stressed syllables in words where stress is distinctive. Such languages
 | 
						||
# should use the COMBINING_DIACRITICS... suffix and infix regex lists in
 | 
						||
# place of the standard ones.
 | 
						||
COMBINING_DIACRITICS_TOKENIZER_SUFFIXES = list(TOKENIZER_SUFFIXES) + [
 | 
						||
    r"(?<=[{a}][{d}])\.".format(a=ALPHA, d=COMBINING_DIACRITICS),
 | 
						||
]
 | 
						||
 | 
						||
COMBINING_DIACRITICS_TOKENIZER_INFIXES = list(TOKENIZER_INFIXES) + [
 | 
						||
    r"(?<=[{al}][{d}])\.(?=[{au}{q}])".format(
 | 
						||
        al=ALPHA_LOWER, au=ALPHA_UPPER, q=CONCAT_QUOTES, d=COMBINING_DIACRITICS
 | 
						||
    ),
 | 
						||
    r"(?<=[{a}][{d}]),(?=[{a}])".format(a=ALPHA, d=COMBINING_DIACRITICS),
 | 
						||
    r"(?<=[{a}][{d}])(?:{h})(?=[{a}])".format(
 | 
						||
        a=ALPHA, d=COMBINING_DIACRITICS, h=HYPHENS
 | 
						||
    ),
 | 
						||
    r"(?<=[{a}][{d}])[:<>=/](?=[{a}])".format(a=ALPHA, d=COMBINING_DIACRITICS),
 | 
						||
]
 |