mirror of
				https://github.com/explosion/spaCy.git
				synced 2025-11-04 01:48:04 +03:00 
			
		
		
		
	* chore: add cython-linter dev dependency * fix: lexeme.pyx * fix: morphology.pxd * fix: tokenizer.pxd * fix: vocab.pxd * fix: morphology.pxd (line length) * ci: add cython-lint * ci: fix cython-lint call * Fix kb/candidate.pyx. * Fix kb/kb.pyx. * Fix kb/kb_in_memory.pyx. * Fix kb. * Fix training/ partially. * Fix training/. Ignore trailing whitespaces and too long lines. * Fix ml/. * Fix matcher/. * Fix pipeline/. * Fix tokens/. * Fix build errors. Fix vocab.pyx. * Fix cython-lint install and run. * Fix lexeme.pyx, parts_of_speech.pxd, vectors.pyx. Temporarily disable cython-lint execution. * Fix attrs.pyx, lexeme.pyx, symbols.pxd, isort issues. * Make cython-lint install conditional. Fix tokenizer.pyx. * Fix remaining files. Reenable cython-lint check. * Readded parentheses. * Fix test_build_dependencies(). * Add explanatory comment to cython-lint execution. --------- Co-authored-by: Raphael Mitsch <r.mitsch@outlook.com>
		
			
				
	
	
		
			114 lines
		
	
	
		
			2.4 KiB
		
	
	
	
		
			Cython
		
	
	
	
	
	
			
		
		
	
	
			114 lines
		
	
	
		
			2.4 KiB
		
	
	
	
		
			Cython
		
	
	
	
	
	
from libc.stdint cimport int32_t, int64_t, uint8_t, uint32_t, uint64_t
 | 
						|
from libcpp.unordered_map cimport unordered_map
 | 
						|
from libcpp.unordered_set cimport unordered_set
 | 
						|
from libcpp.vector cimport vector
 | 
						|
 | 
						|
from .parts_of_speech cimport univ_pos_t
 | 
						|
from .typedefs cimport attr_t, flags_t, hash_t
 | 
						|
 | 
						|
 | 
						|
cdef struct LexemeC:
 | 
						|
    flags_t flags
 | 
						|
 | 
						|
    attr_t lang
 | 
						|
 | 
						|
    attr_t id
 | 
						|
    attr_t length
 | 
						|
 | 
						|
    attr_t orth
 | 
						|
    attr_t lower
 | 
						|
    attr_t norm
 | 
						|
    attr_t shape
 | 
						|
    attr_t prefix
 | 
						|
    attr_t suffix
 | 
						|
 | 
						|
 | 
						|
cdef struct SpanC:
 | 
						|
    hash_t id
 | 
						|
    int start
 | 
						|
    int end
 | 
						|
    int start_char
 | 
						|
    int end_char
 | 
						|
    attr_t label
 | 
						|
    attr_t kb_id
 | 
						|
 | 
						|
 | 
						|
cdef struct TokenC:
 | 
						|
    const LexemeC* lex
 | 
						|
    uint64_t morph
 | 
						|
    univ_pos_t pos
 | 
						|
    bint spacy
 | 
						|
    attr_t tag
 | 
						|
    int idx
 | 
						|
    attr_t lemma
 | 
						|
    attr_t norm
 | 
						|
    int head
 | 
						|
    attr_t dep
 | 
						|
 | 
						|
    uint32_t l_kids
 | 
						|
    uint32_t r_kids
 | 
						|
    uint32_t l_edge
 | 
						|
    uint32_t r_edge
 | 
						|
 | 
						|
    int sent_start
 | 
						|
    int ent_iob
 | 
						|
    attr_t ent_type  # TODO: Is there a better way to do this? Multiple sources of truth..
 | 
						|
    attr_t ent_kb_id
 | 
						|
    hash_t ent_id
 | 
						|
 | 
						|
 | 
						|
cdef struct MorphAnalysisC:
 | 
						|
    hash_t key
 | 
						|
    int length
 | 
						|
 | 
						|
    attr_t* fields
 | 
						|
    attr_t* features
 | 
						|
 | 
						|
 | 
						|
# Internal struct, for storage and disambiguation of entities.
 | 
						|
cdef struct KBEntryC:
 | 
						|
 | 
						|
    # The hash of this entry's unique ID/name in the kB
 | 
						|
    hash_t entity_hash
 | 
						|
 | 
						|
    # Allows retrieval of the entity vector, as an index into a vectors table of the KB.
 | 
						|
    # Can be expanded later to refer to multiple rows (compositional model to reduce storage footprint).
 | 
						|
    int32_t vector_index
 | 
						|
 | 
						|
    # Allows retrieval of a struct of non-vector features.
 | 
						|
    # This is currently not implemented and set to -1 for the common case where there are no features.
 | 
						|
    int32_t feats_row
 | 
						|
 | 
						|
    # log probability of entity, based on corpus frequency
 | 
						|
    float freq
 | 
						|
 | 
						|
 | 
						|
# Each alias struct stores a list of Entry pointers with their prior probabilities
 | 
						|
# for this specific mention/alias.
 | 
						|
cdef struct AliasC:
 | 
						|
 | 
						|
    # All entry candidates for this alias
 | 
						|
    vector[int64_t] entry_indices
 | 
						|
 | 
						|
    # Prior probability P(entity|alias) - should sum up to (at most) 1.
 | 
						|
    vector[float] probs
 | 
						|
 | 
						|
 | 
						|
cdef struct EdgeC:
 | 
						|
    hash_t label
 | 
						|
    int32_t head
 | 
						|
    int32_t tail
 | 
						|
 | 
						|
 | 
						|
cdef struct GraphC:
 | 
						|
    vector[vector[int32_t]] nodes
 | 
						|
    vector[EdgeC] edges
 | 
						|
    vector[float] weights
 | 
						|
    vector[int] n_heads
 | 
						|
    vector[int] n_tails
 | 
						|
    vector[int] first_head
 | 
						|
    vector[int] first_tail
 | 
						|
    unordered_set[int]* roots
 | 
						|
    unordered_map[hash_t, int]* node_map
 | 
						|
    unordered_map[hash_t, int]* edge_map
 |