
    9is                        S SK r S SKJrJrJrJr  S SKrS SKrS SK	J
r
  S SKJr  S SKJr  S SKJr  S SKJrJr  S SKJr  S S	KJr  S S
KJr  S SKJr  \" 5       rS/r\R<                  " \R>                  \R>                  S9 " S S\5      5       r g)    N)AnyDictListUnion)Dataset)	Pipelines)Model)
OutputKeys)PipelineTensor)	PIPELINES),DocumentSegmentationTransformersPreprocessor)Tasks)
get_loggerExtractiveSummarizationPipeline)module_namec            	          ^  \ rS rSr    SS\\\4   S\S\S\4U 4S jjjrS\\	\   \4   S\
\\4   4S	 jrS\\	\   \4   S\
\\4   4S
 jrS\
\\4   S\
\\4   4S jrS\\	\   \4   4S jrS rSrU =r$ )r      modelpreprocessorconfig_filedevicec           	      b  > [         TU ]  " SUUUUUS.UD6  UR                  SS 5        UR                  SS 5        U R                  R                  U l        U R                  R
                  U l        Uc;  [        U R                  U R                  R                  R                  40 UD6U l	        g g )N)r   r   r   r   auto_collatecompilecompile_options )
super__init__popr   	model_dir	model_cfgr   configmax_position_embeddingsr   )selfr   r   r   r   r   kwargs	__class__s          z/var/www/html/land-doc-ocr/venv/lib/python3.13/site-packages/modelscope/pipelines/nlp/extractive_summarization_pipeline.pyr   (ExtractiveSummarizationPipeline.__init__   s     	 	%#%	 	 	

9d#

$d+---- L

 1 1 I I!!D      	documentsreturnc                 J    U R                  U5      nU R                  U5      nU$ )N)predictpostprocess)r%   r+   outputs      r(   __call__(ExtractiveSummarizationPipeline.__call__:   s%    i(!!&)r*   c                    U R                  U5      n[        R                  " U5      nU R                  X0R                  5      n[        X0R                  R                     5      n[        X@R                  R                     5      nUR                  S5      nUR                  S5      nUR                  U R                  R                  5      n	[        R                  " 5          UR                  5        V
Vs0 s H  u  pU
[        R                  " U5      _M     nn
nU R                  R                  " S0 UD6R                  nS S S 5        [         R"                  " WSS9n[        U5      [        U5      :X  d*   SR%                  U[        U5      [        U5      5      5       e['        X5       VVVVs/ s HG  u  nn['        UU5       VVs/ s H'  u  nnUS:w  d  M  U R                  R(                  U   PM)     snnPMI     nnnnn['        X5       VVVVs/ s HG  u  nn['        UU5       VVs/ s H'  u  nnUS:w  d  M  U R                  R(                  U   PM)     snnPMI     nnnnn/ n[+        U5       H  nUR-                  / / / S.5        M     ['        UUUU	5       GH
  u  nnnn[        U5      [        U5      :  a"  UR-                  S5        UR-                  S5        [        U5      [        U5      :X  d)   S	R%                  [        U5      [        U5      5      5       e[        U5      [        U5      :X  d)   S	R%                  [        U5      [        U5      5      5       eUU   S   R/                  U5        UU   S   R/                  U5        UU   S
   R/                  U5        GM     U$ s  snn
f ! , (       d  f       GNz= fs  snnf s  snnnnf s  snnf s  snnnnf )Nlabels	sentences   )axisz(sample {}  infer_sample {} prediction {}i)r5   r4   predictionsOz{} {}r8   r   )cut_documentsr   	from_dictr   r"   lencontext_column_namer    example_id_column_nametorchno_graditemstensorr   forwardlogitsnpargmaxformatzip
label_listrangeappendextend)r%   r+   pred_samplespredict_examplespredict_datasetnum_examplesnum_samplesr4   r5   example_idskeyvalinputrD   r8   
predictionlabelpltrue_predictionstrue_labelsoutisentence_list
example_ids                            r(   r.   'ExtractiveSummarizationPipeline.predict?   s   )))4",,\: ++,<nnM..BBCE--AABD !$$X.#''4	%))446 ]]_ !0 5 5 7 7HC U\\#&& 7   ZZ''0%077F  iiQ/9~"  	?DKKS^S-=?	?  (+;'?	
 (@#*e "*e44FQT	 0!!,,Q/4 (@	 	 
 (+;'?	
 (@#*e "*e44FQT	 0!!,,Q/4 (@	 	 
 |$AJJR2bIJ % =@ )[+=G8Juj5zC..S!!!#&}%Z8 5'..M"C
O;5 58}%U3 0W^^M"CJ60 03
OK(//>
OH%,,U3
OM*11*==G 
Y _

sZ   !N45#N.)N40O
OO6O
O
+O<OO
.N44
OO
O
inputsc                 n   / n[        U5      n[        U5       Hm  n/ n[        X   S   X   S   5       H.  u  pgUR                  5       nUS:X  d  M  UR	                  U5        M0     UR	                  SR                  U5      5        Mo     US:X  a  [        R                  US   0$ [        R                  U0$ )zprocess the prediction results

Args:
    inputs (Dict[str, Any]): _description_

Returns:
    Dict[str, str]: the prediction results
r5   r8   B-EOP
   r   )r<   rJ   rH   striprK   joinr
   TEXT)r%   ra   result
list_countnumressrX   s           r(   r/   +ExtractiveSummarizationPipeline.postprocess~   s     [
$CCFK4"K68GGI<JJqM	8
 MM$))C.) % ?OOVAY//OOV,,r*   parac                 $   [        U[        5      (       a  U/nOUn/ n/ n/ nSnU Hb  nU R                  U5      nS/[        U5      S-
  -  S/-   n	UR	                  U5        UR	                  U	5        UR	                  U5        US-  nMd     UUUS.$ )Nr   r9   re   rc   )r_   r5   r4   )
isinstancestrcut_sentencer<   rK   )
r%   ro   document_listr5   r4   r_   iddocumentsentencerW   s
             r(   r:   -ExtractiveSummarizationPipeline.cut_documents   s    dC  !FM M	
%H((2HES]Q./7);EX&MM% b!!GB & %"
 	
r*   c                 @   [         R                  " SSU5      n[         R                  " SSU5      n[         R                  " SSU5      n[         R                  " SSU5      nUR                  5       nUR                  S5       Vs/ s H  o"(       d  M  UPM     sn$ s  snf )Nu   ([。！.!？\?])([^”’])z\1\n\2u   (\.{6})([^”’])u   (\…{2})([^”’])u*   ([。！？\?][”’])([^，。！？\?])rd   )resubrstripsplit)r%   ro   _s      r(   rs   ,ExtractiveSummarizationPipeline.cut_sentence   s    vv5y$Gvv+Y=vv-y$?vvCYPTU{{}::d+1+aq+111s   
BB)r"   r!   r   )NNgpuT)__name__
__module____qualname____firstlineno__r   r	   rr   r   r   r   r   r   r1   r.   r   r/   r:   rs   __static_attributes____classcell__)r'   s   @r(   r   r      s     JN#$ G 	
  8%S	3"7 DcN 
=tCy#~!6 =4S> =~-$sF{"3 -S&[8I -2
%S	3"7 
02 2r*   )!rz   typingr   r   r   r   numpyrE   r?   datasetsr   modelscope.metainfor   modelscope.modelsr	   modelscope.outputsr
   modelscope.pipelines.baser   r   modelscope.pipelines.builderr   modelscope.preprocessorsr   modelscope.utils.constantr   modelscope.utils.loggerr   logger__all__register_moduleextractive_summarizationr   r   r*   r(   <module>r      s}    
 ) )    ) # ) 6 21 + .	,
- 	""224Y2h Y24Y2r*   