[{"data":1,"prerenderedAt":18},["ShallowReactive",2],{"article":3},{"id":4,"category":5,"slug":6,"title":7,"image":8,"page_image":9,"published_at":10,"updated_at":11,"meta_title":12,"meta_description":13,"meta_keywords":14,"content":15,"tags":16,"faqs":17},139,"blog","es-how-to-detect-entities-in-html-using-nlp","Cómo detectar entidades en HTML utilizando NLP","https://blog.dexodata.com/storage/uploads/previews/20-4-s-trusted-proxy-website-how-to-detect-entities-in-html-using-nlp-cover-589853d8-b958-4c4f-bac1-265d13ce9578.webp","https://blog.dexodata.com/storage/uploads/covers/20-4-b-trusted-proxy-website-how-to-detect-entities-in-html-using-nlp-cover-12ba1551-74ef-4a7f-8be3-44b589c42970.webp","2024/04/10","2024/03/01","¿Cómo extraigo entidades de texto o HTML con NLP?","Guía sobre la detección de entidades nombradas en HTML a través de modelos NLP. 7 pasos a seguir después de comprar proxies residenciales y móviles del ecosistema ético de Dexodata.","buy residential and mobile proxies, buy residential ip","\u003C!DOCTYPE html PUBLIC \"-//W3C//DTD HTML 4.0 Transitional//EN\" \"http://www.w3.org/TR/REC-html40/loose.dtd\">\n\u003C?xml encoding=\"utf-8\"?>\u003Chtml>\u003Cbody>\u003Cp>\u003Cem>\u003Cstrong>Contenido del art&iacute;culo:\u003C/strong>\u003C/em>\u003C/p>\n\u003Cul>\n\u003Cli>\u003Ca href=\"#anchor1\">&iquest;Qu&eacute; es el Procesamiento de Lenguaje Natural?\u003C/a>\u003C/li>\n\u003Cli>\u003Ca href=\"#anchor2\">Uso de NLP para la detecci&oacute;n de entidades: Pasos principales\u003C/a>\u003C/li>\n\u003Cli>\u003Ca href=\"#anchor3\">Desaf&iacute;os en la detecci&oacute;n de entidades nombradas\u003C/a>\u003C/li>\n\u003C/ul>\n\u003Cp>\u003Ca href=\"https://dexodata.com/en/blog/how-does-ai-enhance-web-data-gathering\" target=\"_blank\" rel=\"noopener\">La inteligencia artificial mejora la recopilaci&oacute;n de datos web\u003C/a> y simplifica el descubrimiento, obtenci&oacute;n y procesamiento de elementos HTML. Sin embargo, la informaci&oacute;n en bruto encontrada en forma de texto sigue siendo dif&iacute;cil de estructurar debido a la variedad de idiomas, vocabulario y significados de palabras particulares. La soluci&oacute;n radica en implementar modelos de \u003Cstrong>Procesamiento de Lenguaje Natural\u003C/strong> para un an&aacute;lisis sem&aacute;ntico avanzado. La fase inicial de la recopilaci&oacute;n de informaci&oacute;n en l&iacute;nea sigue siendo la misma y implica la necesidad de comprar proxies residenciales y m&oacute;viles. Estas son las IPs que la infraestructura de Dexodata ofrece para la extracci&oacute;n &eacute;tica de informaci&oacute;n en internet.\u003C/p>\n\u003Ch2>\u003Ca name=\"anchor1\">\u003C/a>&iquest;Qu&eacute; es el Procesamiento de Lenguaje Natural?\u003C/h2>\n\u003Cp>\u003Ca href=\"https://en.wikipedia.org/wiki/Natural_language_processing\" target=\"_blank\" rel=\"noopener\">El Procesamiento de Lenguaje Natural (NLP)\u003C/a> constituye una disciplina de autoaprendizaje dentro de la ciencia de datos y la inteligencia artificial. Sus algoritmos juegan un papel intermedio entre las computadoras y los lenguajes humanos al comprender y manejar texto escrito. El Procesamiento de Lenguaje Natural se aplica en:\u003C/p>\n\u003Cul>\n\u003Cli>Gesti&oacute;n de palabras, mejorando la eficiencia de los editores de texto.\u003C/li>\n\u003Cli>Software de traducci&oacute;n, facilitando la comunicaci&oacute;n entre idiomas.\u003C/li>\n\u003Cli>Motores de b&uacute;squeda, permitiendo a los usuarios recuperar informaci&oacute;n relevante de vastos repositorios digitales.\u003C/li>\n\u003Cli>Aplicaciones bancarias, utilizando interacciones en lenguaje natural para consultar saldos o realizar transacciones.\u003C/li>\n\u003Cli>Chatbots, proporcionando interacciones similares a las humanas en servicio y soporte al cliente.\u003C/li>\n\u003C/ul>\n\u003Cp>Despu&eacute;s de que un equipo de investigaci&oacute;n compra IP residenciales para un acceso sin interrupciones a fuentes de internet, las tecnolog&iacute;as NLP entran en juego para \u003Ca href=\"https://dexodata.com/en/blog/how-do-ai-and-trusted-proxy-websites-improve-advanced-data-analytics\" target=\"_blank\" rel=\"noopener\">mejorar el an&aacute;lisis de datos avanzados con IA\u003C/a>. Sus objetivos consisten en:\u003C/p>\n\u003Col>\n\u003Cli>Encontrar elementos HTML adecuados\u003C/li>\n\u003Cli>Etiquetarlos como tokens y partes del habla\u003C/li>\n\u003Cli>Establecer las dependencias a trav&eacute;s de NER\u003C/li>\n\u003Cli>Identificar entidades nombradas.\u003C/li>\n\u003C/ol>\n\u003Cp>Estos procedimientos empoderan piezas de informaci&oacute;n no estructuradas con significados particulares significativos para la \u003Ca href=\"https://dexodata.com/en/blog/what-is-ai-based-business-forecasting-with-geo-targeted-proxies\" target=\"_blank\" rel=\"noopener\">predicci&oacute;n empresarial basada en IA\u003C/a> o la optimizaci&oacute;n de procesos actuales.\u003C/p>\n\u003Cp>\u003Cimg style=\"text-align: center; display: block; margin-left: auto; margin-right: auto;\" src=\"https://blog.dexodata.com/storage/uploads/images/139/20-4-geo-targeted-proxies-how-to-detect-entities-in-html-using-nlp-pic-03f0e407-86a4-48d4-91ee-239f7ea266b4.png\" alt=\"&iquest;C&oacute;mo extraigo entidades de texto o HTML con NLP?\" width=\"1032\" height=\"491\">\u003C/p>\n\u003Cp>NER significa Reconocimiento de Entidades Nombradas y representa una subfase dedicada de NLP. Es capaz de detectar y categorizar entidades nombradas dentro del texto. Las entidades nombradas, a su vez, son fragmentos espec&iacute;ficos de informaci&oacute;n que toman diversas formas, como:\u003C/p>\n\u003Cul>\n\u003Cli>Nombres personales\u003C/li>\n\u003Cli>Ubicaciones geogr&aacute;ficas\u003C/li>\n\u003Cli>Organizaciones\u003C/li>\n\u003Cli>Marcas\u003C/li>\n\u003Cli>Fechas y horas\u003C/li>\n\u003Cli>Productos.\u003C/li>\n\u003C/ul>\n\u003Cp>Cada modelo NER es entrenable de acuerdo con las especificaciones de la tarea y las caracter&iacute;sticas iniciales de HTML. La decisi&oacute;n de comprar proxies m&oacute;viles y \u003Ca href=\"https://dexodata.com/en/blog/pros-and-cons-of-residential-and-datacenter-proxies\" target=\"_blank\" rel=\"noopener\">proxies residenciales o IPs de centros de datos\u003C/a> se toma de manera similar.\u003C/p>\n\u003Cp style=\"line-height: 0.5;\">&nbsp;\u003C/p>\n\u003Ch3>\u003Ca name=\"anchor2\">\u003C/a>Uso de NLP para la detecci&oacute;n de entidades: Pasos principales\u003C/h3>\n\u003Cp style=\"line-height: 0.1;\">&nbsp;\u003C/p>\n\u003Cp>La selecci&oacute;n de modelos NLP comienza con la elecci&oacute;n de un lenguaje de programaci&oacute;n. Las ventajas de Python para la adquisici&oacute;n de informaci&oacute;n en l&iacute;nea incluyen alta velocidad de compilaci&oacute;n, c&oacute;digo comprensible y una amplia gama de bibliotecas. \u003Cstrong>Los marcos de Procesamiento de Lenguaje Natural m&aacute;s populares de Python\u003C/strong> son:\u003C/p>\n\u003Cul>\n\u003Cli>spaCy\u003C/li>\n\u003Cli>Gensim\u003C/li>\n\u003Cli>Natural Language Toolkit (NLTK)\u003C/li>\n\u003Cli>TextBlob\u003C/li>\n\u003Cli>Polyglot\u003C/li>\n\u003Cli>scikit-learn.\u003C/li>\n\u003C/ul>\n\u003Cp>Difieren en detalles y proporcionan experiencias diferentes con un enfoque en entidades multiling&uuml;es (Polyglot), modelado de temas (Gensim), versatilidad (spaCy, NLTK). Por lo tanto, siguen pasos comunes. Las etapas de detecci&oacute;n de entidades en HTML son:\u003C/p>\n\u003Cp>\u003Cspan style=\"color: #236fa1;\">\u003Cstrong>1. Extracci&oacute;n de texto\u003C/strong>\u003C/span>\u003C/p>\n\u003Cp>Aprovechando las IP residenciales que compras de un ecosistema compatible con AML/KYC, recopila datos de texto de fuentes basadas en HTML. Aqu&iacute; hay un ejemplo de implementaci&oacute;n de BeautifulSoup:\u003C/p>\n\u003Ctable style=\"border-collapse: collapse; width: 95.9143%;\" border=\"2\">\n\u003Ctbody>\n\u003Ctr>\n\u003Ctd style=\"width: 100%;\">\n\u003Cp style=\"font-weight: 400; padding-left: 40px;\">\u003Ccode>\u003Cspan style=\"color: #2e95d3;\">from\u003C/span>&nbsp;bs4&nbsp;\u003Cspan style=\"color: #2e95d3;\">import\u003C/span>&nbsp;BeautifulSoup\u003C/code>\u003C/p>\n\u003Cp style=\"font-weight: 400; padding-left: 40px;\">\u003Ccode>\u003Cspan style=\"color: #999999;\"># Analizar HTML\u003C/span>\u003C/code>\u003C/p>\n\u003Cp style=\"font-weight: 400; padding-left: 40px;\">\u003Ccode>html =&nbsp;\u003Cspan style=\"color: #00a67d;\">\"&lt;html&gt;...&lt;/html&gt;\"\u003C/span> \u003C/code>\u003C/p>\n\u003Cp style=\"font-weight: 400; padding-left: 40px;\">\u003Ccode>\u003Cspan style=\"color: #999999;\"># Colocar contenido HTML no estructurado aqu&iacute;\u003C/span>\u003C/code>\u003C/p>\n\u003Cp style=\"font-weight: 400; padding-left: 40px;\">\u003Ccode>soup = BeautifulSoup(html,&nbsp;\u003Cspan style=\"color: #00a67d;\">'html.parser'\u003C/span>)\u003C/code>\u003C/p>\n\u003Cp style=\"font-weight: 400; padding-left: 40px;\">\u003Ccode>\u003Cspan style=\"color: #999999;\"># Extraer texto\u003C/span>\u003C/code>\u003C/p>\n\u003Cp style=\"font-weight: 400; padding-left: 40px;\">\u003Ccode>text = soup.get_text()\u003C/code>\u003C/p>\n\u003C/td>\n\u003C/tr>\n\u003C/tbody>\n\u003C/table>\n\u003Cp>\u003Cspan style=\"color: #236fa1;\">\u003Cstrong>2. Limpieza de la base de datos inicial\u003C/strong>\u003C/span>\u003C/p>\n\u003Cp>Hay dos formas de eliminar etiquetas HTML no deseadas, s&iacute;mbolos peculiares y espacios. Ejecutar m&oacute;dulos NER es la primera opci&oacute;n, mientras que la segunda es aprovechar la \u003Ca href=\"https://docs.python.org/3/library/re.html\" target=\"_blank\" rel=\"noopener\">biblioteca de expresiones regulares \u003Ccode>\u003Cspan style=\"color: #236fa1;\">re\u003C/span>\u003C/code>\u003C/a> para limpiar los elementos inexactos:\u003C/p>\n\u003Ctable style=\"border-collapse: collapse; width: 96.0242%; height: 198px;\" border=\"2\">\n\u003Ctbody style=\"padding-left: 40px;\">\n\u003Ctr style=\"padding-left: 40px; height: 198px;\">\n\u003Ctd style=\"width: 100%; padding-left: 40px; height: 198px;\">\n\u003Cp style=\"font-weight: 400;\">\u003Ccode>\u003Cspan style=\"color: #2e95d3;\">import\u003C/span> re\u003C/code>\u003C/p>\n\u003Cp style=\"font-weight: 400;\">\u003Ccode>\u003Cspan style=\"color: #999999;\"># Eliminar etiquetas HTML y espacios extra\u003C/span>\u003C/code>\u003C/p>\n\u003Cp style=\"font-weight: 400;\">\u003Ccode>\u003C/code>\u003Ccode>cleaned_text = re.sub(\u003Cspan style=\"color: #00a67d;\">r'\\s+'\u003C/span>, \u003Cspan style=\"color: #00a67d;\">' '\u003C/span>, text).strip()\u003C/code>\u003C/p>\n\u003C/td>\n\u003C/tr>\n\u003C/tbody>\n\u003C/table>\n\u003Cp>\u003Cspan style=\"color: #236fa1;\">\u003Cstrong>3. Tokenizaci&oacute;n y etiquetado POS\u003C/strong>\u003C/span>\u003C/p>\n\u003Cp>La tokenizaci&oacute;n es el primer acto de dividir el texto en unidades manejables dentro de un procedimiento de Reconocimiento de Entidades Nombradas. Cada token sirve como una pieza del cuadro com&uacute;n. Luego, los tokens se etiquetan como Partes del Habla (POS) asignando informaci&oacute;n gramatical. Aqu&iacute; hay un ejemplo del uso de Python spaCy:\u003C/p>\n\u003Ctable style=\"border-collapse: collapse; width: 96.5735%;\" border=\"2\">\n\u003Ctbody>\n\u003Ctr>\n\u003Ctd style=\"width: 100%;\">\n\u003Cp style=\"padding-left: 40px;\">\u003Ccode>\u003Cspan style=\"color: #2e95d3;\">import&nbsp;\u003C/span>spacy\u003C/code>\u003C/p>\n\u003Cp style=\"padding-left: 40px;\">\u003Ccode>\u003Cspan style=\"color: #999999;\"># Cargar el modelo de lenguaje ingl&eacute;s, por ejemplo.\u003C/span>\u003C/code>\u003C/p>\n\u003Cp style=\"padding-left: 40px;\">\u003Ccode>nlp = spacy.load(\u003Cspan style=\"color: #00a67d;\">\"en_core_web_sm\"\u003C/span>)\u003C/code>\u003C/p>\n\u003Cp style=\"padding-left: 40px;\">\u003Ccode>\u003Cspan style=\"color: #999999;\"># Definir el texto previamente limpiado\u003C/span>\u003C/code>\u003C/p>\n\u003Cp style=\"padding-left: 40px;\">\u003Ccode>text =&nbsp;\u003Cspan style=\"color: #00a67d;\">\"Ejemplo para detectar entidades mediante m&oacute;dulos NLP.\"\u003C/span>\u003C/code>\u003C/p>\n\u003Cp style=\"padding-left: 40px;\">\u003Ccode>\u003Cspan style=\"color: #999999;\"># Manejar el texto usando spaCy\u003C/span>\u003C/code>\u003C/p>\n\u003Cp style=\"padding-left: 40px;\">\u003Ccode>doc = nlp(text)\u003C/code>\u003C/p>\n\u003Cp style=\"padding-left: 40px;\">\u003Ccode>\u003Cspan style=\"color: #999999;\"># Ejecutar una tokenizaci&oacute;n\u003C/span>\u003C/code>\u003C/p>\n\u003Cp style=\"padding-left: 40px;\">\u003Ccode>tokens = [token.text&nbsp;\u003Cspan style=\"color: #2e95d3;\">for&nbsp;\u003C/span>token&nbsp;\u003Cspan style=\"color: #2e95d3;\">in&nbsp;\u003C/span>doc]\u003C/code>\u003C/p>\n\u003Cp style=\"padding-left: 40px;\">\u003Ccode>\u003Cspan style=\"color: #999999;\"># Realizar etiquetado de Parte del Habla (POS)\u003C/span>\u003C/code>\u003C/p>\n\u003Cp style=\"padding-left: 40px;\">\u003Ccode>pos_tags = [(token.text, token.pos_)&nbsp;\u003Cspan style=\"color: #2e95d3;\">for&nbsp;\u003C/span>token&nbsp;\u003Cspan style=\"color: #2e95d3;\">in&nbsp;\u003C/span>doc]\u003C/code>\u003C/p>\n\u003Cp style=\"padding-left: 40px;\">\u003Ccode>\u003Cspan style=\"color: #999999;\"># Imprimir los tokens\u003C/span>\u003C/code>\u003C/p>\n\u003Cp style=\"padding-left: 40px;\">\u003Ccode>\u003Cspan style=\"color: #e9950c;\">print\u003C/span>(\u003Cspan style=\"color: #00a67d;\">\"Tokens:\"\u003C/span>)\u003C/code>\u003C/p>\n\u003Cp style=\"padding-left: 40px;\">\u003Ccode>\u003Cspan style=\"color: #e9950c;\">print\u003C/span>(tokens)\u003C/code>\u003C/p>\n\u003Cp style=\"padding-left: 40px;\">\u003Ccode>\u003Cspan style=\"color: #999999;\"># Imprimir las etiquetas POS\u003C/span>\u003C/code>\u003C/p>\n\u003Cp style=\"padding-left: 40px;\">\u003Ccode>\u003Cspan style=\"color: #e9950c;\">print\u003C/span>(\u003Cspan style=\"color: #00a67d;\">\"\nEtiquetas POS:\"\u003C/span>)\u003C/code>\u003C/p>\n\u003Cp style=\"padding-left: 40px;\">\u003Ccode>\u003Cspan style=\"color: #2e95d3;\">for\u003C/span>\u003Cspan style=\"color: #2e95d3;\">&nbsp;\u003C/span>token, pos_tag&nbsp;\u003Cspan style=\"color: #2e95d3;\">in&nbsp;\u003C/span>pos_tags:\u003C/code>\u003C/p>\n\u003Cp style=\"padding-left: 40px;\">\u003Ccode>&nbsp; &nbsp;&nbsp;\u003Cspan style=\"color: #e9950c;\">print\u003C/span>(\u003Cspan style=\"color: #00a67d;\">f\"{token}: {pos_tag}\"\u003C/span>)\u003C/code>\u003C/p>\n\u003C/td>\n\u003C/tr>\n\u003C/tbody>\n\u003C/table>\n\u003Cp>\u003Cspan style=\"color: #236fa1;\">\u003Cstrong>4. Reconocimiento de entidades\u003C/strong>\u003C/span>\u003C/p>\n\u003Cp>El trabajo central con entidades nombradas comienza aqu&iacute;. Los modelos NER examinan el texto tokenizado, buscan entidades y las categorizan en tipos distintos. Estos podr&iacute;an ser individuos, organizaciones, lugares, fechas y m&aacute;s. Cada entidad nombrada es etiquetada y luego se convierte en material para un procedimiento m&aacute;s sofisticado, el emparejamiento de patrones basado en reglas. En lugar de expresiones regulares, el modelo NLP combina tokens en secuencias de acuerdo con reglas previamente establecidas y revela dependencias:\u003C/p>\n\u003Ctable style=\"border-collapse: collapse; width: 96.6834%;\" border=\"2\">\n\u003Ctbody>\n\u003Ctr>\n\u003Ctd style=\"width: 100%;\">\n\u003Cp style=\"font-weight: 400; padding-left: 40px;\">\u003Ccode>\u003Cspan style=\"color: #999999;\"># Procesar el reconocimiento de entidades nombradas (NER)\u003C/span>\u003C/code>\u003C/p>\n\u003Cp style=\"font-weight: 400; padding-left: 40px;\">\u003Ccode>\u003Cspan style=\"color: #2e95d3;\">\u003Cspan style=\"font-weight: bold; font-family: Gilroy, sans-serif;\">for\u003C/span>\u003Cspan style=\"font-weight: bold;\"> \u003C/span>\u003C/span>ent&nbsp;\u003Cspan style=\"color: #2e95d3; font-weight: bold;\">in\u003C/span>\u003Cspan style=\"color: #2e95d3; font-weight: bold;\"> \u003C/span>tokens.ents:\u003C/code>\u003C/p>\n\u003Cp style=\"font-weight: 400; padding-left: 40px;\">\u003Ccode>&nbsp; &nbsp;&nbsp;\u003Cspan style=\"color: #e9950c; font-weight: bold;\">print\u003C/span>(ent.text, ent.label_)\u003C/code>\u003C/p>\n\u003C/td>\n\u003C/tr>\n\u003C/tbody>\n\u003C/table>\n\u003Cp>\u003Cspan style=\"color: #236fa1;\">\u003Cstrong>5. Post-procesamiento\u003C/strong>\u003C/span>\u003C/p>\n\u003Cp>Dependiendo de las tareas, puede surgir la necesidad de refinar las entidades. La IA descarta tokens irrelevantes y somete otros a normalizaci&oacute;n para asegurar coherencia dentro de los conocimientos obtenidos. Compra direcciones IP residenciales para un \u003Ca href=\"https://dexodata.com/en/blog/what-is-data-enrichment-with-ai-3-scenarios-and-a-case-for-proxies\" target=\"_blank\" rel=\"noopener\">enriquecimiento de datos mejorado por IA\u003C/a> opcional.\u003C/p>\n\u003Cp>\u003Cspan style=\"color: #236fa1;\">\u003Cstrong>6. Recolecci&oacute;n de conocimientos\u003C/strong>\u003C/span>\u003C/p>\n\u003Cp>La &uacute;ltima fase consiste en desplegar tokens considerados como entidades nombradas. Se archivan en bases de datos CSV para un an&aacute;lisis posterior.\u003C/p>\n\u003Cp style=\"line-height: 0.5;\">&nbsp;\u003C/p>\n\u003Ch3>\u003Ca name=\"anchor3\">\u003C/a>Desaf&iacute;os en la detecci&oacute;n de entidades nombradas\u003C/h3>\n\u003Cp style=\"line-height: 0.1;\">&nbsp;\u003C/p>\n\u003Cp>Varios obst&aacute;culos siguen a la detecci&oacute;n de entidades basada en NER en HTML, adem&aacute;s de las dificultades conocidas de \u003Ca href=\"https://dexodata.com/en/blog/how-to-cope-with-difficulties-of-ai-based-data-gathering-in-2023\" target=\"_blank\" rel=\"noopener\">la recopilaci&oacute;n de datos basada en IA\u003C/a>. Estos son estructuras cambiantes, entidades elusivas, enigmas contextuales y la necesidad de entrenar modelos personalizados. Para minimizar la cantidad de contenido irrelevante desde el principio de la detecci&oacute;n de entidades en HTML mediante NLP, \u003Ca href=\"https://dexodata.com/en/residential-proxies\" target=\"_blank\" rel=\"noopener\">compra proxies residenciales de Dexodata\u003C/a> y IPs m&oacute;viles. Esta infraestructura para la recopilaci&oacute;n &eacute;tica de datos de internet a nivel empresarial act&uacute;a en estricta conformidad con las pol&iacute;ticas de KYC y AML, proporcionando resultados de scraping v&aacute;lidos.\u003C/p>\u003C/body>\u003C/html>\n",[],[],1783936359700]