Oracle Text 11G: Uma Introdução Cláudio de Souza Baptista Agosto/2007.
Transcript of Oracle Text 11G: Uma Introdução Cláudio de Souza Baptista Agosto/2007.
Oracle Text 11G: Uma Oracle Text 11G: Uma IntroduçãoIntrodução
Cláudio de Souza BaptistaCláudio de Souza Baptista
Agosto/2007Agosto/2007
RoteiroRoteiro
Introdução: Características básicasIntrodução: Características básicas ArquiteturaArquitetura ÍndicesÍndices OperadoresOperadores Serviços de documentosServiços de documentos ClassificaçãoClassificação Exemplo de uma aplicaçãoExemplo de uma aplicação ConclusãoConclusão
Oracle Text - CaracterísticasOracle Text - Características
Integrado ao SGBD:Integrado ao SGBD: usa SQLusa SQL reusa os serviços providos pelo SGBDreusa os serviços providos pelo SGBD
Pode indexar documentos armazenados no SGBD, Pode indexar documentos armazenados no SGBD, file system ou Webfile system ou Web
Pode realizar análise linguística, faz busca por:Pode realizar análise linguística, faz busca por: keywords, keywords, contexto,contexto, operações booleanas, operações booleanas, temáticas,temáticas, casamento de padrões, casamento de padrões, HTML e XMLHTML e XML
Oracle Text - CaracterísticasOracle Text - Características
Usa vários formatos: Word, PDF, Usa vários formatos: Word, PDF, Excel, HTML, XML, etcExcel, HTML, XML, etc
MultilíngueMultilíngue
ArquiteturaArquitetura
Tipos de ÍndicesTipos de Índices
Há três tipos:Há três tipos: Standard index type (CONTEXT): usado para Standard index type (CONTEXT): usado para
coleção de documentos coesos. Operador: coleção de documentos coesos. Operador: CONTAINSCONTAINS
Catalog index type (CTXCAT): usado para Catalog index type (CTXCAT): usado para indexar pequenos trechos de texto em colunas. indexar pequenos trechos de texto em colunas. Operador: CATSEARCH Operador: CATSEARCH
Classification index type (CTXRULE): permite Classification index type (CTXRULE): permite criar uma aplicação de classificação de criar uma aplicação de classificação de documentos. Operador MATCHESdocumentos. Operador MATCHES
Tipos de ÍndicesTipos de Índices
ScoreScore
“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 OperatorsQuery Operators
ABOUT: aumenta o número de documentos ABOUT: aumenta o número de documentos relevantes à consulta usando temasrelevantes à consulta usando temas
ACCUMulate: procura por documentos que ACCUMulate: procura por documentos que contêm pelo menos um dos termos da contêm pelo menos um dos termos da consultaconsulta
AND, OR e NOTAND, OR e NOT Broader Term, Narrower Term, Preferred Broader Term, Narrower Term, Preferred
Term, Related Term, SYNonym, Top TermTerm, Related Term, SYNonym, Top Term EQUIvalenceEQUIvalence FuzzyFuzzy
Query OperatorsQuery Operators
HasPathHasPath InPathInPath MDATAMDATA MINUSMINUS NEARNEAR SOUNDEXSOUNDEX STEMSTEM WITHINWITHIN
Document servicesDocument services
HighlightingHighlighting MarkupMarkup SnnipetSnnipet Theme extractionTheme extraction GistGist
Exemplo SnnipetExemplo Snnipet
TemasTemas
Um tema é um snapshot que Um tema é um snapshot que descreve sobre o que o documento descreve sobre o que o documento trata.trata.
Ao invés de se buscar por palavras Ao invés de se buscar por palavras ou frases, pode-se buscar por um ou frases, pode-se buscar por um certo assunto, mesmo se este não certo assunto, mesmo se este não esteja explicitamente contido no esteja explicitamente contido no documento.documento.
GistGist
Gist significa idéia central ou Gist significa idéia central ou essênciaessência
gist é um sumário consistindo de gist é um sumário consistindo de parágrafos do documento que parágrafos do documento que melhor o representam.melhor o representam.
Uma espécie de resumo do texto. Uma espécie de resumo do texto.
Base de ConhecimentoBase de Conhecimento
É uma árvore com conceitos e categoriasÉ uma árvore com conceitos e categorias O Oracle vem com uma base em inglês e O Oracle vem com uma base em inglês e
francês com conceitos de: Ciência e francês com conceitos de: Ciência e Tecnologia, Business e economia, Tecnologia, Business e economia, geografia, governo e militarismo, geografia, governo e militarismo, ambiente social, idéias abstratas e ambiente social, idéias abstratas e conceitosconceitos
É implementado como um thesaurusÉ implementado como um thesaurus Pode-se aumentar a acurácia da extração Pode-se aumentar a acurácia da extração
de temas através da criação de um de temas através da criação de um thesaurus para CHESFthesaurus para CHESF
Alguns ExemplosAlguns Exemplos
Exemplo ACCUMulateExemplo ACCUMulate
Ex. SDATA (Section Data)Ex. SDATA (Section Data)
Procure por livros da Categoria Fiction que contém a palavra summer
Ex. WITHINEx. WITHIN
Ex. Múltiplos ScoresEx. Múltiplos Scores
SELECT title, body, SCORE(10), SCORE(20)
FROM newsWHERE CONTAINS (news.title, 'Oracle',
10) > 0 ORCONTAINS (news.body, 'java', 20) > 0ORDER BY SCORE(10), SCORE(20);
Ex. ABOUTEx. 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 ACCUMExemplo ACCUM
You can assign different weights to different terms. For example, in a query of the form soccer, Brazil*3
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
Brazil is the largest nation in South America but both documents will rank below
soccer is the national sport of Brazil
Ex. EquivalenceEx. 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. FuzzyEx. 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. MDATAEx. 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_docsWHERE 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. MinusEx. 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. NearEx. 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 (~)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. STEMEx. 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
ThesaurusThesaurus Example 2 (Hierarchical) animal NT1 mammal
NT2 cat NT3 domestic cat
NT4 Persian cat NT4 Siamese cat
NT3 wild cat NT4 tiger
NT5 Bengal tiger NT2 dog
NT3 domestic dog NT4 German Shepard
NT3 wild dog NT4 Dingo
cat SYN feline Dog SYN canine
ClassificaçãoClassificação
Classificação pode ser feita de 3 formas:Classificação pode ser feita de 3 formas: Rule-based: escreve-se as regras para formar Rule-based: escreve-se as regras para formar
as categorias dos documentosas categorias dos documentos Supervised: as regras são escritas Supervised: as regras são escritas
automaticamente, mas requer um conjunto automaticamente, mas requer um conjunto treinamento previamente classificado (usa treinamento previamente classificado (usa Decision tree ou SVM (Support Vector Machine)Decision tree ou SVM (Support Vector Machine)
Clustering: é não supervisionada, as regras e Clustering: é não supervisionada, as regras e classificação são feitas automaticamente.classificação são feitas automaticamente.
Ex. Rule-basedEx. Rule-based
Ex. Rule-basedEx. Rule-based
Exemplo de AplicaçãoExemplo de Aplicação
Exemplo YAPAExemplo YAPA
http://www.oracle.com/technology/softhttp://www.oracle.com/technology/software/products/text/1.htmlware/products/text/1.html