Oracle Text 11G: Uma
Introdução
Cláudio de Souza Baptista
Agosto/2007
Roteiro








Introdução: Características básicas
Arquitetura
Índices
Operadores
Serviços de documentos
Classificação
Exemplo de uma aplicação
Conclusão
Oracle Text - Características

Integrado ao SGBD:




usa SQL
reusa os serviços providos pelo SGBD
Pode indexar documentos armazenados no SGBD, file
system ou Web
Pode realizar análise linguística, faz busca por:






keywords,
contexto,
operações booleanas,
temáticas,
casamento de padrões,
HTML e XML
Oracle Text - Características


Usa vários formatos: Word, PDF, Excel,
HTML, XML, etc
Multilíngue
Arquitetura
Tipos de Índices

Há três tipos:



Standard index type (CONTEXT): usado para coleção
de documentos coesos. Operador: CONTAINS
Catalog index type (CTXCAT): usado para indexar
pequenos trechos de texto em colunas. Operador:
CATSEARCH
Classification index type (CTXRULE): permite criar
uma aplicação de classificação de documentos.
Operador MATCHES
Tipos de Índices
Score


“To calculate a relevance score for a returned
document in a word query, Oracle uses an inverse
frequency algorithm based on Salton's formula.
Inverse frequency scoring assumes that
frequently occurring terms in a document set are
noise terms, and so these terms are scored lower.
For a document to score high, the query term
must occur frequently in the document but
infrequently in the document set as a whole.”
Oracle Text Reference, Release 9.0.1
Query Operators






ABOUT: aumenta o número de documentos
relevantes à consulta usando temas
ACCUMulate: procura por documentos que
contêm pelo menos um dos termos da consulta
AND, OR e NOT
Broader Term, Narrower Term, Preferred Term,
Related Term, SYNonym, Top Term
EQUIvalence
Fuzzy
Query Operators








HasPath
InPath
MDATA
MINUS
NEAR
SOUNDEX
STEM
WITHIN
Document services





Highlighting
Markup
Snnipet
Theme extraction
Gist
Exemplo Snnipet
Temas


Um tema é um snapshot que descreve
sobre o que o documento trata.
Ao invés de se buscar por palavras ou
frases, pode-se buscar por um certo
assunto, mesmo se este não esteja
explicitamente contido no documento.
Gist



Gist significa idéia central ou essência
gist é um sumário consistindo de
parágrafos do documento que melhor o
representam.
Uma espécie de resumo do texto.
Base de Conhecimento




É uma árvore com conceitos e categorias
O Oracle vem com uma base em inglês e francês
com conceitos de: Ciência e Tecnologia,
Business e economia, geografia, governo e
militarismo, ambiente social, idéias abstratas e
conceitos
É implementado como um thesaurus
Pode-se aumentar a acurácia da extração de
temas através da criação de um thesaurus para
CHESF
Alguns Exemplos
Exemplo ACCUMulate
Ex. SDATA (Section Data)
Procure por livros da Categoria Fiction
que contém a palavra summer
Ex. WITHIN
Ex. Múltiplos Scores
SELECT title, body, SCORE(10), SCORE(20)
FROM news
WHERE CONTAINS (news.title, 'Oracle', 10)
> 0 OR
CONTAINS (news.body, 'java', 20) > 0
ORDER BY SCORE(10), SCORE(20);
Ex. ABOUT

'about(soccer rules in international
competition)‘



returns all documents that have themes of
soccer, rules, or international competition.
In terms of scoring, documents which have all
three themes will generally score higher
than documents that have only one or two of
the themes.
Exemplo ACCUM

You can assign different weights to different terms. For
example, in a query of the form


the term Brazil is weighted three times as heavily as
soccer. Therefore, the document


people play soccer because soccer is challenging and fun
will score lower than


soccer, Brazil*3
Brazil is the largest nation in South America
but both documents will rank below

soccer is the national sport of Brazil
Ex. Equivalence


The following example returns all
documents that contain either the phrase
alsatians are big dogs or labradors are big
dogs:
'labradors=alsatians are big dogs'
Ex. Fuzzy
Consider the CONTAINS query:
...CONTAINS(TEXT, 'fuzzy(government, 70,
6, weight)', 1) > 0;
 This query expands to the first six fuzzy
variations of government in the index that
have a similarity score over 70.

Ex. MDATA
Suppose you want to query for books written by the
writer Nigella Lawson that contain the word summer.
Assuming that an MDATA section called AUTHOR has
been declared,you can query as follows:
SELECT id FROM idx_docs
WHERE CONTAINS(text, 'summer AND MDATA(author,
Nigella Lawson)')>0
 This query will only be successful if an AUTHOR tag has
the exact value Nigella Lawson (after simplified
tokenization). Nigella or Ms. Nigella Lawson will not
work.

Ex. Minus
Suppose a query on the term cars always
returned high scoring documents about Ford
cars. You can lower the scoring of the Ford
documents by using the expression:
'cars - Ford'
In essence, this expression returns documents that
contain the term cars and possibly Ford.
However, the score for a returned document is
the score of cars minus the score of Ford.

Ex. Near

to find all documents that contain the
terms tiger, lion, and cheetah where the
terms lion and tiger are within 10 words of
each other, enter the following query:
‘near((lion, tiger), 10) AND cheetah'
Not (~)

to obtain the documents that contain the
term transportation but not automobiles or
trains, use the following expression:
'transportation not (automobiles or trains)'
Ex. STEM
Input
Expands To
$scream
scream screaming screamed
$distinguish distinguish distinguished distinguishes
$guitars
guitars guitar
$commit
commit committed
$cat
cat cats
$sing
sang sung sing

Thesaurus



Example 2 (Hierarchical)
animal
NT1 mammal

NT2 cat

NT3 domestic cat



NT3 wild cat


NT3 domestic dog




NT4 German Shepard
NT3 wild dog


NT4 tiger
 NT5 Bengal tiger
NT2 dog


NT4 Persian cat
NT4 Siamese cat
NT4 Dingo
cat
SYN feline
Dog
SYN canine
Classificação

Classificação pode ser feita de 3 formas:



Rule-based: escreve-se as regras para formar as
categorias dos documentos
Supervised: as regras são escritas automaticamente,
mas requer um conjunto treinamento previamente
classificado (usa Decision tree ou SVM (Support
Vector Machine)
Clustering: é não supervisionada, as regras e
classificação são feitas automaticamente.
Ex. Rule-based
Ex. Rule-based
Exemplo de Aplicação

Exemplo YAPA
http://www.oracle.com/technology/software
/products/text/1.html
Download

Unidade 3 - BD Textuais