Imprimir artigo - ERI-MT 2015

Propaganda
Pré-processamento textual para a extração de informação em
bases de patentes
Bruno Silva Sette, Claudia Aparecida Martins
Instituto de Computação – Universidade Federal de Mato Grosso (UFMT)
Av. Fernando Corrêa da Costa, nº 2367 – Bairro Boa Esperança – Cuiabá – MT – Brasil
[email protected], [email protected]
Abstract. Patents are records of technological innovations stored in datasets.
It is necessary an efficient method to search and analyze the information
presents in the patents. This article describes a methodology that propose to
collect, preprocess, extract and analyze of textual data relating to patents,
from Periscope system. Several patents are recovered using a specific
algorithms from patents site. In this work is showed the collection and preprocessing of patents. A preprocessing is realized for patterning of terms and
reducing the number of characters. The results of preprocessing based on ten
patents showed that the number of characters was reduced drastically.
Resumo. Patentes são registros de inovações tecnológicas armazenadas em
banco de dados. É necessário um método eficaz para a busca tanto de
informações, visando o processo de depósito de novas patentes, quanto para
análise de conhecimento relevante de padrões, pois, apesar das patentes
estarem disponíveis livremente na web, nem sempre o conhecimento intrínseco
presente é aproveitado. Este artigo descreve uma metodologia proposta para
a coleta, pré-processamento, extração de padrões e análise de dados textuais
referente a documentos de patentes, relacionadas ao projeto Periscope. Várias
patentes são recuperadas usando algoritmos específicos em um site de
patentes. Um pré-processamento é realizado para padronização dos termos e
redução do número de caracteres. O resultado do pré-processamento de dez
patentes mostram que o número de caracteres são reduzidos drasticamente.
1. Introdução
Descoberta de conhecimento em base de dados (Knowledge Discovery in Datasets KDD) é um processo para obtenção de informações relevantes e úteis na tomada de
decisões. No cenário atual, com a globalização da Internet e o acesso à informação, o
conhecimento torna-se um fator de vantagem competitiva e, portanto, uma moeda
valiosa a ser adquirida na área de gestão estratégica de uma empresa [Ferreira et al.
2009].
Considerando o campo de inovações tecnológicas, no qual as patentes são
registradas em banco de dados, é necessário um método eficaz para a busca tanto de
informações, visando o processo de depósito de novas patentes, quanto para análise de
conhecimento relevante de padrões, pois, apesar das patentes estarem disponíveis
livremente na web, nem sempre o conhecimento intrínseco presente é aproveitado
[Porter 1985].
No entanto, as patentes são armazenadas em formato textual e analisar dados não
estruturados, como textos, é uma tarefa complexa que exige uma metodologia adequada,
principalmente relacionada com o pré-processamento, comparada a dados estruturados.
E como cerca de 80% de informações contidas nas organizações estão contidas em
documentos textuais, métodos como o de Mineração de Textos (Text Mining) são
aplicados em diversos contextos e finalidades [Mitchel 2015].
Mineração de Textos é considerada, por muitos autores, como uma etapa do
processo de Descoberta de Conhecimento em Textos (Knowledge Discovery from Text –
KDT) e utiliza técnicas de análise e extração de padrões a partir de textos e frases
[Passos 2006]. Consiste na aplicação de algoritmos computacionais a fim de buscar
informações implícitas nos respectivos dados (textos) que, normalmente, não poderiam
ser obtidas de forma tradicional [Morais 2007; Wives 1999]. As principais contribuições
nesse processo estão relacionadas à busca de informações específicas em documentos, a
análise qualitativa e quantitativa de grandes volumes de textos, e a melhor compreensão
do conteúdo disponível em documentos textuais [Passos, 2006].
Considerando esse contexto, este trabalho apresenta uma metodologia
computacional para ser aplicada nas etapas iniciais de busca e obtenção de informações
e conhecimento em bases de patentes, metodologia essa baseada nos métodos de
Mineração de Textos. É descrito sua etapa inicial, com a coleta de dados, até a etapa de
tratamento e pré-processamento dos dados. É um trabalho em desenvolvimento que faz
parte de um projeto maior desenvolvido num sistema multiplataforma, denominado
Periscope. Neste sistema, os dados contidos nas patentes podem ser tratados pelo
usuário para corrigir nomes de depositantes e inventores que, por vezes, são indexados
de diferentes formas ou até mesmo com erros de grafia, nas bases de patente. Também é
possível incluir informações não disponíveis nas bases nas quais os documentos foram
extraídos, como por exemplo, a natureza jurídica dos depositantes.
Nesse trabalho, são apresentados as duas primeiras etapas do projeto e seus
resultados, ou seja, como foi realizada a coleta de dados e o pré-processamento das
patentes recuperadas. O trabalho está organizado em seções. Na Seção 2 é apresentada a
metodologia utilizada nas etapas um e dois do projeto maior. Na Seção 3 é descrita,
também, cada etapa da metodologia e os resultados obtidos com o pré-processamento.
Na Seção 4 são apresentadas as conclusões.
2. Metodologia aplicada em patentes
O processo de Mineração de Textos consiste de várias etapas e envolve desde a coleta
dos dados textuais, pré-processamento, indexação, mineração até a análise dos
resultados, como mostrado na Figura 1 [Morais 2007].
A Coleta é a etapa que responsável pela busca de dados, ou seja, os dados de
interesse a serem recuperados. O Pré-processamento é a etapa de tratamento e limpeza
dos dados coletados na etapa anterior. A etapa de Indexação consiste na aplicação de
algoritmos para recuperar, em textos, documentos relevantes a uma query, sem precisar
examinar o documento inteiro. A etapa de Mineração consiste na aplicação de
algoritmos computacionais para extrair informações e padrões, a fim de obter
conhecimentos implícitos nos dados recuperados. Por fim, a Análise, ou pósprocessamento, é a etapa que visa identificar e validar a veracidade nas informações
recuperadas pelo sistema [Mitchel 2015; Passos 2006].
Devido ao escopo amplo do projeto e por ter iniciado recentemente, para este
trabalho, foram realizadas as duas primeiras etapas do processo de mineração de textos,
da seguinte forma:
Figura 1. Etapas de um processo de Mineração de Textos [Morais 2007]
1. Coleta: os dados utilizados são textos de patentes coletados entre o mês de
março e julho de 2016, que estão disponíveis na página web United States
Patent and Trademark Office 1 - USPTO. Para a obtenção destes dados, e o
armazenamento dos mesmos, foi necessário a utilização de um mecanismo de
busca e recuperação de dados em ambientes web, como um crawler. Crawler é
um programa de computador desenvolvido para navegar pela Internet buscando
informações e/ou coletando dados. Na teoria, é o procedimento de coletar dados
por meio de qualquer meio que não seja um programa interagindo com uma API
(Application programming interface). Normalmente, isso é feito implementando
um programa que consulte um servidor web automaticamente, solicitando dados
na forma de HTML (HyperText Markup Language, que significa Linguagem de
Marcação de Hipertexto) ou outros arquivos. Diversas linguagens possuem
bibliotecas prontas para o desenvolvimento de crawlers. Aqui, foi utilizada a
biblioteca Beautfulsoup, pela facilidade da implementação e as funções
desenvolvidas especialmente para as técnicas de coleta de dados, disponível na
linguagem Python [Mitchel 2015].
2. Pré-processamento: o objetivo desta etapa é a eliminação de dados irrelevantes e
a padronização de termos utilizando algoritmos específicos, de modo que, a
etapa de recuperação de informação tenha uma melhor performance. Palavras
(strings) como preposições, artigos, tags do HTML, entre outras, são pouco
relevantes para o contexto do domínio de recuperação da informação visto que,
geralmente, têm pouco significado na análise semântica dos textos, por serem
comuns em todos os textos de uma mesma língua. Textos obtidos na web usando
o s crawlers são carregados desses termos (palavras) irrelevantes considerando
que são intrínsecas à qualquer texto e, portanto, não discriminam o domínio. É
importante que essas palavras sejam eliminadas para não sobrecarregarem o
processo e/ou para não interferirem na análise das informações. Diversas
linguagens dão suporte para essa etapa de pré-processamento em dados textuais.
Neste trabalho foi escolhida a biblioteca Natural Language Toolkit - NLTK, da
linguagem Python, por possuir ferramentas adequadas para esta etapa do
processo [Bird and Klein and Loper 2010]. O pré-processamento foi dividido em
quatro (sub)etapas: Case Folding, Remoção de tags HTML, Tokenização e
Remoção de Stopwords, especificadas na Sessão 3.
A seguir, são apresentados resultados preliminares das primeiras etapas, com
1 http://www.uspto.gov
ilustração de dez documentos.
3. Resultado do Pré-processamento
O mecanismo de pesquisa padrão do site USPTO é o “Quick Search” (pesquisa rápida).
O usuário pode selecionar alguns termos básicos para a busca e, em seguida, obter os
resultados relevantes, de acordo com os algoritmos utilizados pelo sistema de busca.
O crawler utiliza os mesmos algoritmos de busca presentes no site para obter e
gerar o resultado preliminar de patentes. Até o momento, já foram recuperadas e
preprocessadas 577.411 patentes do site USPTO, depositadas entre o mês de março e
julho de 2016.
Para ilustrar os resultados do pré-processamento, considere dez patentes (textos)
recuperados da USPTO. Os textos, ou patentes, obtidos são armazenados em arquivos,
do tipo JSON (JavaScript Object Notation), que é um formato leve de arquivo para
intercâmbio de dados computacionais, contendo a descrição geral da patente e o código
da mesma, além da página contendo o corpo da patente. Como mencionado, os textos
recuperados possuem características que não discriminam o domínio, tais como:
caracteres irrelevantes para as análises e recuperação de informações, com tags HTML e
uma quantidade significativamente grande de caracteres ou termos (Figura 2).
500000
Quantidade
400000
300000
200000
100000
0
P1
P2
P3
P4
P5
P6
P7
P8
P9
P10
Patente
Figura 2: Quantidade de caracteres por patente
Considerando essas dez patentes, que variam de 50K a 450K 2 caracteres, o préprocessamento consiste em padronizar termos, remover palavras irrelevantes, tags e
caracteres especiais. A seguir são apresentadas as quatro etapas no pré-processamento
dos textos.
3.1. Case Folding
É o processo de converter todos os caracteres de um documento para o mesmo
padrão, como letras em caixa alta para baixa, maiúsculas para minúsculas, etc. Nesta
etapa não houve alterações na quantidade de caracteres.
3.2. Remoção de tags HTML
O crawler retorna documento em formato HTML carregado de tags e outros símbolos
que são parte da estrutura desse tipo de arquivo. Portanto, é necessário a remoção desses
ruídos. Na Figura 3 é mostrada a quantidade de caracteres de cada patente após a
remoção de tags.
2 Variação média em quantidade de caracteres de cada documento.
Quantidade
450000
400000
350000
300000
250000
200000
150000
100000
50000
0
P1
P2
P3
P4
P5
P6
P7
P8
P9
P10
Patente
Figura 3: Quantidade de caracteres por patente sem as tags
É interessante observar que a patente P3 reduziu em mais de 50K caracteres
(450.000 para menos de 400.000).
3.3. Tokenização
Essa etapa consiste em transformar o texto em apenas um conjunto de palavras (tokens)
de forma limpa, eliminando caracteres inválidos e espaços eventualmente presentes no
texto. Geralmente, os textos são carregados de caracteres especiais, como: ~, !, @, etc.
Além disso, a simples eliminação dos espaços diminui consideravelmente a quantidade
de caracteres presentes na patente. O texto passa a ser tratado como uma “lista”, o que
gera um ganho significativo no processamento desses dados e será útil para gerar uma
tabela de valores, para as etapas posteriores. Na Figura 4 é mostrada a quantidade de
caracteres de cada patente após a tokenização.
350000
300000
Quantidade
250000
200000
150000
100000
50000
0
P1
P2
P3
P4
P5
P6
P7
P8
P9
P10
Patente
Figura 4: Quantidade de caracteres por patente após tokenização
É interessante observar que a patente P3 reduziu drasticamente o número de
caracteres, para menos de 350K, como mostrado na Figura 4.
3.4. Remoção de Stopwords
Palavras irrelevantes em um processo de recuperação de informação devem ser
eliminadas. Nesta etapa, uma lista contendo palavras a serem descartadas é utilizada Stoplist. São palavras que não possuem conteúdo semântico significativo para o
contexto em que elas existes, e portanto, irrelevantes para a análise discriminante de
textos. Palavras tais como: (em inglês) “i”, “me”, “my”, “myself”, “we”, “our”, não
fornecem nenhuma informação discriminativa na expressão do conteúdo dos textos
[Saton and Mcgill 1983].
Aqui, a remoção das stopwords foi realizada utilizando a biblioteca NLTK
(Natural Language Toolkit) disponível na linguagem Python. Essa biblioteca já possui
diversas stoplists em diversos idiomas. Novamente, a patente P3 reduziu o número de
caracteres de aproximadamente 350K para pouco mais de 250K, como mostrado na
Figura 5.
300000
Quantidade
250000
200000
150000
100000
50000
0
P1
P2
P3
P4
P5
P6
P7
P8
P9
P10
Patente
Figura 5: Quantidade de caracteres por patente sem stopwords
3.5. Análise comparativa do pré-processamento das patentes
Após todas as etapas, é possível analisar comparativamente os resultados obtidos
na redução de caracteres em cada etapa realizada, como mostrados na Tabela 1 e na
Figura 6, no qual Redução (%) é a porcentagem de caracteres excluídos em todo o
processo.É interessante observar que o documento que teve o menor número de
caracteres reduzidos foi a P1 e o maior número foi a patente P10. Está sendo analisada
essa relação entre o número inicial de caracteres e o número final, após a redução.
Tabela 1. Resumo dos caracteres das patentes
Inicial
P1
P2
P3
P4
P5
P6
P7
P8
P9
P10
312044
57272
462160
100713
121146
96285
73908
119004
133557
114852
Quantidade
Patente
Sem HTML Tokens
288784
40724
385622
85629
95964
80592
59440
96243
118809
67521
244784
34032
327603
72430
80249
67946
50373
81577
99954
56801
Stopwords
Redução (%)
195675
17593
253708
53658
55042
49535
34179
54195
69312
33159
37,29%
69,28%
45,10%
46,72%
54,57%
48,55%
53,75%
54,46%
48,10%
71,13%
500000
450000
400000
350000
300000
250000
200000
150000
100000
50000
0
Inicial
Sem HTML
Tokenizado
Stopwords
P1
P2
P3
P4
P5
P6
P7
P8
P9
P10
Patente
Figura 6: Comparação da quantidade de caracteres das patentes
É possível verificar na Tabela 1, com o exemplo da P5 que teve uma redução ao
final do processamento de 54,57% de caracteres, como mostrado também na Figura
6. É interessante observar na Figura 6 que a curva que representa o comportamento
na redução de caracteres em todas as patentes foram similares.
Observa-se que, o número de caracteres é reduzido drasticamente após o préprocessamento. Mesmo após essa redução de caracteres, a dimensionalidade ainda é
significativa, o que pode garantir a integridades dos dados por um lado, mas ainda é um
problema na geração de uma tabela, para processamento na etapa de mineração. Assim,
técnicas de redução de dimensionalidade estão sendo selecionadas para aplicação nos
dados para, posteriormente, gerar um conjunto de palavras relevantes a serem
submetidos às próximas etapas.
4. Conclusões
A busca de informações em patentes é uma importante tarefa para o depósito de novas
patentes no banco e para a busca de padrões nesses dados. A aplicação de algoritmos de
mineração de dados a textos é complexa devido a natureza não estruturada (textual) dos
dados. Além disso, essa tarefa não é trivial devido ao grande volume de patentes e as
diversas formas de dizer a mesma coisa com palavras semelhantes. Assim, é importante
e necessário mecanismos automáticos para auxiliar na recuperação de informação
nesses dados de patentes.
Neste trabalho é proposta uma metodologia baseada nas etapas de um processo
de KDT. Inicialmente, são apresentadas as etapas para coletar e realizar o préprocessamento de patentes relacionados ao sistema Periscope. Já foram coletadas e
processadas mais de quinhentas mil patentes do site USPTO. Para ilustrar as etapas
desenvolvidas, são apresentadas o pré-processamento de dez documentos de patentes,
no qual é possível verificar uma drástica redução no número de caracteres. Após essas
etapas concluídas, o ganho referente a quantidade de caracteres desconsiderados no
corpo das patentes pode ser considerada alta.
As principais dificuldades encontradas no processo surgem da própria natureza
dos dados analisados, como sua dimensionalidade, e na coleta dos mesmos, sendo
necessário o desenvolvimento de métodos específicos para a coleta de formatos
específicos.
Os dados estão sendo processados para que possam ser reduzidos ainda mais a
dimensionalidade das palavras, pela busca de palavras mais relevantes para o contexto
e, também, serem transformados em uma tabela com os atributos (palavras) e
respectivos valores, utilizando várias medidas e informações relacionadas ao contexto,
para serem submetidos às etapas posteriores, como indexação, mineração, análise e
integração ao Periscope.
Referências
Bird, Seven and Klein, Ewan and Loper Edward. (2010), “Natural Language Processing
with Python”, 1th edition, O'Reilly.
Ferreira, A., A., and Guimarães, E., R., and Contador, J., C., (2009) “Patente como
instrumento competitivo e como fonte de informação tecnológica” in Gest. Prod.,
São Carlos, v. 16, n. 2, p. 209-221.
Mitchel, Ryan. (2015), “Web Scraping with Python - Collecting Data from the Modern
Web”, 1th edition, O'Reilly.
Morais, Edison A., M. (2007), “Contextualização de Documentos em Domínios
Representados por Ontologias Utilizando Mineração de Textos”, Dissertação de
Mestrado UFG.
Passos, E. and Aranha, C. (2006), “A Tecnologia de Mineração de Textos” - RESIRevista Elerônica de Sistemas de Informação, Nº2.
Porter, M. E. (1985) “Vantagem competitiva: criando e sustentando um desempenho
superior”. 7 ed. Rio de Janeiro: Campus.
Saton, G. and Mcgill, M. J. (1983), “Introduction to Modern Information Retrieval.”
John Wiley and Sons, New York.
Wives, L. (2002), “Tecnologias de descoberta de conhecimento em textos aplicadas à
inteligência competitiva”. Exame de Qualificação EQ-069, PPGC-UFRGS.
Wives, L. (1999), “Um Estudo sobre Agrupamento de Documentos Textuais em
Processamento de Informações não Estruturadas Usando Técnicas de Stopwords”.
Disertação de Mestrado, PPGC/UFRGS, Porto Alegre (Brasil).
Download