Sei sulla pagina 1di 7

Redalyc

Sistema de Informacin Cientfica


Red de Revistas Cientficas de Amrica Latina, el Caribe, Espaa y Portugal

Zapata, Carlos M.; Hernndez, Juan C. Analizador Sintctico de Lenguaje Natural con Reglas Editables para la Generacin de Primitivas UML Revista Avances en Sistemas e Informtica, vol. 4, nm. 1, junio, 2007, pp. 5-10 Universidad Nacional de Colombia Medelln, Colombia
Disponible en: http://redalyc.uaemex.mx/src/inicio/ArtPdfRed.jsp?iCve=133116856002

Revista Avances en Sistemas e Informtica ISSN (Versin impresa): 1657-7663 mprada@unalmed.edu.co;avances@unalmed.ed u.co Universidad Nacional de Colombia Colombia

Cmo citar?

Nmero completo

Ms informacin del artculo

Pgina de la revista

www.redalyc.org Proyecto acadmico sin fines de lucro, desarrollado bajo la iniciativa de acceso abierto

AnalizadorSintcticodeLenguajeNatural conReglasEditablesparalaGeneracinde PrimitivasUML NaturalLanguageSyntactic Analyzerwith EditableRulesforGenerating UML Primitives


CarlosM.Zapata,Ph.D.yJuanC.Hernndez,Ing. GrupodeIngenieradeSoftware,Escuelade Ingenieriade Sistemas,UniversidadNacionaldeColombia cmzapata@unalmed.edu.co,jcherna0@unalmed.edu.co
Recibidopararevisin26deMarzode2007,aceptado15deJuniode2007,versinfinal19dejuliode2007

Resumen En este ar tculo se pr esenta un analizador sintctico automtico de lenguaje natur al basado en constituyentes, con la capacidad de modificar las r eglas que utiliza par a r ealizar el r bol sintctico. El par ser utiliza el mtodo bottomup par a gener ar el r bol sintctico y una ver ificacin der echaizquier da, izquier dader echa, par a la for macin de los niveles del r bol. El par ser fue constr uido como el pr imer o de los mdulos de una aplicacin r ealizada par a la obtencin automtica de pr imitivas UML a par tir de lenguajenatur al,deahlanecesidaddeoptar por laedicinde las r eglas sintcticas par a la gil inclusin de nuevas for mas or acionalesyfacilitar elpr ocesamientodelosdatosentr egadosa losdemsmdulosdeanlisis. Palabras Clave Ambigedad, Diagr amasUML,LenguajeNatur al.
Anlisis Sintctico,

Abstract We pr opose, in this paper , a constituentbased automated syntactic analyzer fr om natur al language it has capabilities for gr ammatical r ules modification. The par ser uses bottomup method for syntactictr eegener ationandr ight left,leftr ightver ifyingfor leveltr eebuilding.Thepar ser itself wasbuiltasapar tofanapplicationfor automaticobtainingof UML pr imitives fr om natur al language due to this fact, we needsyntacticr uleseditionfor incor por ingnewphr asesandfor easingdatapr ocessingtoother analysismodules. Key words Ambiguity, Natur al Language, Syntactic Analysis,UMLDiagr ams.

I. INTRODUCCIN

L anlisis sintctico es el encargado de realizar la verificacin de las distintas reglas de formacin de un lenguaje, siendo los resultados de dichos anlisis representados grficamente a travs de una estructura jerrquica o rbol sintctico. Por medio de estos rboles se

definesiunaexpresinrealmenteperteneceaunlenguaje[1]. ElanlisissintcticoeselpuntodepartidadelProcesamiento del Lenguaje Natural (NLP por sus siglas en ingls) y sus aplicaciones en el contexto de este artculo, el anlisis sintcticoseempleacomoelpasoinicialparaladeteccinde primitivas conceptuales de UML. En una aplicacin tal, la calidad del resultado final (los diagramas de UML para este ejemplo),dependerdelaversatilidadquetengaelanalizador sintctico empleado para la generacin de las diferentes opcionesdeinterpretacinquesederivendeunafraseestees elinsumolasdecisionescorrectasdelanalistaentrminosde losdiagramasdefinitivos. La realizacin del anlisis sintctico es una actividad tediosa que implica la revisin de las reglas de produccin, las cuales definen un lenguaje, y la verificacin de la frase queseanalizaparaquecumplaconestasreglasdeformacin. Considerando la realizacin de este proceso por parte de un ser humano, se vera implicada lamalainterpretacindelos elementos sintcticos del lenguaje, generando problemas de subjetividadeincompletitudqueestaranreflejadosamedida queincrementalamasadeloselementosaanalizar. Existen varios mtodos para la realizacin automtica o semiautomticadelanlisissintctico.Porejemplo,en[2]se muestra una forma de realizar el anlisis pero an sin ser totalmente automtico, dependiendo del juicio del usuario para tomar la mejor opcin en otros trabajos se realiza un anlisis automtico, pero su enfoque slo va hacia las gramticas asociativas por la izquierda, dejando de lado los demsmtodosdeasociacin[3]. En este artculo se presenta una propuesta para la realizacin automtica del anlisis sintctico de lenguaje natural, con la posibilidad de modificar las reglas de

RevistaAvancesenSistemaseInformtica,Vol.4No.1Juniode2007,Medelln,ISSN16577663

RevistaAvancesenSistemaseInformtica,Vol.4No.1,Juniode2007 dequecadaunodesusnodosrepresentaunrolsintctico.El nodo raz del rbol simboliza la unidad de expresin del lenguaje, que para el caso del lenguaje natural equivale a la oracin de igual manera, las hojas del rbol representan las ocurrencias textuales de las palabras, y los nodos intermedios, los diferentes roles sintcticos presentes para cadapalabra,juntoconlosquesepuedengenerarapartirde las reglas de produccin definidas para el lenguaje [4]. La formacomoseconectanlosnodosdelrbol,estdadaporun conjunto de reglas que definen qu secuencia dehijos puede formarunpadreenunmomentodeterminado.Elobjetivode la realizacin del rbol sintctico es, a partir de unconjunto de palabras, concluir si dicho conjunto est bien formado y equivale aunaestructuraqueesreconocidaparaellenguaje, el lenguaje natural en este caso. Dentro de la generacin de losdiagramas,elanalizadorsintcticoejecutaelprimerpaso delanlisisalcumplirelpapeldeverificarsiloqueelusuario ha ingresado, es una estructura acorde con el lenguaje naturalademsdefinelasdiferentespartesqueconformanel rbol, para su posterior anlisis por las dems aplicaciones queaslorequieran.

produccin utilizadas en el proceso. Este analizador es el punto de partida de un proyecto que busca la obtencin 1 automticadediagramasUMLapartirdelenguajenatural . Este artculo est organizado as: en la Seccin 2 se describen algunos conceptos preliminares utilizados en el proceso del anlisis en la Seccin 3sepresentandemanera crtica algunos trabajos relacionados en la Seccin 4 se detalla la propuestadeanlisissintcticodelenguajenatural con reglas editables en la Seccin 5 se presentauncasode estudioyenlasSecciones6y7sepresentanlasconclusiones ylostrabajosfuturosrespectivamente. II. ANLISISSINTCTICODEUNTEXTO La sintaxis es el estudio de los principios y de los procesos por los cuales las oraciones son construidas en idiomas particulares [4]. El anlisis sintctico de un texto es el proceso mediante el cual se pretende lograrlaformacindel rbol sintctico, aplicando las reglas de produccin de un lenguaje.

A. Gramticasdecontextolibre
Una gramtica de contexto libre se puede entender como sigue: G ={T,N,P,S} R E R N E {R T} Donde G representa la gramtica del lenguaje, T los smbolos terminales, N los smbolos no terminales, P las reglasdeproduccinySelsmboloobjetivodellenguaje. En los lenguajes que implementan estas gramticas se definen dos conjuntos finitos disjuntos el primer conjunto estformadoporlossmbolosterminalesT,equivalentesalas palabrasyelsegundoconjuntoestformadoporlossmbolos no terminales N, equivalentes a los roles sintcticos. Este conjunto incluye una cantidad finita de reglas deproduccin P, correspondientes a las reglas gramaticales, y un smbolo objetivoS,queparaellenguajenaturaleslaoracin. Siendo R el smbolo no terminal que crea la regla yElos smbolos terminales o no terminales que la regla usa como argumentosparadarpasoalsmboloR.Elsistemautilizalos roles sintcticos asociados a cada palabra del lenguaje, adems de las reglas sintcticas de los roles para la adquisicindelrbolsintctico.Esteprocesorequiereconocer previamente qu rol o roles puede estar jugando un smbolo del lenguaje, es decir cules son las relacionesdirectasentre losconjuntosdepalabrasylosrolessintcticos.

C. Ambigedad
La ambigedad en el contexto lingstico es el fenmeno queocurrecuandosepuedeobtenermsdeunainterpretacin a partir de una misma expresin dada [5]. Este fenmeno puedesergeneradoporlaambigedadlxica(unapalabraen unlenguajedeterminadopuedetenermsdeunrolsintctico asociado) o por la ambigedad estructural, (se puede representar una misma expresin con dos o ms rboles sintcticos). Existen otros tipos de ambigedad como la morfolgica y la semnticaqueproducenelmismoefectoen este tipo de aplicaciones, pero se salen del contexto de este artculo. Laambigedadesunodelosmsgrandesproblemasenel desarrollo de las aplicaciones para el procesamiento del lenguajenatural,dadalanaturalezainherentementeambigua deestetipodelenguajes[5].Esimportantequeunanalizador sintctico genere todos los posibles rboles sintcticos que sean permitidos por las reglas, con el fin de posibilitar la completitud necesaria que se requiere en los procesos subsecuentes, ya sea para continuar la representacin de las frasesenotrasfasesdelprocesodeanlisisoparalarealizacin de aplicaciones basadas en procesamiento del lenguaje natural como es el caso de la generacin automtica de diagramas de UML. En este ltimo caso, los dems mdulos de la aplicacin reciben todaestainformacineinterpretanestosresultadospara sus correspondientes anlisis y la generacin de los diagramas UML teniendo en cuenta que existemsdeunarepresentacin para cada oracin, estos componentes pueden formar varias versiones de lo que sera un elemento del mundo, segn se hayaescritoinicialmenteeneltextoingresado.

B. rbolSintctico
El rbol sintctico esungrafojerrquicoconlapropiedad
1 Este artculo se realiz en el marco de los siguientes proyectos de investigacin: Construccin automatica de esquemas conceptuales a partir de lenguaje natural, financiado por la DIME y Definicin de un esquema pre conceptual para la obtencin automtica de esquemas conceptuales de UML, financiadoporDINAINyadministradoporlaDIME

Analizador Sintctico de Lenguaje Natural con Reglas Editables Zapata y Hernndez III. TRABAJOSRELACIONADOS Los analizadores sintcticos de lenguaje natural buscan formar el rbol sintctico de una oracin, comprobando las reglas de formacin del lenguaje. Para ello, existen mtodos enlosqueserealizalacomparacindelasreglasperoconla intervencindelusuarioalahoradedefinircmoseaplican las mismas [2] estoconstituyeunproblemacuandosedesea que la aplicacin que realiza el anlisis sintctico alimente otras aplicaciones automticamente, como es el caso del analizadorsintcticoqueseproponeenesteartculo. Enotrosmtodos,seimplementanlasreglasgramaticalesy serealizaelprocesodeanlisissintctico,peroslohaciendo un recorrido de izquierda a derecha [3] en otras palabras, cuandosepresentaunaregladeproduccinsecomparacada vez con el elemento ubicado msalaizquierdayseprocede conestemismoprincipiohastaqueseterminedeconstruirel rbol. Esto acarrea la desventaja de que las reglas siempre deberan estar definidas con asociacin por la izquierda, lo que restringe el proceso de edicin de las reglas y desecha muchos rboles sintcticos que pueden no cumplir con esta caracterstica. Otras propuestas trabajan con analizadores sintcticos con una estrategia topdown en la que el rbolseformadesdela raz, intentando predecir los hijos que en un momento determinadodebaasumirunnodo.Estemtodo,sinembargo, exige un conjunto de reglas menos ambiguo que en otras estrategias [6] esta rigidez es tambin unlimitanteparaun analizadorconreglaseditables. Tantoen[3]comoen[6]laformacindelrbolsintctico depende delaformadeconstruccindelasreglasynotanto de su aplicacin, por lo cual sedesechandiferentesopciones derepresentacinparaunadeterminadaoracin.Adems,las aplicaciones que se generaron poseen un conjunto finito de reglas, que no puede ser modificado por los usuarios de la aplicacin, limitando de esta forma el crecimiento futuro de lasmismas. IV. UNAPROPUESTAPARAELANLISIS SINTCTICODELLENGUAJENATURALCONREGLAS EDITABLES Elanalizadorsintcticoconreglaseditablesquesepropone enesteartculocumplecondosfuncionesprincipales: 1) Realiza el anlisis sintctico dellenguajenaturaldeuna oracin,permitiendoincluirnuevasreglasdeformacin. 2) Permitemanipularreglassintcticasambiguasconelfin de representar los posibles casos de ambigedad, y con ello soportar la gramtica ambigua del lenguaje. Debido a que los mdulos podran crecer en cantidad y complejidad, se defini un analizador sintctico lo suficientemente dinmico para poder suplir la demanda dedatosquepuedenexigirlosdemsmdulos.

generar el rbol sintctico en la medida en la que se equiparen las reglas definidas y los roles sintcticos obtenidos para cada palabra. Dentro de la aplicacin se decidi implementar este mtodo, para evitar la rigidez que ofrece su contraparte, el mtodo topdown, que para su eficiente desarrollo requiere menos ambigedad por parte de las reglas [6]. El mtodo utiliza un recorrido derecha izquierda e izquierdaderecha segn las reglas gramaticales quepuedanseraplicadasenunmomentodado,paraevitarlos problemasesbozadosenlaasociacinaizquierda[3]. Losrolessintcticosdecadapalabrasonobtenidosapartir de un lexicn que posee dichos roles junto con los roles semnticosadems,seconstituyeenunpuntodepartidapara la generacin de diagramas UML. El lexicn puede ser enriquecido con las distintas ocurrencias que se puedan presentarenunlenguaje,teniendoencuentaquerequiereno sloinformacinsintcticasinotambinsemntica. Las aplicaciones que intentan analizar la estructura sintctica de un lenguaje se enfrentan al fenmeno de la ambigedad, que se puede dar debido a fenmenos como: redundancia en la definicin de las reglas gramaticales y/o variedad de roles sintcticos quepuedatenerunapalabrase pueden generar as varias representaciones sintcticas para una misma oracin. El analizador muestra los distintos rboles sintcticos que puedan ser generados como consecuenciadelaambigedadpresente. Esteprocesotieneasufavorlasencillezdelalgoritmopara lageneracindelrbolsintctico,puestoqueslonecesitala secuenciaderolessintcticospermitidosporlasreglasenun lenguaje. Posteriormente, se le permite al usuariodefinirsus propias reglas, modificndolas a su conveniencia, sin restricciones por la ambigedad que genere el conjunto de reglas,ytambinlepermitemodificarlaspropiedadesdelas palabras que componen el lenguaje, sintenerquecambiarel cdigo en el que se escribi el analizador sintctico para definirunlenguajeoidiomatotalmentenuevo.

B. ElProceso
La manera en que opera el analizador es la siguiente: despus de haber ingresado el texto a analizar, se procede a separarloenoracionesycadaunadestas,asuvez,sesepara en palabras. A cada palabra se le asignan consecutivamente los roles sintcticos que para ella se hayan encontrado en el lexicn.Luego,paracadaoracinserealizalaproductoriade roles, que consiste en tomartodoslosrolessintcticosdelas palabras de la oracin y formar todas las posibles combinaciones de roles sintcticos para ella a esta combinacin de roles sintcticos se le denomina nivel 1 del rbol. En este punto del anlisis es donde se comienza a generar la ambigedad de la que se hablaba anteriormente. Debido a que una palabra puede tener asociados varios roles sintcticos, como consecuencia se generan tantos niveles 1 pororacin,comoloindicalasiguientefrmula:

A. ElAnalizadorsintctico
El analizador sintctico utiliza el mtodo bottomup para

RevistaAvancesenSistemaseInformtica,Vol.4No.1,Juniode2007

V = Ni
Siendo V el nmero de versiones posibles de rboles sintcticosyNi elnmeroderolessintcticosdelapalabrai. Luegodeobtenerlasdistintasversionesdelprimernivelde una oracin, se realiza la aplicacin de las reglas de formacinpornivel. Dentro de la aplicacin una regla est definida de la siguienteforma:

Ri Ei1 + Ei2 + ...Ein


Donde Ri es el resultado de la regla i, que es un rol sintctico,yEi1,Ei2 yEin sonlosargumentosdelareglai,que tambin son roles sintcticos. Junto con todo esto cada regla poseeotrostresatributos: 1) Final: indica si el rol sintctico producido por dicha reglapuedeserlarazdelrbolono. 2) Completa: seala si la regla puede ser la ltima que se apliqueenunnivelestosehaceconelfindefacilitarla recursindelasreglasfinales. Teniendoestoencuenta,elanalizadorsintcticobuscaqu secuencias de roles sintcticos cumplen la misma secuencia de alguna regla que ya se haya definidosiseencuentrauna secuencia de roles que coincida, se posiciona en el siguiente nivelelresultadodelaregla,Ri,descartandolasecuenciade caracteresdelnivelanterior.Esteprocesoserepitehastaque ya no haya ms elementos en el nivel actual, que es justo cuandosepasaalsiguientenivel.Cadavezqueseaplicanlas reglas a un nivel, se verifica si ha cambiado la secuencia de roles sintcticos si no ha cambiado dicha secuencia, es porqueparalalistaderolesdeesenivelnohayningunaregla que la pueda convertir a un nivel superior y por ende se desecha la versin de la oracin, en caso de que el nivel cambie,secomparacontodoslosnivelesanteriores,buscando comportamientos cclicos para tambin desechar esa versin delaoracin,ysevuelveaempezarconlaversinsiguiente. Paralaconfirmacindelasecuenciaderoles,labsquedade estas secuencias se hace de izquierda a derecha, tomando el primer rol, viendo luego qu regla tiene como primer argumento este rol si lo tiene, se mira si el segundo argumentodelareglacoincideconelsegundoroldelnively assucesivamente,formandounasecuencialuegoseaplicael mismo principio, pero de derecha a izquierda, buscando si alguna regla posee como ltimo argumento el ltimo elementodelnivelactual,repitiendoelmismoprocedimiento. Si las versiones de un nivel producen resultados diferentes entre las secuencias de derecha a izquierda y de izquierda a derecha, se crea una nueva versin del rbol, duplicando todoslosnodosdenivelesinferioressino,setomacualquiera de las dos secuencias. La verificacin hacia delante y hacia atrsserealizaconelnimodemostrarsilasreglasquehan sido definidas son ambiguas, dado que en cualquiera de las dos direcciones que se realice el anlisis sintctico, el

resultado debe ser el mismo, puesto que la ambigedad dependedellenguajeynodelasreglascomoesenelcasode [3]y[6]. Este procedimiento se realiza una y otra vez hasta que en unniveldeterminadosellegueaqueexistaslounnodoorol sintcticoluego,sepreguntasiesteelementopuedeocuparel puesto de raz del rbol. Esta informacin es suministrada cuandosedefinelaregla,indicandoquelareglaesfinalsiel rol encontrado puede ocupar el puesto de raz, se acepta el rbol sintctico de lo contrario, se rechaza la versin de la oracin.Seacualseaelresultadosecontinaconlasiguiente versindelrbolsinohaymsversiones,secontinuaconla siguienteoracin,comenzandodenuevoelproceso.Sinohay ms oraciones, el proceso termina.Enlasfiguras1,2y3se pueden apreciar algunas vistas del analizador sintctico, que incluyeellexicnempleadoparaelproceso.

Figur a 1.Ingreso deltexto:cuandoseingresaeltextodebedefinirseunproyecto detrabajo.

Figur a 2. Grficadelrbolsintctico:Silaoracinposeemsdeunaposible representacinsintctica,lainterfazpermitenavegarporcadaunadelas versiones analizadasparacadaoracin.

V. CASODEESTUDIO En esta Seccin se muestra un ejemplo paso a paso del procedimientoutilizadoparalaobtencindelrbolsintctico. Elprimerpasodelprocesoestconstituidoporlaadquisicin delosrolessintcticosdecadapalabra.Lospasossiguientes se pueden resumir en la iteracin entre nivel y nivel, aplicando las reglas que hayan sido definidas para el lenguaje. Este ejemplo muestra cmo la aplicacin crea los distintos nivelesdelrbol.Porrazonesdeespacio,enlaTablaIslose

Analizador Sintctico de Lenguaje Natural con Reglas Editables Zapata y Hernndez muestra una lista reducida de las reglas necesarias para efectuar el proceso de anlisis sintctico y poder construir el rbol de la oracin ejemplo. Las Figuras 4 a 9 muestran el procesopasoapaso.

Figur a 7. Elcuartopaso delalgoritmo:aplicacindelaregla3(version1)ode laregla5(version2).

Figur a 3. Interfazparalaedicindereglas:Alahoradedefinirunaregla,la interfazofrecelasopcionesdeeliminarreglasanterioresydeingresarnuevos rolessintcticosquenoestnpresentesenellexicn. T ABLA 1 ReglasUtilizadasparaelAnlisissintcticodelaOracin Elhombrepintalapuertadelacasademadera Cdigo 1 2 3 4 5 6 7 Regla o sn+sv sn d+s sn sn+sprep sv v+sn sprep sprep+sprep sprep prep+sn sprep prep+s Si No No Si No No No Completa Terminal Si No No No No No No

Figur a 8. Elquintopasodelalgoritmo:aplicacindelaregla3paraambas versiones.

Figur a4. Elprimerpasodelalgoritmo:laobtencindelosrolessintcticos desdeellexicn.

Figur a 5. Elsegundopasodelalgoritmo:aplicacindelasreglas2y7.

Figur a 6. Eltercerpasodelalgoritmo:aplicacindelaregla6.

Una de las aplicaciones futuras que se proponen para este analizador sintctico es servir de base para la obtencin automtica de diagramas UML. En este caso, en la Figura 7 semuestraelefectoquepodrantenerlasdosversionesdela fraserepresentadaseneldiagramadeclasesdeUML.

Figur a 9. Elsextopasodel algoritmo:aplicacindelareglas4y1.

10

RevistaAvancesenSistemaseInformtica,Vol.4No.1,Juniode2007 VII. TRABAJOSFUTUROS Existen algunos trabajos que podran dar continuidad al analizador sintctico que se ha presentadoenesteartculo,a saber: 1) La aplicacin podra incluir un mdulo de prediccin paraloscasosenlosquesepresenteunapalabrasinroles sintcticos asociados y poder intuir qu roles puede estarjugandolapalabraysugerirunaposiblecorreccin, basndoseenlasreglassintcticaspreviamentedefinidas y analizando cual(es) reglas seran las aplicables en esa instancia. 2) Dentro de la aplicacin no se hace gestin de las reglas ingresadas por el usuario esto puede llegar al punto en que el usuario genere reglas redundantes, generando as rboles muy extensos. Una opcin para este tipo de dificultades sera la implementacin de un algoritmo de reduccindelrbol,comoseproponeen[8]. 3) El analizador sintctico es el punto de partida de una aplicacin que pretende la generacin de diagramas UMLtomandocomopuntodepartidatextosenlenguaje naturalyatravsdelmtododereglaseditables,sepuede independizar del idioma origen de los textos, graduar la complejidadylaestructuradelostextosaanalizar. REFERENCIAS
[1] Mitkov R, The Oxford Handbook of Computational Linguistics. Oxford UniversityPress,NewYork,2003. [2] A. Sanchez Manbrilla, Un generador de parsers para micros, Procesamientodel LenguajeNatural,vol3.1985. [3] J. M. Gmez, J. M. Go, J. C. Gonzlez, Un analizador sintctico para gramticas asociativas por la izquierda. X Congreso SEPLN. ProcesamientodelLenguajeNatural vol15.1994. [4] N. Chomsky, Aspects of the Theory of Syntax. MIT Press, Cambridge, Mass.1965. [5] J. Allen, Natural Language Understanding. The Benjamin/Cummings PublishingCompany,Inc.,RedwoodCity.1995. [6] R.Moore,J.Dowding,EfficientBottom UpParsing,SpeechandNatural Language: ProceedingsofaWorkshopHeldatPacificGrove,California. 1991. [7] K.Martin,Experimentswithapowerfullparser,ConferenceInternationale SurLeTraitementAutomatiqueDes Langues,vol1,1967,pp 1 20. [8] Y. Sakakibara, Learning contextfree grammars using tabular representations,PatternRecognition,vol 38,2004,pp13721383.

Si se toman en consideracin reglas simples de conversin para el diagrama de clases (siendo ste un ejemplo de la aplicabilidad en la generacin automtica de diagramas UML), desde el anlisis sintctico se pueden convertir los sustantivos en clases, los verbos en las operaciones de las clases o las relaciones entre ellas, los adjetivos en los atributos de dichas clases o en los valores detales atributos, laspreposicionesen lasdistintasrelacionesentrelasclasesy la ocurrencia de las palabras ser un en una relacin de herenciaentrelasclasesimplicadas. Aplicando las reglas antes mencionadas, se puede ver que enlaprimeraversin,elrbolindicaqueelhombrepinta(la puerta) que es 'de' (la casa) pero esteprimeralgo(lapuerta) es 'de' (madera) en la segunda versin se muestra que el hombre pinta (la puerta) que es 'de' (la casa) la cual es 'de' (madera).Elresultadodelaaplicacindelasreglassepuede visualizarenlaFigura10.

Figur a 10. Primeraetapadegeneracindeldiagramadeclases(anlisisde rbolessintcticos).

VI. CONCLUSIONES En el artculo se muestra un analizador sintctico automtico que utiliza el mtodo buttomup para generar el rbol sintctico este mtodo ofrece un manejo especial para la gestin de la ambigedad, permitindole a la aplicacin generar varias versiones del rbol sintctico cuando est aplicando recorridos de izquierda a derecha y de derecha a izquierda,amedidaqueelrbolesconstruido.Paralaedicin de las reglas de produccin, se requiere cierta habilidad por parte del usuario para escribir las reglas que requiere el lenguajeaserusado.Laaplicacinensuconjuntohabilitala opcin, adems, de editar el lexicn que es la base de datos donde residen los roles sintcticos asociados a cada palabra, permitirlainclusindenuevaspalabrasylosrolessintcticos que estas puedan tener asociados. Dentro de las ventajas principalesdelaaplicacin,figuran: 1) La generacin de todos los rboles sintcticos posibles debidoalaambigedaddellenguaje. 2) Laedicindelasreglassintcticasenlasque,apesarde nohacerunagestinparalaoptimizacindelasmismas, se ofrece la posibilidad de adquirir nuevas formas oracionalesyfigurasdentrodelrbol. 3) La gestin de la completitud y el reconocimiento de los distintos roles por parte de los dems mdulos analizadoresdelaaplicacin. 4) La complementacin del lexicn por parte delusuariopara incluirlosrolessintcticosasociadosconunapalabra.

Potrebbero piacerti anche