conditionalRandomFields crfScore

Análisis Masivo de Reseñas de Productos (Prueba de Volumen)

Scénario de test & Cas d'usage

Contexto empresarial

Una plataforma de comercio electrónico necesita procesar 100,000 reseñas de clientes diariamente para identificar automáticamente nombres de productos y sentimientos asociados, probando la capacidad de la acción para manejar grandes volúmenes de texto.
Preparación de datos

Generación de un gran volumen de reseñas simuladas mediante un bucle.

¡Copiado!
1 
2DATA casuser.large_reviews;
3LENGTH _doc_id_ $20 _text_ $500;
4DO i=1 to 100000;
5_doc_id_=cat('REV_', i);
6_text_='Este producto es excelente, la entrega fue rápida pero el embalaje estaba dañado.';
7OUTPUT;
8END;
9 
10RUN;
11 

Étapes de réalisation

1
Carga de tablas del modelo de análisis de opinión.
¡Copiado!
1 
2PROC CAS;
3TABLE.loadTable / path='sentiment_label.csv' casOut={name='s_label', replace=true};
4TABLE.loadTable / path='sentiment_attr.csv' casOut={name='s_attr', replace=true};
5TABLE.loadTable / path='sentiment_feature.csv' casOut={name='s_feature', replace=true};
6TABLE.loadTable / path='sentiment_attrfeature.csv' casOut={name='s_attrfeature', replace=true};
7TABLE.loadTable / path='sentiment_template.csv' casOut={name='s_template', replace=true};
8 
9RUN;
10 
2
Ejecución de crfScore en el conjunto de datos masivo con optimización de hilos.
¡Copiado!
1 
2PROC CAS;
3conditionalRandomFields.crfScore TABLE={name='large_reviews'} model={label={name='s_label'}, attr={name='s_attr'}, feature={name='s_feature'}, attrfeature={name='s_attrfeature'}, template={name='s_template'}} casOut={name='reviews_scored', replace=true} target='ner_tag' threadBlockSize=32768;
4 
5RUN;
6 

Resultado esperado


El proceso finaliza sin errores de memoria. La tabla 'reviews_scored' contiene 100,000 documentos procesados con las entidades etiquetadas correctamente en la variable 'ner_tag'.