mirror of
				https://github.com/explosion/spaCy.git
				synced 2025-11-04 01:48:04 +03:00 
			
		
		
		
	* Alignment: use a simplified ragged type for performance This introduces the AlignmentArray type, which is a simplified version of Ragged that performs better on the simple(r) indexing performed for alignment. * AlignmentArray: raise an error when using unsupported index * AlignmentArray: move error messages to Errors * AlignmentArray: remove simlified ... with simplifications * AlignmentArray: fix typo that broke a[n:n] indexing
		
			
				
	
	
		
			23 lines
		
	
	
		
			614 B
		
	
	
	
		
			Python
		
	
	
	
	
	
			
		
		
	
	
			23 lines
		
	
	
		
			614 B
		
	
	
	
		
			Python
		
	
	
	
	
	
from typing import List
 | 
						|
from dataclasses import dataclass
 | 
						|
 | 
						|
from .align import get_alignments
 | 
						|
from .alignment_array import AlignmentArray
 | 
						|
 | 
						|
 | 
						|
@dataclass
 | 
						|
class Alignment:
 | 
						|
    x2y: AlignmentArray
 | 
						|
    y2x: AlignmentArray
 | 
						|
 | 
						|
    @classmethod
 | 
						|
    def from_indices(cls, x2y: List[List[int]], y2x: List[List[int]]) -> "Alignment":
 | 
						|
        x2y = AlignmentArray(x2y)
 | 
						|
        y2x = AlignmentArray(y2x)
 | 
						|
        return Alignment(x2y=x2y, y2x=y2x)
 | 
						|
 | 
						|
    @classmethod
 | 
						|
    def from_strings(cls, A: List[str], B: List[str]) -> "Alignment":
 | 
						|
        x2y, y2x = get_alignments(A, B)
 | 
						|
        return Alignment.from_indices(x2y=x2y, y2x=y2x)
 |