extração de dados em anúncios de imóveis

38
Universidade Federal de Pernambuco Centro de Informática Graduação em Ciência da Computação Extração de Dados em Anúncios de Imóveis Arthur Bezerra de Freitas Trabalho de Graduação Recife 2 de julho de 2019

Upload: others

Post on 02-May-2022

2 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Extração de Dados em Anúncios de Imóveis

Universidade Federal de PernambucoCentro de Informática

Graduação em Ciência da Computação

Extração de Dados em Anúncios deImóveis

Arthur Bezerra de Freitas

Trabalho de Graduação

Recife2 de julho de 2019

Page 2: Extração de Dados em Anúncios de Imóveis

Universidade Federal de PernambucoCentro de Informática

Arthur Bezerra de Freitas

Extração de Dados em Anúncios de Imóveis

Trabalho apresentado ao Programa de Graduação em Ci-ência da Computação do Centro de Informática da Univer-sidade Federal de Pernambuco como requisito parcial paraobtenção do grau de Bacharel em Ciência da Computação.

Orientador: Prof. Luciano de Andrade Barbosa

Recife2 de julho de 2019

Page 3: Extração de Dados em Anúncios de Imóveis

Agradecimentos

Agradeço aos meus pais que sempre me deram suporte e fizeram vários sacrifícios para meajudar na vida acadêmica. Em especial agradeço a minha mãe, de quem sou mais próximo.

Sou grato ao meu orientador Luciano Barbosa, por ter me guiado na escrita deste trabalhoe ter tido sensibilidade em um momento que eu estava doente. Também sou grato a JohnyMoreira que, além de ceder as implementações que foram analisadas por este projeto, estevedisponível, mesmo ocupado, para solucionar dúvidas sobre o código.

Obrigado a minha namorada que me deu suporte emocional e me ajudou durante o processode rotulagem manual e na revisão dos textos. Também agradeço aos meus amigos que estiveramaprendendo junto comigo durante todo este curso.

Por fim, agradeço a minha cadelinha Mel, por ter sempre me feito companhia nas madru-gadas que passei estudando.

Obrigado a todos vocês!

iii

Page 4: Extração de Dados em Anúncios de Imóveis

Resumo

Do ponto de vista computacional, dados estruturados são muito úteis, porém nem sempre estãodisponíveis e quando estão costumam ser incompletos. Em contraste a esse fato, dados nãoestruturados são abundantes na internet. Por isso, existe um interesse em aumentar a qualidadede um conjunto de dados estruturados a partir de fontes não estruturadas. Várias soluções fo-ram propostas para esse problema no contexto da Wikipédia, se aproveitando de que valores deatributos faltantes do conceito podem ser extraídos do próprio texto do artigo. Essas soluçõesutilizam técnicas de rotulagem automática que geram um conjunto de dados de treinamento apartir de dados estruturados e não estruturados presentes nos artigos. Também existe uma de-manda por essa estruturação em anúncios imobiliários, onde muitas vezes o anunciante deixade preencher vários campos e opta por descrever essa informação no texto natural. Este tra-balho avalia a possibilidade de usar sistemas de extração de dados faltantes já comprovadosna Wikipédia para extrair características de imóveis a partir da própria descrição presente noanúncio.

Palavras-chave: Extração de Dados não Estruturados, Supervisão Distante, Classificação deTexto, Pré-processamento de Dados, Aprendizagem de Máquina, Processamento de LinguagemNatural, Setor Imobiliário, Wikipédia

iv

Page 5: Extração de Dados em Anúncios de Imóveis

Abstract

From a computational point of view, structured data is very useful, but it is not always availableand is often incomplete. In contrast, unstructured data is abundant on the Internet. Therefore,there is an interest in increasing the quality of structured data from unstructured sources. Seve-ral solutions were proposed for this problem in the context of Wikipedia, exploiting that oftenmissing attribute values of the concept can be extracted from the article itself. These solutionsuse automatic labeling techniques that generate a set of training data from structured and uns-tructured data present in articles. There is also a demand for this kind of data in real estate ads,where the advertiser often does not fill in several fields and chooses to write this information inthe property description instead. This work evaluates the possibility of using attribute extrac-tion systems already proven to work in Wikipedia, to extract characteristics of real estate fromthe description present in the ad.

Keywords: Information Extraction, Distant Supervision, Text Classification, Data Preproces-sing, Machine Learning, Natural Language Processing, Real Estate Sector, Wikipedia

v

Page 6: Extração de Dados em Anúncios de Imóveis

Sumário

1 Introdução 1

2 Fundamentação 22.1 Extração de dados não estruturados 22.2 Distant supervision 32.3 Classificação de texto 3

3 Trabalhos Relacionados 53.1 Kylin 53.2 iPopulator 53.3 Deepex 6

4 Solução 84.1 Descrição dos dados 84.2 Pré-processamento 84.3 Rotulagem 104.4 Sistemas avaliados 11

4.4.1 Funcionamento do iPopulator 124.4.2 Funcionamento do Deepex 144.4.3 Modificações 16

5 Experimentos 185.1 Métricas 185.2 Resultados e análise 19

5.2.1 Resultados do iPopulator 195.2.2 Resultados do Deepex 20

6 Conclusão 22

A Extrações no conjunto de teste 23A.1 Extrações do iPopulator em forma compactada 23A.2 Extrações do Deepex 24A.3 Valores do ground truth 25

vi

Page 7: Extração de Dados em Anúncios de Imóveis

Lista de Figuras

4.1 Etapas do pré-processamento 94.2 Programa de rotulagem em execução 114.3 Arquitetura do iPopulator 124.4 Funções de similaridade usadas pelo iPopulator 134.5 Features usadas pelo iPopulator 144.6 Arquitetura do Deepex 154.7 Features usadas pelo Deepex 16

vii

Page 8: Extração de Dados em Anúncios de Imóveis

Lista de Tabelas

5.1 Métricas do iPopulator “ideal” segundo o método 1 de avaliação 195.2 Métricas do iPopulator “real” segundo o método 2 de avaliação 205.3 Métricas do Deepex 20

viii

Page 9: Extração de Dados em Anúncios de Imóveis

CAPÍTULO 1

Introdução

A internet revolucionou o mercado imobiliário brasileiro oferecendo outro meio para que oscompradores possam visualizar e negociar imóveis, além das tradicionais placas e anúncios namídia tradicional. Já em 2013, era estimado que entre 30% e 35% das vendas de imóveis foramefetuadas a partir da internet [1] e hoje em dia essa porcentagem deve ser ainda maior.

Por ser um mercado gigante é comum que exista uma grande quantidade de anúncios emdiversos sites. Com isso, vem o problema de como organizar todos eles de uma forma fácilpara que os compradores possam encontrar rapidamente um imóvel que lhe agrade. A soluçãoaplicada por sites imobiliários é utilizar dados estruturados que guardam valores como: preço,número de quartos, área, número de banheiros, etc. Esses campos costumam ser preenchidospelos próprios anunciantes e em alguns portais podem chegar a dezenas.

Um hábito recorrente de usuários de sites imobiliários é preencher apenas campos obriga-tórios e descrever seus imóveis com maior detalhe em texto livre. Em páginas de anúncios essadescrição aparece lado a lado com os dados estruturados e costuma existir uma redundânciaentre os dois, onde um campo que já foi preenchido também é apresentado na descrição. A au-sência dessas tuplas de dados é um problema, pois acaba dificultando a indexação dos anúncioso que diminui a visualização por atrapalhar possíveis compradores ao filtrar os imóveis do site.Além disso, impossibilita análise de dados, como predição de preços baseado em atributos erecomendação de imóveis baseando-se no perfil de clientes.

Essa situação poderia ser contornada se um sistema de extração fosse utilizado para extrairos dados estruturados faltantes a partir de uma fonte não estruturada, que no caso é a descriçãodos imóveis. Um bom sistema poderia acelerar o entediante processo de preenchimento decampos apresentando sugestões e incentivando o anunciante a completá-los. Outro possíveluso seria completar os dados que faltam sem a necessidade de uma pessoa.

Esse problema é bem estudado e várias soluções foram propostas em domínios diferentes.No contexto da Wikipédia, temos os sistemas Deepex [2], iPopulator [3], Kylin [4], entre ou-tros. Nela também é observada uma redundância entre dados não-estruturados compostos dostextos dos artigos e tuplas de dados estruturados que podem ser extraídas dos infoboxes. NaWikipédia, infobox (ou infocaixa) é como são chamadas as tabelas presentes no canto superiordireito de vários artigos. Elas cumprem o mesmo papel das tabelas presentes em sites de anún-cios, reunir os aspectos mais importantes de uma forma estruturada e fácil de ser consultada.

Se aproveitando das semelhanças entre artigos e anúncios de imóveis e da facilidade parase obter exemplos, este trabalho busca avaliar se é viável usar sistemas de extração de atributosa partir de texto propostos para a Wikipédia no contexto de anúncios imobiliários brasileiros.

1

Page 10: Extração de Dados em Anúncios de Imóveis

CAPÍTULO 2

Fundamentação

Neste capítulo serão abordados os diversos conceitos e técnicas necessárias para a construçãodesse projeto.

2.1 Extração de dados não estruturados

Extração de dados não estruturados se refere à extração de informação estruturada como: enti-dades, relacionamentos entre entidades e atributos de fontes não estruturadas [5]. A extração dedados não estruturados é uma tarefa que vem sendo estudada há um bom tempo. Inicialmentepela comunidade de processamento de linguagem natural (NLP) e hoje em dia envolve váriasáreas como: aprendizado de máquina, recuperação de informação, banco de dados, etc.

Sarawagi [5] categoriza sistemas de extração de informação em 5 dimensões: o tipo do dadoextraído, o tipo da fonte não-estruturada, o tipo de recursos auxiliares disponíveis, o métodousado na extração e a saída da extração.

Os dados estruturados extraídos podem ser divididos em várias categorias, dessas este traba-lho foca em entidades e relacionamentos. Entidades costumam ser frases nominais (ex.: pessoa,cidade) que representam algo no mundo real. As entidades que têm um nome são chamadas deentidades nomeadas, ex.: Albert Einstein, Recife, etc. Apesar de fugir um pouco da definição,é comum o uso do termo entidade nomeada para descrever entidades temporais e entidadesnuméricas (ex.: uma quantia de dinheiro). A tarefa de extração de entidades nomeadas em in-glês se chama Named Entity Recognition (NER) e busca reconhecer entidades nomeadas dentrode um texto. Relacionamentos são associações entre duas ou mais entidades, por exemplo: orelacionamento “mora em” é uma associação entre as entidades pessoa e cidade.

Além da própria fonte não estruturada, podem ser usados dados complementares para au-xiliar o processo de extração de dados. Bancos de dados podem prover instâncias de entidadese relacionamentos que auxiliam na extração. Além das instâncias providas por um banco, tex-tos não estruturados rotulados podem prover informação contextual sobre uma entidade. Opróprio texto do qual será extraído pode ser enriquecido com a ajuda de processos de pré-processamento, como a separação e tokenização de sentenças e a rotulagem de classes gramati-cais das palavras (POS). Todas essas fontes auxiliares podem ser usadas em conjunto para obtermelhores resultados de extração. Neste trabalho é usado uma fonte de dados estruturados paragerar a rotulagem do texto em conjunto com técnicas de pré-processamento para enriquecê-lo.

Os métodos de extração podem ser separados em dois eixos: manualmente programadoversus baseado em aprendizagem e baseado em regras versus estatístico. Os métodos manu-almente programados precisam que um especialista defina as diretrizes que serão usadas na

2

Page 11: Extração de Dados em Anúncios de Imóveis

2.2 DISTANT SUPERVISION 3

extração, enquanto que métodos baseados em aprendizagem são treinados a extrair de formaautomática. Alguns sistemas de extração usam regras para realizar o processo, um exemplo deregra pode ser: dado a detecção da palavra “Dr.” seguinte de uma palavra que começa com letramaiúscula, marque a palavra com letra maiúscula como nome de pessoa. Em contrapartida aouso de regras, pode-se decompor o texto em uma sequência de partes e então rotulá-las comum modelo estatístico.

Em geral, sistemas de aprendizagem e estatísticos costumam generalizar melhor para váriosdomínios enquanto que sistemas manualmente programados e baseado em regras conseguemmelhores resultados em domínios pequenos e mais homogêneos.

2.2 Distant supervision

Distant Supervision (DS) é um paradigma inicialmente proposto no contexto da biomedicina [6]e após ser popularizado [7] tem sido bastante utilizado na geração de bases de treinamento. Emcontraste à rotulagem manual de dados, DS consegue gerar uma quantidade grande de dadosrotulados em pouco tempo e sem a necessidade de envolvimento humano [7]. Para atingir isso,DS se utiliza de heurísticas para mapear uma fonte de dados estruturados a um conjunto dedados não-rotulados [8]. Por exemplo, Deepex [2] usa similaridade de string para identificar erotular instâncias de atributos no texto escrito.

Por partir da suposição de que a presença de duas entidades participantes de um relacio-namento em uma sentença significa que tal sentença tem uma grande chance de representar orelacionamento [7], DS acaba gerando rótulos imprecisos chamados de weak labels [6]. Ape-sar de uma base de treinamento composta por weak labels não ser completamente correta, elapode ser útil no treinamento de modelos complexos que precisam de uma grande quantidadede dados rotulados, como os de deep learning [9].

Neste trabalho, DS é utilizado para gerar uma grande quantidade de sentenças rotuladasutilizando uma base de dados estruturados extraída dos anúncios em conjunto com a descriçãodos imóveis.

2.3 Classificação de texto

Classificação de texto é uma tarefa extensamente estudada na área de processamento de lingua-gem natural (NLP) e tem como objetivo automaticamente classificar um documento de acordocom seu conteúdo em uma ou mais categorias predefinidas. Para isso, se costuma criar umclassificador que aprende a partir de features extraídas do texto e suas categorias [10].

Um classificador não consegue aprender a partir do texto puro, por esse motivo é necessáriaa transformação do texto em uma representação que possa ser facilmente interpretada pelamáquina. Uma das representações mais simples e mais utilizadas na tarefa de classificação detexto é o modelo Bag-of-Words (BoW), onde cada documento passa a ser representado comoum vetor de palavras do vocabulário que ocorrem no documento [11]. O vocabulário costumaser composto de todas as palavras do conjunto de treinamento com a exceção de stopwords, quesão palavras que não trazem nenhum significado por si próprias, como “o”, “a”, “em” e “no”.

Page 12: Extração de Dados em Anúncios de Imóveis

2.3 CLASSIFICAÇÃO DE TEXTO 4

É importante notar que essa representação não guarda nenhuma informação sobre a ordemdas palavras, logo um classificador que utiliza BoW decidirá a categoria de um documento sebaseando apenas nos valores presentes no vetor, que costumam ser relacionados a frequênciadas palavras.

Um classificador precisa ser treinado em um conjunto composto por vários exemplos detexto categorizado. Um conjunto de reviews é um caso ideal de treinamento, onde um textoque descreve bem a sua categoria é rotulado pelo próprio usuário que o escreveu. Além darotulagem manual existem outras formas de se rotular um conjunto.

Por exemplo, rótulos obtidos de forma automática, como emoticons contidos em tweets,podem ser usados para realizar treinamentos de modelos de análise de sentimento [12]. Emesmo que apenas o uso de emoticons não seja ideal para representar o sentimento de umtweet, é possível obter bons resultados.

Alguns problemas de classificação de texto incluem: análise de sentimento, detecção detópico, detecção da língua, detecção de spam, etc. Neste trabalho técnicas de classificaçãode texto são usadas em um conjunto rotulado automaticamente para verificar se uma sentençacontém ou não um valor de atributo.

Page 13: Extração de Dados em Anúncios de Imóveis

CAPÍTULO 3

Trabalhos Relacionados

Neste capítulo serão apresentados alguns sistemas de extração propostos para solucionar oproblema de completude de bases de conhecimento. Todos os trabalhos citados têm foco naextração de informação no domínio da Wikipédia inglesa, com o objetivo de completar dadosfaltantes dos infoboxes a partir do texto do artigo.

3.1 Kylin

Kylin [4] é um sistema que tem a visão de estruturar a grande quantidade de dados existentesna internet. Ele foca somente na Wikipédia argumentando evitar a extração de dados erradospresentes no restante da web como: “Elvis matou John Kennedy”. Em resumo, Kylin procurapor páginas com infoboxes similares, determina atributos em comum, cria exemplos de trei-namento automaticamente, treina extratores que usam Conditional Random Fields (CRF) e osaplica em artigos para completar ou criar novos infoboxes.

A ideia básica é utilizar infoboxes existentes como fonte de dados de treinamento com qualpode-se ensinar extratores a extrair mais dados. Para isso, Kylin é dividido em três componen-tes: pré-processador, classificador e extrator.

Inicialmente o módulo de pré-processamento é responsável por escolher atributos relevantesdos infoboxes e em seguida criar um conjunto de treinamento que será utilizado no treinamentonos modelos de extração de texto para a criação dos infoboxes. Por utilizar correspondênciaexata entre o valor da propriedade do infobox com o texto, o sistema acaba sacrificando umpouco de recall por uma maior precisão [4].

O módulo de classificação é responsável por classificar artigos que falam do mesmo domí-nio na mesma classe e, a partir de um classificador de sentenças treinado em cima dos tokense de tags POS, consegue determinar quais valores de atributos estão presentes em uma sen-tença. Na extração, Kylin usa um modelo CRF treinado para cada atributo de cada classe, como objetivo de identificar e extrair os valores do texto.

3.2 iPopulator

iPopulator [3] é um sistema de extração que ataca de forma diferente do Kylin [4] o problemade infoboxes incompletos na Wikipédia. Ao contrário de usar correspondência exata para ro-tular os valores dos atributos no texto, iPopulator opta por usar correspondência fuzzy com ajustificativa de que consegue reconhecer mais ocorrências. Além disso, o iPopulator não usaclassificadores em todas as sentenças do artigo para decidir quais serão passadas para extrator,

5

Page 14: Extração de Dados em Anúncios de Imóveis

3.3 DEEPEX 6

e sim, usa somente os primeiros parágrafos, considerando que eles costumam ter uma maiorquantidade de informação relevante associada aos infoboxes do artigo.

Na Wikipédia, os infoboxes são geradas a partir de templates que funcionam de forma pa-recida como uma função, ao receber os valores das propriedades como parâmetro o templateretorna o código-fonte do infobox. O problema de infoboxes incompletos na Wikipédia é de-finido como dado um template de infobox sem todos os parâmetros preenchidos, o objetivo étentar preenchê-los com a maior quantidade possível de valores corretos extraídos do próprioartigo [3].

O processo de extração de atributos é composto por 4 passos: análise estrutural, geraçãodos dados de treinamento, criação do extrator de valores e extração.

Na fase de análise estrutural, é determinada uma estrutura para cada atributo do infobox apartir dos valores dos infoboxes do conjunto de treinamento. Para isso, é utilizado um algoritmoapresentado pelo próprio artigo que gera uma expressão para cada valor de atributo contido noconjunto de treinamento. Em seguida, agrupa a expressões por frequência e por último misturaas expressões com maior frequência.

O dados de treinamento são compostos por artigos da Wikipédia onde ocorrências de valo-res dos atributos são rotuladas. A rotulagem automática não é uma tarefa trivial, pois muitasvezes os valores dos atributos não ocorrem de maneira literal no texto. Para realizá-la o iPopu-lator analisa apenas os primeiros parágrafos de cada artigo. Em seguida, usa correspondênciafuzzy entre os valores do infobox e as palavras do artigo. Divide o valor dos atributos emvárias partes diferentes de acordo com a estrutura descoberta na análise estrutural e as rotulaindividualmente.

Após a criação do conjunto de treinamento, ocorre o treinamento dos modelos CRF queservirão de extratores para cada atributo. O processo de extração aplicado pelo iPopulatorcomeça com um artigo novo que tem seu template de infobox identificado, após isso, todos osextratores treinados para tal template são aplicados sobre o texto do artigo, gerando um textorotulado de acordo com os atributos. Então os valores dos atributos são montados a partir dotexto rotulado usando a estrutura descoberta na primeira fase de três formas: os tokens extraídossão reordenados de acordo com a estrutura; elementos estruturados como parênteses e vírgulasnão são extraídos do texto e sim definidos pela estrutura do atributo; se o texto anotado só tivertokens opcionais de acordo com a estrutura, nada é extraído para aquele atributo.

3.3 Deepex

Deepex [2] é um sistema que aborda o mesmo problema já descrito nos outros dois trabalhos.Ele é separado em três módulos: rotulagem dos dados, treinamento de modelos e o pipeline deextração.

O módulo de rotulagem de dados é responsável por gerar os dados de treinamento usa-dos posteriormente e tem dois componentes. O primeiro, denominado descoberta de schemas,recebe o nome do template que será utilizado, recolhe outras instâncias de infoboxes que o uti-lizam e computa quais as propriedades mais usadas nelas, que recebem o nome de schema. Nosegundo componente, nomeado de distant supervision, os infoboxes também são recolhidas emconjunto com o texto dos artigos. Após isso ele utiliza a técnica de distant supervision, ma-

Page 15: Extração de Dados em Anúncios de Imóveis

3.3 DEEPEX 7

peando as tuplas recuperadas nas sentenças do artigo. A rotulagem ocorre em dois níveis: umno nível de sentenças para treinar os classificadores e o outro no nível de tokens para realizar otreinamento dos extratores.

Dois tipos de modelos são treinados no Deepex utilizando os dados gerados no móduloanterior. Primeiramente, é treinado um classificador de sentenças que tem o objetivo de preverse uma frase tem o valor de um atributo ou não. Esse classificador é então usado para filtraras sentenças que serão passadas no treinamento dos extratores de atributos. O Deepex oferecequatro modelos de extração diferentes. O CRF, que também é usado pelos outros trabalhosapresentados, e mais três que utilizam redes neurais.

No pipeline de extração, as sentenças do artigo a ser processado são filtradas pelo classifi-cador. E somente as que são relevantes passam para os extratores que coletam os valores dosatributos faltantes.

Page 16: Extração de Dados em Anúncios de Imóveis

CAPÍTULO 4

Solução

Este capítulo apresentará o conjunto de dados utilizados, o processo de pré-processamento eas ferramentas que foram aplicadas sobre a descrição de imóveis, buscando extrair valoresausentes na especificação de anúncios.

4.1 Descrição dos dados

Os dados utilizados foram obtidos através de um web crawler aplicado durante o ano de 2018em diversos sites no domínio de imóveis brasileiros. O conjunto inicial era composto de 26679páginas HTML coletadas de 67 sites de anúncios, sendo alguns de imobiliárias e outros deportais imobiliários. Cada página é acompanhada de um arquivo no formato CSV que descrevealguns atributos do anúncio, são eles: preço, latitude e longitude do imóvel, número de quartos,número de banheiros, área em metros quadrados, número de vagas disponíveis no estaciona-mento, número de suítes, bairro, estado e cidade do imóvel. As tuplas desse arquivo serãoutilizadas como fonte de dados estruturados pelo resto do trabalho.

Desses atributos cinco foram inicialmente escolhidos para serem analisados: preço, númerode quartos, número de banheiros, quantidade de vagas na garagem e área do imóvel. Todos sãonuméricos e foram selecionados pela suposição de serem mais frequentes na descrição escritapelos anunciantes e também por se mostrarem mais presentes nos dados estruturados.

4.2 Pré-processamento

O primeiro passo do pré-processamento, ilustrado na figura 4.1, foi renomear os arquivos, quetinham a URL completa do anúncio como título, para um padrão com nome do site seguido deum número único. Essa renomeação foi feita para padronizar os nomes e evitar problemas coma indexação de arquivos que estavam acontecendo no sistema operacional Windows.

8

Page 17: Extração de Dados em Anúncios de Imóveis

4.2 PRÉ-PROCESSAMENTO 9

Figura 4.1 Etapas do pré-processamento

Em seguida, começa o processo de extração da descrição do imóvel nas páginas HTML.Essa etapa foi executada com o auxílio da biblioteca Beautiful Soup de Python utilizando umconjunto de heurísticas simples, mas que se mostraram eficazes.

Primeiramente, foram retiradas várias tags HTML da página com o objetivo de isolar apenaso texto que será nossa fonte de dados não estruturados. As tags “script”, “style”, “head”,“a” e “title” foram removidas por nunca guardarem o que se deseja extrair. O resultado foianalisado e percebeu-se que ele ainda continha uma grande quantia de texto irrelevante, comoplaceholders e subtítulos. Em geral, as páginas de anúncios são compostas de formuláriose consequentemente campos para que o possível comprador possa entrar em contato com oanunciante. Esses campos costumam alojar placeholders, como “Olá, tenho interesse nesteimóvel.”, que acabavam saindo como resultado do programa. A solução aplicada foi a retiradadas tags “textarea”, “input”, “select” e “button”.

Outro fato comum em anúncios é o uso de tags de cabeçalho, como “h1” e “h2”, paranomear as seções da página, por isso todas foram removidas. As últimas tags removidas foram“ul” e “ol” por serem usadas para formatar informação sobre o imóvel. A presença de seuconteúdo no conjunto de dados iria ajudar em muito a eficiência dos extratores, mas por nãoserem textos escritos por anunciantes e sim gerados automaticamente foge do que este trabalhodeseja avaliar.

Outra ideia aplicada para obter uma saída mais limpa, independente do domínio, foi nãoextrair linhas repetidas de páginas do mesmo site. Com a intuição de que uma linha comple-tamente semelhante em duas páginas de anúncios diferentes dentro do mesmo domínio prova-velmente é algum tipo de texto gerado automaticamente, como copyright no fim da página oualguma mensagem de validação escondida. Esse processo ajudou bastante a reduzir a quanti-dade de texto irrelevante sendo extraído.

A extração tinha como resultado intermediário uma lista de linhas, inicialmente foi decididounir as linhas extraídas com espaço, mas na fase de rotulagem se percebeu que isso acarretariaem sentenças muito longas. Logo, foi decidido uni-las com “.” tornando cada linha extraídauma sentença. Outro fato que só foi percebido em uma fase posterior é que em muitas vezes

Page 18: Extração de Dados em Anúncios de Imóveis

4.3 ROTULAGEM 10

no texto um valor é escrito por extenso (quarenta e dois) no lugar de um número (42). Issoé um problema porque ambas as ferramentas analisadas utilizam o valor presente nos dadosestruturados, que é numérico, para fazer a rotulagem automática do conjunto de treinamento.Para contornar essa adversidade foi realizada a substituição de todos os números escritos porextenso para seu valor numérico correspondente. Também foi realizada a retirada de 0s aesquerda de números, pelo mesmo motivo de facilitar a rotulagem automática.

O uso dessas técnicas resultaram em um resultado satisfatório, com um texto conciso com-posto apenas pela descrição escrita do imóvel. É importante notar que o texto extraído não temuma qualidade tão boa em comparação a textos extraídos de artigos da Wikipédia por conterdiversos erros de digitação e não seguir nenhum tipo de padrão. A natureza colaborativa daWikipédia acaba ajudando a refinar o texto, fato que não ocorre em descrições de imóveis.

Por fim, foi realizada uma avaliação mais detalhada dos resultados da extração de cada umdos 67 sites. Desse número foram retirados 10 sites do conjunto final, porque estavam comerros graves de encoding ou porque não continham nenhum texto gerado manualmente. Esseprocesso resultou em dados extraídos de 21577 páginas de anúncios imobiliários de 57 sitesbrasileiros.

4.3 Rotulagem

O ponto focal dessa seção é descrever o processo de rotulagem de dados que seriam usados nasvariações de redes neurais do Deepex. Devido a problemas de refatoração de código as redesnão puderam ser aplicadas ao pipeline em tempo hábil. Apesar disso, essa seção foi mantidapois ajuda a entender melhor o conjunto de dados e por explicar a criação do ground truth.

Foram removidas 100 amostras aleatórias do conjunto de treinamento, dessas foram rotula-das 50 para a validação no treinamento dos modelos e as outras 50 foram rotuladas para teste.Para auxiliar no processo manual de rotulagem foi desenvolvido um pequeno programa de li-nha de comando. Esse programa funciona da seguinte maneira: primeiramente, lê o arquivoda descrição do imóvel; em seguida, separa em várias sentenças e as tokeniza; por fim, rotulapara cada atributo de acordo com o usuário se o token é uma propriedade (PROP), um valor depropriedade (VALUE) ou outra coisa (OTHER).

Page 19: Extração de Dados em Anúncios de Imóveis

4.4 SISTEMAS AVALIADOS 11

Figura 4.2 Programa de rotulagem em execução

Após a rotulagem do usuário, o programa salva os resultados em um arquivo CSV no for-mato esperado pelo resto do pipeline. Nesse arquivo cada linha corresponde a uma sentençaverdadeira e as colunas são: “property” que guarda para qual atributo a sentença foi rotulada,“entity” que guarda o nome do anúncio, “sentence” com a sentença, “ner” que guarda uma listacom os rótulos de cada token e “value” com o valor esperado do atributo.

Das 100 amostras rotuladas nenhuma tinha exemplos do atributo preço que acabou sendoremovido por este motivo. Além da retirada do preço, foi adicionada a propriedade númerode dormitórios para comparar o desempenho entre sinônimos. Resultando nas 5 propriedadesque foram avaliadas: área em metros quadrados, número de quartos, número de dormitórios,número de banheiros, número de vagas na garagem. E as palavras que as representam: “área”,“quarto”, “dormitório”, “banheiro” e “vaga”. É importante ressaltar quais palavras foram es-colhidas pois são elas que serão reconhecidas no texto através de uma medida de similaridadepor um dos sistemas avaliados.

Após a redefinição dos atributos, o arquivo de ground truth foi criado a partir dos valo-res rotulados manualmente do conjunto de teste. Esse arquivo, apresentado no apêndice A.3,contém os valores de extração esperados das 50 amostras de teste e é em relação a ele que asextrações dos sistemas avaliados são comparadas.

4.4 Sistemas avaliados

Inicialmente, este projeto avaliaria os três sistemas apresentados no capítulo 3, mas por ques-tões de tempo e outras complicações o escopo do projeto foi reduzido a analisar o iPopulatore uma das variações do Deepex. Esta seção oferece uma visão mais aprofundada dos siste-mas que foram avaliados, dos módulos utilizados e das modificações necessárias para tentar seadaptar ao novo corpus.

Page 20: Extração de Dados em Anúncios de Imóveis

4.4 SISTEMAS AVALIADOS 12

4.4.1 Funcionamento do iPopulator

iPopulator é um dos sistema de extração avaliados por este projeto e foi apresentado anterior-mente na seção 3.2. A versão que foi testada segue o mesmo pipeline de extração mostrado nafigura 4.3.

Figura 4.3 Arquitetura do iPopulator

Primeiramente, o conjunto de dados estruturados, no caso deles os infoboxes da Wikipédiae neste trabalho as tuplas apresentadas em 4.1, passam pela etapa de análise estrutural. Nelaé definido um padrão de extração, semelhante a uma expressão regular, para cada atributocom base nos exemplos fornecidos. Durante os testes, todas as cinco propriedades tiveram opadrão “NUMBER”, o que já era esperado porque os valores de todas as tuplas do conjunto detreinamento são numéricos.

Na fase de criação dos dados de treinamento, os padrões obtidos são utilizados para separaros valores esperados dos atributos. Então, as sentenças do texto correspondente são rotuladascom a ordem em que os valores foram segmentados utilizando a medida de similaridade apre-sentada na figura 4.4. Por exemplo, dado o padrão “NUMBER NUMBER”, o valor “14 06” asentença “14 do 06” seria rotulada como “14[1] do 06[2]”. Como todos os padrões do conjuntode dados analisado resultaram em “NUMBER”, sua segmentação resulta em um único valor econsequentemente todas ocorrências no texto são rotulados com a posição 1.

Page 21: Extração de Dados em Anúncios de Imóveis

4.4 SISTEMAS AVALIADOS 13

Figura 4.4 Funções de similaridade usadas pelo iPopulator

Na figura 4.4, a função 1 é utilizada quando os dois valores são numéricos, a função 2avalia ambos valores textuais e no caso de um dos valores ser numérico e o outro textual, elessão considerados distintos. A “ed” utilizada pelo iPopulator é a distância Levenshtein compesos iguais de inserção, deleção e substituição de caracteres.

Os problemas já começam nessa fase, pelo conjunto de dados estruturados ter vários atri-butos com valores semelhantes, como número de quartos e banheiros, acaba resultando numarotulagem automática de baixa qualidade. Por exemplo, se a rotulagem fosse para a propriedadebanheiro na sentença “2 banheiros, 2 quartos.”, o resultado final seria a frase “2[1]banheiros,2[1]quartos.”. Isso atrapalha o treinamento dos modelos na próxima etapa e consequentementenas métricas obtidas.

A terceira etapa começa após o conjunto de dados ser rotulado e é nela que é realizado otreinamento dos extratores. iPopulator usa modelos CRF com um conjunto de features do tokenem questão e dentro de uma janela de cinco tokens antes e depois dele. As features utilizadaspodem ser observadas em detalhe na figura 4.5. A janela usada de cinco tokens aparenta serinadequada para o conjunto analisado, visto que muitos dos tokens levados em consideraçãopor ela não tem relação com o termo que está sendo avaliado.

Page 22: Extração de Dados em Anúncios de Imóveis

4.4 SISTEMAS AVALIADOS 14

Figura 4.5 Features usadas pelo iPopulator

Os extratores treinados podem então ser aplicados em novos textos para obter os valoresdos atributos desejados. Caso o padrão do atributo tenha mais de um valor esperado, elessão extraídos separadamente do texto e remontados segundo a estrutura. A implementação doiPopulator que foi utilizada extrai um valor por sentença no lugar de um por documento. Osmétodos de como ela foi avaliada serão discutido no próximo capítulo.

4.4.2 Funcionamento do Deepex

Deepex é o outro sistema de extração que foi testado no contexto imobiliário, uma introdução aele foi dada na seção 3.3. Sua arquitetura apresentada na figura 4.6 é composta de três módulosprincipais que são separados em vários componentes.

Page 23: Extração de Dados em Anúncios de Imóveis

4.4 SISTEMAS AVALIADOS 15

Figura 4.6 Arquitetura do Deepex

Por se aplicar a um problema presente apenas no conjunto da Wikipédia o componente dedescobertas de schemas do módulo de rotulagem não foi utilizado neste trabalho. Por causadisso, o processo de extração começa com o componente de distant supervision. Nele ocorre acriação dos dados de treinamento que é feita para cada atributo do conjunto de tuplas. Na prá-tica, esse componente tokeniza as sentenças do texto e compara cada token aos dois membrosda tupla usando uma medida de similaridade. Caso sejam considerados parecidos, a pontuaçãoé guardada. No fim, o token que tiver a maior pontuação é rotulado com “PROP” ou “VALUE”e todos os outros são anotados com “OTHER”, como já foi descrito na seção 4.3.

A função de similaridade utilizada pelo Deepex é o soft TF-IDF [13], ela consiste na tradi-cional TF-IDF com um peso dado por outra medida. No trabalho original é usada a distânciade Jaro-Wrinkler. No Deepex um token é considerado similar caso essa medida ultrapasse ovalor de 0.8.

Além da rotulagem dos tokens, essa fase também realiza a rotulagem de sentenças. Umasentença é rotulada como relevante caso sua pontuação seja maior que 0.5, se for abaixo de 0 éconsiderada irrelevante e entre 0 e 0.5 ela será reavaliada posteriormente. A pontuação de umafrase é calculada por um método que avalia a similaridade do par de atributo-valor da tupla comuma janela deslizante de cinco tokens através do soft TF-IDF. Após todas as janelas da fraseserem avaliadas, a sentença recebe a maior pontuação dentre elas.

Com os dados rotulados em mão, são treinados, para cada atributo, os dois modelos uti-lizados no Deepex. O classificador de sentenças, utiliza support-vector machine (SVM) e éinicialmente treinado apenas nas sentenças que foram consideradas relevantes ou irrelevantesna etapa de rotulagem. Após isso, ele é usado para reavaliar as frases nas quais não era decididose elas tinham um valor presente, ou não.

As sentenças positivas são usadas no treinamento dos modelos de extração. O CRF que foiavaliado por este trabalho utiliza as features presentes na figura 4.7, que são uma adaptação dasutilizadas pelo Kylin [4].

Page 24: Extração de Dados em Anúncios de Imóveis

4.4 SISTEMAS AVALIADOS 16

Figura 4.7 Features usadas pelo Deepex

O pipeline de extração começa com a separação das sentenças, após isso os classificadoresde cada atributo decidem quais delas tem uma boa chance de conter os valores. As que sãoconsideradas relevantes passam para os extratores treinados anteriormente, que recolhem osvalores.

4.4.3 Modificações

Dado que os projetos avaliados tinham foco na Wikipédia inglesa, foram necessárias algumasmodificações para tratar a língua portuguesa presente nos dados avaliados. Foram feitas mu-danças no modo que as sentenças eram separadas e na forma que elas eram tokenizadas, alémdisso, foi treinado um rotulador de classes gramaticais para português. Exceto a adaptação dalíngua, nada foi mudado no iPopulator. Já no Deepex foram feitas mudanças na etapa de distantsupervision e no treinamento dos classificadores.

Se aproveitando do fato do Deepex também rotular as propriedades e tentando contornar oproblema já apontado, onde vários valores parecidos estão na mesma sentença, uma modifica-ção foi feita na rotulagem automática. Com essa alteração, no caso de uma frase ter mais deum possível valor, apenas o valor mais próximo do token rotulado como propriedade é mar-cado. Caso dois possíveis valores tivessem a mesma distância, o valor da esquerda é rotulado.Essa mudança vem da intuição que no conjunto de dados analisado, os valores costumam estarbem próximos da propriedade, por exemplo “2 dormitórios”. Além disso o limiar utilizadopela medida de similaridade passou de 0.8 para 0.9, porque vários termos irrelevantes estavamsendo reconhecidos como propriedades, por exemplo “Janeiro” era rotulado como “PROP” debanheiro.

A outra mudança ocorreu no treinamento dos classificadores, onde no conjunto de treina-mento existiam várias sentenças consideradas como verdadeiras sem a presença de um valor a

Page 25: Extração de Dados em Anúncios de Imóveis

4.4 SISTEMAS AVALIADOS 17

ser extraído. Por isso, apenas as sentenças que tivessem tokens rotulados como propriedade evalor passaram a ser consideradas como relevantes.

Page 26: Extração de Dados em Anúncios de Imóveis

CAPÍTULO 5

Experimentos

Este capítulo apresentará os critérios de avaliação, os resultados que foram obtidos e as hipóte-ses sobre porque foram obtidos.

5.1 Métricas

Os sistemas testados foram avaliados através de três métricas: recall, precision e f-score. Seusvalores variam entre zero e um, onde um é o melhor possível. Um alto recall indica que namaioria das vezes o sistema extrai algo quando se era esperado. Já uma precision igual a umdiz que das extrações realizadas todas eram corretas. F-score é a média harmônica de precisione recall, logo seu valor representa o quanto o sistema de extração conseguiu ser eficaz noconjunto. As seguintes definições foram utilizadas no cálculo das medidas:

• True Positive (TP): Uma extração é considerada como verdadeira positiva quando osvalores extraídos são iguais por uma função de similaridade aos valores esperados.

• False Positive (FP): Falso positivos ocorrem quando o valor extraído é diferente por umamedida de similaridade do esperado ou se algo é extraído quando nada é esperado.

• True Negative (TN): Quando nada é extraído e nada é esperado se categoriza um verda-deiro negativo.

• False Negative (FN): O modelo não extrair nada e algum valor ser esperado caracterizaum falso negativo.

Para maximizar o valor das métricas, um sistema deve ter uma grande quantidade de ver-dadeiros positivos e verdadeiro negativos e uma baixa frequência de falso positivos e falsosnegativos.

Buscando avaliar se o valor extraído é igual ao esperado foi decidido o uso de uma medidade similaridade. Inicialmente, foi cogitada a distância de Jaccard considerando cada caracteredos valores como membro de um conjunto, mas ela se mostrou inapropriada, principalmenteem casos onde se tem vários caracteres repetidos. Por exemplo, se a corretude da extração doatributo “banheiro” estivesse sendo avaliada onde o valor extraído fosse 111 e o esperado 1, adistância entre 1 e 111 é 0 por Jaccard e resultaria na extração sendo considerada como TP, oque claramente não é o caso.

No fim, foi decidido utilizar uma modificação das funções de similaridades usadas peloiPopulator [3] apresentadas na figura 4.4. O valor 1/10 foi escolhido empiricamente na versãousada por este trabalho da função 1 para ser utilizado como limiar no lugar de 1/1000.

18

Page 27: Extração de Dados em Anúncios de Imóveis

5.2 RESULTADOS E ANÁLISE 19

Pela implementação usada do iPopulator extrair um valor por sentença no lugar de um pordocumento, não é claro uma forma justa de avaliá-la. Na ausência de uma interpretação únicado resultado, a avaliação acabou sendo feita por duas abordagens diferentes: para o método 1uma extração é considera correta se qualquer um dos valores extraídos fazem parte do esperado,já o método 2 considera a extração como correta se mais de 50% dos valores extraídos seassemelham ao valor esperado. O primeiro método tem a intenção de avaliar o desempenho doiPopulator na situação ideal, onde se sabe qual dos valores extraídos é o correto e o segundométodo analisa o resultado em uma possível situação real, onde o valor que foi extraído maisvezes é considerado como o escolhido.

5.2 Resultados e análise

Os algoritmos analisados foram aplicados sobre os 50 exemplos do conjunto de teste que foramrotulados anteriormente e as métricas foram calculadas em cima do que se foi extraído. Osvalores resultantes da extração do iPopulator, Deepex e o ground truth estão disponíveis nosapêndices A.1, A.2 e A.3 respectivamente.

5.2.1 Resultados do iPopulator

Atributo Precision Recall F-ScoreÁrea 0.14 0.71 0.24Quarto 0.47 1.00 0.64Dormitório 0.22 0.90 0.36Banheiro 0.12 0.80 0.21Vaga 0.36 1.00 0.53

Tabela 5.1 Métricas do iPopulator “ideal” segundo o método 1 de avaliação

O recall elevado apresentado pela tabela 5.1 só mostra que algum valor é extraído quandose é esperado, seja ele correto ou não. Os baixos valores de precision na situação ideal deavaliação apontam que os extratores treinados no iPopulator não se adaptaram bem, mesmosem nenhuma penalidade por extrair múltiplos valores do mesmo documento. Em resumo, osistema quase sempre consegue extrair algum valor e na maioria das vezes erra.

Na tabela 5.2 a queda do recall das propriedades dormitório e banheiro pode ser explicadapois uma menor quantidade de TPs foi considerada pelo método mais rígido de avaliação.Também é notável uma grande diminuição na precision e consequentemente f-measure de todosos atributos avaliados.

Pelo iPopulator não utilizar nenhum tipo de informação além do valor para a criação do seuconjunto de treinamento, os valores extraídos dos atributos dormitório e quarto são iguais. Apropriedade dormitório apresenta métricas piores em comparação a seu sinônimo em ambos osmétodos de avaliação por ser o termo menos usado.

Page 28: Extração de Dados em Anúncios de Imóveis

5.2 RESULTADOS E ANÁLISE 20

Atributo Precision Recall F-ScoreÁrea 0.05 0.50 0.10Quarto 0.27 1.00 0.43Dormitório 0.15 0.85 0.25Banheiro 0.09 0.75 0.16Vaga 0.10 1.00 0.19

Tabela 5.2 Métricas do iPopulator “real” segundo o método 2 de avaliação

É interessante que as métricas da propriedade área são as piores nas duas formas de avalia-ção, considerando que seu valor costuma ser o mais diferente das outras propriedades, suposta-mente gerando um conjunto de treinamento melhor. Uma das possíveis explicações é que pelasoutras propriedades terem valores tão semelhantes o resultado delas pode estar sendo masca-rado. Por exemplo, dada as sentenças “2 banheiros.” e “2 quartos.” dentro de um anúncio, umextrator para o número de banheiros que extrai nenhum valor da primeira sentença e o valor 2da segunda é considerado correto pelos motivos errados. Outra hipótese é que em alguns casoso valor de área no texto está acompanhado da string “m²” e que ao tokenizar a sentença, o valor“115m²” acaba se tornando um elemento só. Esse token acaba não sendo reconhecido pelamedida de similaridade por ter um tipo diferente do que é esperado, que é um número, gerandoassim um conjunto mal rotulado.

5.2.2 Resultados do Deepex

A implementação modificada do Deepex apresentada na seção 4.4.2 foi utilizada no cálculodas métricas. Pelo pipeline usado extrair apenas um valor por atributo no documento, não foinecessária nenhuma forma modificada de avaliação, como foi feita na última seção 5.2.1.

Atributo Precision Recall F-ScoreÁrea 0.64 0.75 0.69Quarto 0.00 0.00 0.00Dormitório 0.00 0.00 0.00Banheiro 0.00 0.00 0.00Vaga 0.00 0.00 0.00

Tabela 5.3 Métricas do Deepex

Os resultados mostrados na tabela 5.3 apontam que o pipeline também não conseguiu seadaptar ao conjunto de teste. Uma análise mais profunda das extrações revelou que apenas osvalores da área foram extraídos. As áreas extraídas seguiam o padrão de começar com trêsdígitos e as que estavam erradas correspondiam ao número do endereço do imóvel e a valoresde área menores que 100 metros quadrados. O único valor a fugir dessa regra foi “64m2”extraído da sentença “64m2 de área útil.”. É possível inferir que o extrator foi treinado paraextrair números de três dígitos ou números seguidos da letra “m”.

Page 29: Extração de Dados em Anúncios de Imóveis

5.2 RESULTADOS E ANÁLISE 21

O sistema ainda foi executado com a janela de tokens considerados como features reduzidade cinco para dois, com a intuição que seria mais apropriada no conjunto de dados. Porém,os mesmos resultados foram obtidos e só valores de área foram extraídos. O fato de nada serextraído para as outras propriedades pode ser ocasionado pelo mesmo problema de valoresrepetidos mencionado na avaliação do iPopulator. A etapa de DS do Deepex não conseguerotular direito sentenças que contém valor e propriedade de forma não relacionada, o que ébem mais comum de ocorrer com propriedades que têm valores semelhantes. Por exemplo, nafrase “2 suítes, quarto de empregada, 3 vagas na garagem.” com o valor esperado de quartosendo 3 ou na frase “2 quartos, sendo 1 suíte, banheiro social.” com o valor esperado debanheiro sendo 2. Ambas sentenças seriam consideradas relevantes e usadas no treinamento, oque piora o desempenho dos classificadores e dos extratores.

Buscando uma solução a esse problema, todos os sinais de pontuação foram substituídospara “.” no conjunto de dados, com a intuição de diminuir o tamanho das sentenças e evitarque valores e propriedades irrelevantes ocorram na mesma frase. Porém, o resultado con-tinuou o mesmo e rotulagens erradas como “4[VALUE] Quartos sendo 1 suíte master combanheira[PROP] e closet.” ainda eram comuns no conjunto de treinamento.

Page 30: Extração de Dados em Anúncios de Imóveis

CAPÍTULO 6

Conclusão

O objetivo deste trabalho foi avaliar se alguns sistemas de extração propostos para solucionaro problema da incompletude de infoboxes na Wikipédia inglesa poderiam ser adaptados pararealizar a extração de atributos no domínio de anúncios imobiliários brasileiros. Os dados foramminerados dos próprios sites e, em seguida, pré-processados. Foram realizadas adaptações nossistemas para comportar o novo conjunto de dados, com cuidado para não alterá-los a ponto deserem projetos diferentes dos propostos.

Os resultados apresentados por este trabalho demonstram que os sistemas de extração ava-liados não conseguiram se adaptar bem ao domínio de dados de imóveis. Uma possível ex-plicação é que os modelos CRFs treinados nas features apresentadas não conseguiram repre-sentar a natureza irregular das descrições de anúncios, que contém vários erros de ortografiae até mesmo valores que contradizem o conjunto estruturado. Seria muito proveitoso avaliaro desempenho das outras variações do Deepex e verificar se o comportamento se repetia, masinfelizmente não foi possível executar os extratores que utilizam redes neurais. Outro fator quetambém deve ter contribuído com os maus resultados é que as técnicas de rotulagem automáticautilizadas nos pipelines não se adaptaram bem com vários valores similares no texto. Em razãodisso, acabaram gerando um conjunto de treinamento mal rotulado.

Trabalhos futuros podem explorar melhor os motivos que causaram esses resultados insa-tisfatórios. Também podem avaliar o uso de modelos além do CRF nesse contexto, como asvariações de Bidirectional Long Short Term Memory (BLSTM) presentes no Deepex. Outracontribuição seria propor técnicas de rotulagem automática que se adaptem bem a um conjuntode dados irregular como o de descrições de imóveis.

22

Page 31: Extração de Dados em Anúncios de Imóveis

APÊNDICE A

Extrações no conjunto de teste

A.1 Extrações do iPopulator em forma compactada

anúncio área banheiro dormitório quarto vaga1 Emicol/Imobiliários NA 2 3/2 2 3/2 22 NA 2 3 3 1 13 NA 2 2 2 1 64 NA NA 3 2 3 2 15 NA NA NA NA NA6 1 NA 2 2 17 1 6/1/1 6/3 1/3 3/3 1/3 3/3 6/1/1 3/1 68 250.000,00/3 2/3 2/3 2/3 250.000,00/29 2.563,00/1/71/64 1/71/1 2 2 2 1 4/71/2 4/71/2 1/1 1/7110 2 2 1 2 2 111 145/145m² 145/1 3 145/3 3 145/3 3 14512 1 1/2 3 3 1/213 NA 3 1/1 1/2 3/2 3/2 1 1/214 31 31/4 4/3 31/4 4/3 31/4 4/3 31/1/315 97.48 2 2 2 NA16 Ref NA 62194 62194 NA17 NA 2 1 2 2 2 2 2 118 NA NA NA NA NA19 2 65,90 2 3 2 3 2 120 NA NA 2 2 121 62 62/2 62/2 62/2 6222 1 1 2/1 2 2 1/1 123 35 89 NA NA NA 124 200/2 15 2 2 2 1/225 6/1 205 1 3 3 1/6/1 126 156,12/4/3 4/3 4/3/4 2 4/3/4 2 1/4/327 NA NA NA NA NA28 3 3 3 3 3 3 1 2 329 38/1 1 1 1 130 77 77/2 2 2 77/2 2 2 77/2 2 2 77/2 2 2

23

Page 32: Extração de Dados em Anúncios de Imóveis

A.2 EXTRAÇÕES DO DEEPEX 24

Tabela A.1 continuada da página anterioranúncio área banheiro dormitório quarto vaga31 4/5 4/5/1 4 3 4/4/5 3 4/4/5 1 4 1/4/532 NA NA NA NA NA33 4/7.500,00/3 1/7.500,00/4 4/7.500,00/3 4/7.500,00/3 1/7.500,00/434 NA 3 2 3 3 235 NA NA NA NA NA36 NA NA NA NA NA37 NA NA NA NA NA38 Ref NA 34028 34028 NA39 4 4 4/3 4/3 4 140 277 2 2 2 241 24/2/1/privativa 24/2/1/2 1 24/2/1 24/2/1 24/2/1/2 1 142 73 2 2 1 3 2 3 2 2 143 NA NA NA NA NA44 72 1 3 3 145 1/Jardim 1/2 2 2 1/246 NA NA NA NA NA47 Ana/3 2 3 3 248 Oportunidade 2 1 1 3 2/3 3 2/3 1/2 1 149 5 5 5/2 2 5/2 2 550 191/1 36 NA 3 3 3 3 3

A.2 Extrações do Deepex

anúncio área banheiro dormitório quarto vaga1 NA NA NA NA NA2 NA NA NA NA NA3 NA NA NA NA NA4 192 NA NA NA NA5 137 NA NA NA NA6 NA NA NA NA NA7 NA NA NA NA NA8 115 NA NA NA NA9 NA NA NA NA NA10 NA NA NA NA NA11 NA NA NA NA NA12 277 NA NA NA NA13 NA NA NA NA NA14 NA NA NA NA NA15 NA NA NA NA NA16 NA NA NA NA NA

Page 33: Extração de Dados em Anúncios de Imóveis

A.3 VALORES DO GROUND TRUTH 25

Tabela A.2 continuada da página anterioranúncio área banheiro dormitório quarto vaga17 NA NA NA NA NA18 NA NA NA NA NA19 260 NA NA NA NA20 64m2 NA NA NA NA21 145 NA NA NA NA22 158m_ NA NA NA NA23 NA NA NA NA NA24 NA NA NA NA NA25 NA NA NA NA NA26 180m² NA NA NA NA27 NA NA NA NA NA28 NA NA NA NA NA29 NA NA NA NA NA30 NA NA NA NA NA31 NA NA NA NA NA32 100m NA NA NA NA33 200 NA NA NA NA34 NA NA NA NA NA35 NA NA NA NA NA36 NA NA NA NA NA37 NA NA NA NA NA38 191 NA NA NA NA39 NA NA NA NA NA40 NA NA NA NA NA41 NA NA NA NA NA42 NA NA NA NA NA43 NA NA NA NA NA44 NA NA NA NA NA45 NA NA NA NA NA46 NA NA NA NA NA47 628 NA NA NA NA48 NA NA NA NA NA49 NA NA NA NA NA50 220 NA NA NA NA

A.3 Valores do ground truth

anúncio área banheiro dormitório quarto vaga1 NA NA NA 2 NA2 NA NA NA 2 NA

Page 34: Extração de Dados em Anúncios de Imóveis

A.3 VALORES DO GROUND TRUTH 26

Tabela A.3 continuada da página anterioranúncio área banheiro dormitório quarto vaga3 NA NA NA 2 NA4 NA NA NA NA NA5 NA NA NA NA NA6 NA NA NA 2 17 NA NA NA 3 28 115 2 NA 3 19 NA NA NA 4 310 NA NA NA 4 311 NA NA NA 4 212 NA NA NA 2 NA13 NA NA 2 NA NA14 72 NA NA 3 115 NA NA NA NA NA16 NA NA 1 NA NA17 NA 5 NA 3 418 NA 2 3 NA 119 260 NA 3 NA NA20 64m2/64 2 2 2 121 145m²/145 3 3 NA NA22 158m_ NA NA 3 323 NA NA NA 3 124 NA NA NA 2 125 NA 1 NA 1/3 NA26 180m² NA 2 NA 627 NA NA NA NA NA28 NA NA NA NA NA29 NA NA 2 NA NA30 NA NA NA NA NA31 NA NA 3 NA NA32 NA NA 1 NA 133 200 NA NA 2 234 NA NA NA NA NA35 NA NA 2 NA 236 60,34m²/60.0 NA 2 2 137 NA NA NA 2 NA38 191 NA NA 3 339 NA NA NA NA 240 NA NA NA 2 NA41 NA NA NA NA NA42 NA NA NA 3 2

Page 35: Extração de Dados em Anúncios de Imóveis

A.3 VALORES DO GROUND TRUTH 27

Tabela A.3 continuada da página anterioranúncio área banheiro dormitório quarto vaga43 NA NA NA 3 NA44 NA NA NA NA NA45 NA NA NA NA NA46 NA NA NA NA NA47 NA 1 1 1 NA48 NA 1 NA 3 NA49 95 NA NA 3 150 220 1 NA 3/1 NA

Page 36: Extração de Dados em Anúncios de Imóveis

Referências Bibliográficas

[1] Luiza Veronesi. 60% do processo de compra de imóvel é feito na internet, diz executivo dogoogle. https://www.infomoney.com.br/imoveis/noticia/2978515/processo-compra-imovel-feito-internet-diz-executivo-google.Accessed: 2019-06-19. 1

[2] Johny M. da Silva. Extracting structured information from text to augment knowledgebases. Master’s thesis, Universidade Federal de Pernambuco, 2019. 1, 2.2, 3.3

[3] Dustin Lange, Christoph Böhm, and Felix Naumann. Extracting structured informationfrom wikipedia articles to populate infoboxes. In Proceedings of the 19th ACM Internati-onal Conference on Information and Knowledge Management, 2010. 1, 3.2, 5.1

[4] Fei Wu and Daniel S. Weld. Autonomously semantifying wikipedia. In Proceedings of the16th ACM International Conference on Information and Knowledge Management, 2007.1, 3.1, 3.2, 4.4.2

[5] Sunita Sarawagi. Information extraction. Foundations and Trends® in Databases, 2008.2.1

[6] Mark Craven and Johan Kumlien. Constructing biological knowledge bases by extractinginformation from text sources. In Proceedings of the 7th International Conference onIntelligent Systems for Molecular Biology, 1999. 2.2

[7] Mike Mintz, Steven Bills, Rion Snow, and Dan Jurafsky. Distant supervision for relationextraction without labeled data. In Proceedings of the Joint Conference of the 47th AnnualMeeting of the ACL and the 4th International Joint Conference on Natural LanguageProcessing of the AFNLP, 2009. 2.2

[8] Alex Ratner, Stephen Bach, Paroma Varma, and Chris Ré. Weak supervision: The newprogramming paradigm for machine learning. https://hazyresearch.github.io/snorkel/blog/ws_blog_post.html. Accessed: 2019-06-17. 2.2

[9] Bonan Min, Ralph Grishman, Li Wan, Chang Wang, and David Gondek. Distant super-vision for relation extraction with an incomplete knowledge base. In Proceedings of the2013 Conference of the North American Chapter of the Association for ComputationalLinguistics: Human Language Technologies, 2013. 2.2

28

Page 37: Extração de Dados em Anúncios de Imóveis

REFERÊNCIAS BIBLIOGRÁFICAS 29

[10] Thorsten Joachims. Transductive inference for text classification using support vectormachines. In Proceedings of the 16th International Conference on Machine Learning,1999. 2.3

[11] Edson Takashi Matsubara, Claudia Aparecida Martins, and Maria Carolina Monard. Pre-text: Uma ferramenta para pré-processamento de textos utilizando a abordagem bag-of-words. Technical Report 209, 2003. 2.3

[12] Alec Go, Richa Bhayani, and Lei Huang. Twitter sentiment classification using distantsupervision. CS224N Project Report, Stanford, 2009. 2.3

[13] William W. Cohen, Pradeep Ravikumar, and Stephen E. Fienberg. A comparison of stringdistance metrics for name-matching tasks. In Proceedings of the 2003 International Con-ference on Information Integration on the Web, 2003. 4.4.2

Page 38: Extração de Dados em Anúncios de Imóveis

Este volume foi tipografado em LATEX na classe UFPEThesis (www.cin.ufpe.br/~paguso/ufpethesis).Para detalhes sobre este documento, clique aqui.