
    lj                         d dl Z dZ e j                  de j                        Z e j                  de j                        Zd Zd Zy)    Nz%P43-R2-extractor-v3-deterministic-1.0z^(hi|hello|thanks|subscribe|like and subscribe|click|welcome|in this video|today we|sponsor|brought to you|chapter|table of contents)u   \b(is|are|means|requires|supports|uses|has|can|must|should|costs|includes|allows|depends|because|therefore|wenn|ist|sind|muss|soll|kann|verwendet|benötigt|enthält)\bc                    | d   j                         }|j                         }g }|rt        |      dk  ryt        j	                  |      ryt        j                  d|      ryt        j                  d|      rt        |      dk  ry	t        j	                  |      sy
t        j                  d|      st        j                  d|      ryt        |      dkD  ryy)Ntext   )REJECTOTHER_NON_KNOWLEDGE)r   TEMPLATEz9\b(subscribe|comment below|link in description|sponsor)\b)r   CTAz'\b(first|second|next section|chapter)\bd   )r   
NAVIGATION)REVIEW_REQUIREDCONTEXT_MISSINGz\band\b.*\b(and|but)\bz\b(because|therefore)\b)r   MULTI_CLAIMi  )r   OVERLONG)ACCEPTATOMIC_GOOD)striplowerlenNONsearchreFACT)segwindowtlowreasons        +/opt/struktur/AA-043-P43-R2-extractor-v3.pyclassifyr      s    v;AGGIbv	SVBY=JJqM-IIJ3OXfII8=#a&*UjABII',		:TUX0Y  cBF3J3    c           
      ^   g }t        |       D ]  \  }}| t        d|dz
        t        t        |       |dz          D cg c]  }|d   	 }}t	        ||      \  }}	i d|d   d|d|	d|d   d	|d   d
d dd dd dg dt        t        j                  d|d   t        j                              dt        j                  d|d         dt        j                  d|d   t        j                        dd dd dg d|d|d   ||t        dd}
|j                  |
        |S c c}w )Nr         r   segment_indexstatusr   original_spancanonical_statementsubject	predicateobject
qualifiersnegationz\b(no|not|never|kein|nicht)\bnumeric_valuesz\b\d+(?:[.,]\d+)?\bunitsz6\b(?:%|seconds?|minutes?|hours?|euro|dollars?|kg|mb)\btemporal_scope
conditionscanonical_entitiescontext_windowsource_locatorF)canonical_source_identitycontent_versionextractor_versionhallucination)	enumeratemaxminr   r   boolr   r   IfindallVERSIONappend)segmentssourceversionoutisxwinr%   r   rs              r   extractrI      s   h SQq"3q1:c#h-!.DEFQqyF#F3-& Q
_Q'  Q
  Q
  Q
XYZ`Xa  Q
bwxy  {A  yB  Q
  CL  MQ  Q
  R]  ^b  Q
  ck  lp  Q
  q}  ~@  Q
  AK  LP  QS  QZ  QZ  [{  |}  ~D  |E  FH  FJ  FJ  QK  LL  Q
  M]  ^`  ^h  ^h  i  @A  BH  @I  ^J  Q
  KR  SU  S]  S]  ^W  XY  Z`  Xa  bd  bf  bf  Sg  Q
  hx  y}  Q
  ~J  KO  Q
  Pd  eg  Q
  hx  y|  Q
  }M  NO  P`  Na  Q
  ~D	  W	^	  s	z	  K
P
  Q
!**Q-	
 		 Gs   D*)r   r>   compiler<   r   r   r   rI    r    r   <module>rL      so    	/BJJ  X  Y[  Y]  Y]  ^RZZ  {  |~  |@  |@  A	r    