• Nenhum resultado encontrado

Definir regras de expressão global

No documento IBM OmniFind Enterprise Edition (páginas 99-103)

Oconjuntode regrasdefineasexpressõesglobaisquesãocomparadascomo textonodocumentoeasacçõesqueoanotadordeexpressõesglobaistem de executarseexistircorrespondênciade padrões.

Referênciasrelacionadas

“Descritordo anotador”napágina 96

OdescritorXMLdoanotadordeexpressõesglobais contéminformações descritivassobreoanotadordeexpressõesglobaisqueénecessáriopara executaroanotador.

“Registar”napágina 100

Todasasmensagensderegistodo anotadorde expressõesglobaissãoescritas noficheiroderegistodacolecçãoactual.

Definir regras de expressão global

Oconjuntoderegrasdefineasexpressões globaisquesãocomparadascomotexto nodocumentoe asacções queo anotadorde expressõesglobaistemde executarse existircorrespondênciade padrões.

Acercadestatarefa

Oficheirodo conjuntode regrasXMLtemde seguirasintaxederegrasdelineada noseguinteexemplo.Esteéum ficheirodoconjuntoderegrasparaoanotadorde expressões globaisdeamostra quereconhecenúmerosde telefone,URLse

endereços decorreioelectrónico.

Oelementodenívelsuperioréum elemento<ruleSet> queconsisteemumou mais elementos<rule>.Cadaelemento<rule>porsuavezdefineumaexpressão globalde JavaconsistindodeumatributoregEx bemcomo dosatributos

matchStrategy ematchType.Aacção édefinidanoelemento<createAnnotation>

queespecificaoIDdeanotaçãoeo tipodeanotação.

<?xml version="1.0" encoding="UTF-8"?>

<ruleSet xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

xsi:noNamespaceSchemaLocation="ruleSet.xsd">

<!-- Phone Number -->

<!-- Esta regra corresponde a diferentes formas de escrever números de telefone, por exemplo, 01234-12345, 01234 / 122-32, (001234)12345,

+49 (0) 123412345, (123) 123 1234, 1-800-IBM-4YOU -->

matchStrategy="matchAll" matchType="uima.tcas.DocumentAnnotation">

<createAnnotation id="phonenumber" type="com.ibm.es.uima.PhoneNumber">

<begin group="0"/>

<end group="0"/>

</createAnnotation>

</rule>

<!-- potential Phone Number -->

<!-- Esta regra corresponde a números que se assemelham a números de telefone mas podem também ser outra coisa. Por exemplo, 0123 1234 123, +123456789, 123 123 1234 -->

<rule regEx="(?x)(\s|\b)(

matchStrategy="matchAll" matchType="uima.tcas.DocumentAnnotation">

<createAnnotation id="potential_phonenumber"

type="com.ibm.es.uima.PotentialPhoneNumber">

<begin group="0"/>

<end group="0"/>

</createAnnotation>

</rule>

<!-- URL Annotation -->

<!-- Esta regra corresponde a URLs, por exemplo, http://www.ibm.com -->

<rule regEx="(?x)(\s|\b)(

http://[\w\-]+([\.][\w\-]+)+([/][\w\~\(\)\-\?=%\u0026\#]*)*

|www.[\w\-]+([\.][\w\-]+)+([/][\w\~\(\)\-\?=%\u0026\#]*)*

)(\s|\b)"

matchStrategy="matchAll" matchType="uima.tcas.DocumentAnnotation">

<createAnnotation id="url" type="com.ibm.es.uima.URL">

<begin group="0"/>

<end group="0"/>

</createAnnotation>

</rule>

<!-- Email Annotation -->

<!-- Esta regra corresponde a endereços de correio electrónico, por exemplo, nome@domínio.com -->

<rule regEx="(?x)(\s|\b)(

[a-zA-Z0-9][\w\.-]*[a-zA-Z0-9]@[a-zA-Z0-9]([\.-]?\w)*\.[a-zA-Z]

{2,3})(\s|\b)"

matchStrategy="matchAll" matchType="uima.tcas.DocumentAnnotation">

<createAnnotation id="email" type="com.ibm.es.uima.Email">

<begin group="0"/>

<end group="0"/>

</createAnnotation>

</rule>

</ruleSet>

Procedimento

Paracriar oconjuntoderegrasXMLparaoanotadorde expressõesglobaisque defineasexpressõesglobaispersonalizadas:

1. CrieumficheiroXML.Paraevitar errosdesintaxeXML,utilizeum editorde XMLouferramentadecriaçãodeXMLàsuaescolha.OesquemaXSD parao ficheirodoconjuntode regrasXMLédenominado ruleSet.xsd,quepode localizarna instalaçãodo EnterpriseSearchnodirectórioES_INSTALL_ROOT/

packages/uima/regex/.

2. Inclua osmapeamentosnumelemento <ruleSetxmlns=″http://www.w3.org/

2001/XMLSchema-instance″ xsi:noNamespaceSchemaLocation=″ruleSet.xsd″>. O espaçodenomeséespecificadonoatributoxmlns etemdeestarexactamente conformemostrado.

3. Adicioneum elemento<rule>quecontenhaumatributoregEx comopadrão deexpressãoglobal,umatributomatchStrategy eumatributomatchType. Oanotadorsuportatotalmentea sintaxedeexpressãoglobaldoJava 1.4.Para umaintroduçãoàsexpressõesglobaiseparavisualizara sintaxecompleta, consultea documentaçãodeJavaem http://java.sun.com/j2se/1.4.2/docs/api/

java/util/regex/Pattern.html.

matchStrategyespecifica comoprocurar,porexemplo,setodasas correspondênciastêmdeser encontradasnodocumentoousea

correspondênciade textotem deserexacta. Estãodisponíveistrêsdiferentes estratégiasde correspondência:

v matchFirstpáranaprimeira sequênciadetextoquecorresponderaopadrão global

v matchAlllocalizatodasassequênciasnumdocumentoquecorrespondeao padrãoglobal

v matchComplete apenasassequênciasdetextoquesãoumacorrespondência exacta.Por exemplo,setivermosumpadrão“foo”,apenas otermo″foo″

seria correspondido,″barrafoo″ nãoresultarianumacorrespondência.

matchTypedeterminao tipodeanotaçãoqueécomparadoà regra.Destemodo, pode restringira expressãoglobalacorresponder,porexemplo,noâmbitode umaanotaçãodotestemunhoexistente.Assim,evitaacorrespondência de demasiadoconteúdonoâmbito deumaregra.Ostipospossíveissãoostipos deanotaçãode entradapermitidosparaoanotador(definidosnodescritordo anotador),taiscomouima.tt.DocumentAnnotation,

uima.tt.ParagraphAnnotation etiposdefinidos peloutilizador,taiscomo foo.bar.MyAnnotation.Por vezes,otipode saídade umaregraéutilizado comotipo deentradadeumaregrasubsequente. matchTypepermite-lhe restringiroâmbitodaprocuradedeterminadasregras.

4. Adicioneum elemento<createAnnotation>quedefinaa acçãoqueoanotador deexpressões globaisdeveráexecutarseforencontradaumacorrespondência.

CadaelementocreateAnnotationtem doisatributos:

v ididentificade formaexclusivaaanotaçãoe éutilizadoparafazerreferência à anotação

v typeespecificao tipodeanotaçãoqueécriada

5. Adicioneosseguinteselementosde componentequedefinemaposiçãode correspondênciaparaoelemento<createAnnotation>:

v Obrigatório: <begin>especificaondea correspondênciacomeça.Este elementotemdoisatributos:

Obrigatório:group identificaogrupode capturaJava.Podeseratribuído umvalor entre0 (correspondênciadesequênciade textocompleta)e 9 (váriosgruposde captura)

Opcional:locationindicaumaposição dentrodo grupode

correspondência(respeitanteaoposicionamentodosparênteses),quer sejamstart(abrirparêntesecurvo)ouend (fecharparêntesecurvo).

v Obrigatório: <end>especificaondea correspondênciatermina. Esteelemento tem doisatributos:

Obrigatório:group identificaogrupode captura.Podeser atribuídoum valorentre0(correspondência desequênciade textocompleta)e9 (gruposdecorrespondênciasubsequentesecadavezmaispequenos) – Opcional:locationindicaumaposição dentrodo grupode

correspondência(respeitanteaoposicionamentodosparênteses),quer sejamstart(abrirparêntesecurvo)ouend (fecharparêntesecurvo).

v Opcional: <setFeature>cria umafuncionalidadeeatribui estaúltima à anotação.Esteelementotem doisatributos:

nameéonome dafuncionalidadeconformedefinidanadescriçãodo sistematipo

typeespecificaotipo devalordafuncionalidade,Cadeia (String),Número Inteiro(Integer),Float(Flutuante)eReferência(Reference).Otipotemde sero mesmoqueotipo deintervalo definidoparaa funcionalidadena descriçãodosistematipodo anotador.

Asfuncionalidadesdotipo Referencesãoutilizadasparacriaruma ligaçãoentreduasanotaçõesparamodelar umarelaçãosemântica.O conteúdodoelemento<setFeature>temdeestardefinidoparaoiddo elemento<createAnnotation>aoqualpretendeestabelecerligação.

Conceitosrelacionados

“Ficheirodoconjuntoderegras”na página90

Noanotadorde expressõesglobais,oficheirodoconjuntoderegrasXML defineasregras,naformadeexpressõesglobais,quesãoutilizadaspara analisarodocumentode texto.

No documento IBM OmniFind Enterprise Edition (páginas 99-103)