mirror of
				https://github.com/explosion/spaCy.git
				synced 2025-10-31 07:57:35 +03:00 
			
		
		
		
	* Set left and right children when loading parse from byte string
This commit is contained in:
		
							parent
							
								
									6609fcf4b2
								
							
						
					
					
						commit
						b5132bed7d
					
				|  | @ -279,9 +279,12 @@ cdef class Doc: | |||
|         for col, attr_id in enumerate(attrs):  | ||||
|             values = array[:, col] | ||||
|             if attr_id == HEAD: | ||||
|                 # TODO: Set left and right children | ||||
|                 for i in range(length): | ||||
|                     tokens[i].head = values[i] | ||||
|                     if values[i] >= 1: | ||||
|                         tokens[i + values[i]].l_kids += 1 | ||||
|                     elif values[i] < 0: | ||||
|                         tokens[i + values[i]].r_kids += 1 | ||||
|             elif attr_id == TAG: | ||||
|                 for i in range(length): | ||||
|                     tokens[i].tag = values[i] | ||||
|  | @ -294,6 +297,20 @@ cdef class Doc: | |||
|             elif attr_id == ENT_TYPE: | ||||
|                 for i in range(length): | ||||
|                     tokens[i].ent_type = values[i] | ||||
|         cdef TokenC* head | ||||
|         cdef TokenC* child | ||||
|         # Set left edges | ||||
|         for i in range(length): | ||||
|             child = &tokens[i] | ||||
|             head = &tokens[i + child.head] | ||||
|             if child < head and child.l_edge < head.l_edge: | ||||
|                 head.l_edge = child.l_edge | ||||
|         # Set right edges --- same as above, but iterate in reverse | ||||
|         for i in range(length-1, -1, -1): | ||||
|             child = &tokens[i] | ||||
|             head = &tokens[i + child.head] | ||||
|             if child > head and child.r_edge > head.r_edge: | ||||
|                 head.r_edge = child.r_edge | ||||
|         return self | ||||
| 
 | ||||
|     def to_bytes(self): | ||||
|  |  | |||
		Loading…
	
		Reference in New Issue
	
	Block a user