Técnicas De Compresión E Estruturas De Indexación Compactas Para Texto En Linguaxe Natural E Contidos Dixitais: Aplicacións Prácticas
Total Page:16
File Type:pdf, Size:1020Kb
Técnicas de compresión e estruturas de indexación compactas para texto en linguaxe natural e contidos dixitais: aplicacións prácticas Autor: Eduardo Rodríguez López Tese de Doutoramento UDC / 2015 Dirixida por: Ángeles Saavedra Places Antonio Fariña Martínez Técnicas de compresión e estruturas de indexación compactas para texto en linguaxe natural e contidos dixitais: aplicacións prácticas Autor: Eduardo Rodríguez López Tese de Doutoramento UDC / 2015 Dirixida por: Ángeles Saavedra Places Antonio Fariña Martínez Departamento de Computación Tese doutoral dirixida por Ángeles Saavedra Places Departamento de Computación Facultade de Informática Universidade da Coruña 15071 A Coruña (España) Tel: +34 981 167000 ext. 1249 Fax: +34 981 167160 [email protected] Antonio Fariña Martínez Departamento de Computación Facultade de Informática Universidade da Coruña 15071 A Coruña (España) Tel: +34 981 167000 ext. 1352 Fax: +34 981 167160 [email protected] Ángeles Saavedra Places e Antonio Fariña Martínez, como directores, acreditamos que esta tese cumpre os requisitos para optar ao título de doutor e autorizamos o seu depósito e defensa por parte de Eduardo Rodríguez López, de quen se inclúe tamén a sinatura. A Clara Resumo A aplicación dos resultados da investigación ao desenvolvemento software permite crear sistemas innovadores que resolven problemas, organizan procesos ou ofrecen servizos á sociedade dun modo máis eficaz e eficiente. Na primeira parte desta tese preséntanse dúas novas técnicas da área de investigación en compresión e indexación de texto en linguaxe natural. Dunha banda, un autoíndice de palabras que permite obter unha representación comprimida do texto empregando tan só un 35–40 % do seu tamaño orixinal, á vez que realizar buscas moi eficientes dentro del. Doutra banda, un compresor orientado a frases que permite reducir un texto até ocupar un 25–30 % do seu tamaño orixinal, ofrecendo unha descompresión moi rápida e a posibilidade de realizar buscas eficientes no texto comprimido. Na segunda parte preséntanse distintas solucións tecnolóxicas que desenvolvemos e integramos en sistemas reais en produción para resolver diferentes aspectos relacionados co consumo de contidos dixitais, como a súa creación e distribución protexida, e como estas fan uso de diferentes resultados da investigación en compresión e indexación para mellorar a eficiencia no almacenamento, acceso, procesado e transmisión dos contidos de natureza textual. vii viii Resumen La aplicación de los resultados de la investigación al desarrollo software permite crear sistemas innovadores que resuelven problemas, organizan procesos o que ofrecen servicios a la sociedad de una forma más eficaz y eficiente. En la primera parte de esta tesis se presentan dos nuevas técnicas del área de investigación en compresión e indexación de texto en lenguaje natural. Por una parte, un autoíndice que permite obtener una representación comprimida del texto utilizando tan solo un 35–40 % de su tamaño original, a la vez que realizar búsquedas muy eficientes dentro de él. Por otra parte, un compresor orientado a frases que permite reducir un texto hasta ocupar un 25–30 % de su tamaño original, ofreciendo una descompresión muy rápida y la posibilidad de realizar búsquedas eficientes en el texto comprimido. En la segunda parte se presentan distintas soluciones tecnológicas que hemos desarrollado e integrado en sistemas reales en producción para resolver diferentes aspectos relacionados con el consumo de contenidos digitales, como su creación y distribución protegida, y cómo estas hacen uso de diferentes resultados de la investigación en compresión e indexación para mejorar la eficiencia en el almacenamiento, acceso, procesado y transmisión de los contenidos de naturaleza textual. ix x Abstract The application of research results to software development allows creating innovative systems that solve problems, organize processes or provide services for the society in a more effective and efficient manner. In the first part of this thesis, we present two new techniques in the research area of compression and indexing of natural language texts. On the one hand, a self-index that obtains a compressed representation of the text using just 35–40 % of its original size, while enabling very efficient searches. On the other hand, a phrase- based compressor that reduces the text to 25–30 % of its original size, providing very fast decompression and the capability of performing efficient searches over the compressed text. In the second part, we present several technological solutions that we have developed and integrated into real production systems to solve various aspects related to the consumption of digital contents, such as their creation and protected distribution, and how they make use of different techniques that are product of the research in the field of compression and indexing to improve the efficiency of storing, accessing, processing and transmitting textual contents. xi xii Prefacio Esta tese de doutoramento reflicte a evolución da miña traxectoria investigadora e profesional durante os últimos case 10 anos, e que tentarei resumir de seguido. Rematado o meu proxecto de fin de carreira de Enxeñería Informática tiven a oportunidade de incorporarme ao Laboratorio de Bases de Datos1 (LBD) da Universidade da Coruña (UDC) para investigar na área de compresión e indexación de texto en linguaxe natural. Isto deume a posibilidade de entrar a formar parte dun grupo de investigación que xa daquela (2007) comezaba a ter certa relevancia internacional na área de compresión e indexación de texto. Durante os dous anos seguintes, ademais de completar a miña formación coa realización dos estudos de doutoramento no programa de Computación (Departamento de Computación da UDC) obtendo o Diploma de Estudos Avanzados (DEA), adiqueime fundamentalmente a investigar no deseño e desenvolvemento de novas estruturas compactas e algoritmos para a compresión e indexación de texto en linguaxe natural, sendo os dous resultados máis relevantes os que presento como contribución desta tese. Tamén nesta etapa tiven a posibilidade de participar en varios proxectos de desenvolvemento software que o LBD realizou no marco de diferentes convenios, o que me permitiu aproximarme a outros campos de investigación con actividade no LBD, como as Bibliotecas Dixitais2 ou os Sistemas de Información Xeográfica3. Por aquel entón, Enxenio4 (spin-off da UDC) era unha empresa pequena con apenas catro anos de vida, xurdida da inquedanza de varios membros do LBD por aplicar o seu coñecemento e experiencia ao desenvolvemento de sistemas de 1http://lbd.udc.es 2Convenio de colaboración entre a Asociación de Escritores en Lingua Galega (AELG) e a Universidade da Coruña para a Dixitalización de Fondos para o Centro de Documentación da AELG 3Convenio entre a Excma. Deputación Provincial de A Coruña e a Universidade da Coruña para financiar o proxecto da creación da Web Cultura Galega; Convenio administrativo entre a UDC e a Deputación da Coruña para financiar a creación dunha Web de Roteiros Culturais 4http://www.enxenio.es xiii información que axudasen ás organizacións a resolver problemas complexos, organizar procesos de negocio ou ofrecer servizos útiles para a sociedade. Esta orixe de Enxenio vencellada a un grupo de investigación como o LBD fixo que, desde o principio, a súa actividade estivese marcada por un alto grado de transferencia tecnolóxica dos resultados de investigación aos seus desenvolvementos software. A finais da década, o crecemento que Enxenio viña apuntando desde o seu nacemento fixo preciso abordar unha profunda reestruturación do seu modelo organizativo e produtivo, que tivo como consecuencia tamén unha maior demanda de persoal e que supuxo o meu paso á empresa. Entrei a formar parte de Enxenio primeiro como programador, logo con responsabilidades de análise, máis tarde na dirección de proxectos, e finalmente dirixindo a súa liña de contidos dixitais. Non obstante, o estreito vínculo entre Enxenio e o LBD permitiume manter sempre certo contacto coa investigación e aplicar os resultados obtidos nela a sistemas reais, ben para resolver necesidades concretas dos produtos desenvolvidos, ou ben como proba de concepto en proxectos de carácter máis innovador. É probable que a miña orientación cara a liña de contidos dixitais da empresa non fose casual, senón a evolución lóxica dada a miña formación investigadora, mais nen sequera a día de hoxe, coa perspectiva do tempo, sería quen de aseguralo. Do que non cabe dúbida é de que os contidos dixitais, e máis concretamente a rama que se centra na creación, distribución e visualización de libros electrónicos, representa un marco ideal para poder aplicar nos sistemas desenvolvidos as estruturas de datos e algoritmos de compresión e indexación de texto en linguaxe natural deseñados durante a miña etapa investigadora. Como consecuencia de todo o anterior, esta tese divídese de forma natural en dúas partes diferenciadas pero, á vez, intimamente ligadas. A primeira parte está centrada na miña etapa investigadora, e nela preséntanse as estruturas e algoritmos para a compresión e indexación de texto resultado da miña actividade en ela. A segunda parte céntrase na miña etapa profesional, e máis concretamente na miña actividade dentro da liña de contidos dixitais de Enxenio, e nela preséntanse distintas solucións tecnolóxicas que desenvolvemos dirixidas ao negocio dos contidos dixitais editoriais, facendo especial fincapé na aplicación a sistemas reais en produción das técnicas de investigación presentadas anteriormente. xiv Índice de contidos 1. Introdución 1 I Compresión e indexación de texto 11 2. Estado da cuestión 13 3. Conceptos previos 23 3.1. End-Tagged Dense Code . 23 3.2. Compresores dinámicos baseados no ETDC . 25 3.2.1. DETDC . 26 3.2.2. DLETDC . 26 3.3. Array de sufixos . 28 3.3.1. Array de sufixos compacto de Mäkinen . 30 3.3.2. Array de sufixos comprimido de Grossi e Vitter . 32 3.4. Autoíndice de Sadakane . 34 4. Autoíndices orientados a palabras 39 4.1. Motivación . 40 4.2. CSA orientado a palabras (Word-Based CSA) . 41 4.2.1. Operacións de busca no WCSA . 42 4.2.2. Representación compacta de Ψ ................. 42 xv xvi Índice de contidos 4.3. Flexible Word-Based CSA . 46 4.3.1.