 | Procesamiento de Lenguaje Natural...
|  |
Posted: Tue 5th Feb 4:02 pm |
|
|
| Sirius |
| Site Admin |
 |
 |
| Joined: 15 Jan 2008 |
| Posts: 541 |
|
|
|
 |
 |
 |
|
Durante los ùltimos meses he estado estudiando un libro de Teoria de Sintaxis, y actualmente estoy cada vez màs interesando en la creaciòn de Parsers para lenguajes naturales, en un lenguaje de inteligencia artificial como el PROLOG.
Creo que un Parser eficaz, es una herramienta inapreciable para una traducciòn automàtica (en cualquier direcciòn), o como una interfase que se puede usar para usar el lenguaje natural en aplicaciones, ya sea en robòtica, interfases de voz, o cosas parecidas.
Pongo este tema aquì, y no en "Informàtica", porque la ciencia a la que pertenece este problema, es la lingüstica, màs que la informàtica pura.
Si algun lector està interesado en la lingüistica, lenguaje natural, pues tambièn le interesarà este tema. |
|
|
|
|
 |
|  |
Posted: Tue 5th Feb 4:08 pm |
|
|
| Sirius |
| Site Admin |
 |
 |
| Joined: 15 Jan 2008 |
| Posts: 541 |
|
|
|
 |
 |
 |
|
El primer sitio de interès, es este de la Universidad de Georgia, donde al parecer los alumnos han creado una serie de programas para el manejo del lenguaje, dando un PDF en donde se expone la teoria, y una serie de fuentes asociados, ya sea en Prolog, C++, u otros lenguajes.
http://www.ai.uga.edu/mc/ProNTo/ |
|
|
|
|
Posted: Tue 5th Feb 4:15 pm |
|
|
| Sirius |
| Site Admin |
 |
 |
| Joined: 15 Jan 2008 |
| Posts: 541 |
|
|
|
 |
 |
 |
|
Otro sitio interesante, es este sitio sobre Visual Prolog...
http://discuss.visual-prolog.com/
El visual Prolog que yo tengo (en algùn lugar ) es una versiòn en inglès, pero de unos programadores rusos.
Seria cuestiòn de ver si los tips que aquì se muestran son aplicables a mi software.
En cualquier caso, este es un sitio en donde se puede encontrar gente con interes en la Inteligencia Artificial.
* |
|
|
|
|
Posted: Wed 6th Feb 10:16 pm |
|
|
| Antibush |
|
 |
 |
| Joined: 19 Jan 2008 |
| Posts: 327 |
| Location: Chile |
|
|
 |
 |
 |
|
A mi me interesa el lenguaje, pero la verdad, no te entendí nada...chino!!
Podrías aterrizar la idea un poco para los que no entendemos de esto.
Saludos.- |
|
_________________
"Lo justo a veces, por el modo de defenderlo, parece injusto" (José Martí) |
|
|
|
 |
|  |
Posted: Wed 20th Feb 4:25 pm |
|
|
| Sirius |
| Site Admin |
 |
 |
| Joined: 15 Jan 2008 |
| Posts: 541 |
|
|
|
 |
 |
 |
|
| Antibush wrote: | A mi me interesa el lenguaje, pero la verdad, no te entendí nada...chino!!
Podrías aterrizar la idea un poco para los que no entendemos de esto.
Saludos.- |
Basicamente, se refiere a utilizar las computadoras, como auxiliares para hacer cosas como aprender, analizar o traducir idioma escrito (o hablado).
Es así de simple. Cuando utilizas un traductor en linea, por ejemplo entre inglés y español, el programa usa (por lo general) tecnología que viene dada por la Lingüistica y la Inteligencia Artificial (es decir, si está bien hecho).
Actualmente estoy tratando de implementar un analizador sentencial (parser) del Ruso, a medida que voy aprendiendo el idioma, que por cierto, es algo que acabo de empesar, aunque ya tenía algunos conocimientos rudimentarios de cosas básicas, como el alfabeto y como meterlo en la computadora, y sobre que tipo de idioma es el ruso.
A medida que vaya avanzando en la creación de este programa, voy a ponerlo aquí... así pues se va entendiendo más... así que este tema, pues puede durar por lo menos, un año.
Saludos. |
|
|
|
|
 |
|  |
Posted: Wed 20th Feb 4:32 pm |
|
|
| Sirius |
| Site Admin |
 |
 |
| Joined: 15 Jan 2008 |
| Posts: 541 |
|
|
|
 |
 |
 |
|
PARSER SENTENCIAL RUSO
Autor: Sirius.
El aprendizaje de una lengua, implica esencialmente.
1. El aprender sus reglas gramaticales.
2. El aprender el léxico del idioma.
Un libro que tengo, la“Guia Manual de Conversación Ruso-Español”, es un documento muy completo que incluye entre sus componentes (que no se analizarán aquí), un léxico de aprox. 1500 palabras rusas, que con un estudio asiduo de (digamos) 10 palabras por día, puede estudiarse en 150 días (5 meses).
El léxico ruso tal como está dado ahí, puede dividirse en una tipología de “formas léxicas” que tienen sus propias reglas morfológicas y están asociadas a determinadas reglas sintácticas. Dicha clasificación es:
1. Sustantivos.
2. Adjetivos.
3. Numerales.
4. Pronombres
5. Verbos.
6. Adverbios.
7. Preposiciones.
8. Conjunciones.
9. Palabras conjuntivas.
10. Partículas.
Como se ve, la división es muy similar al español, ya que aunque parezcan muy diferentes, el ruso y el español son ambos idiomas indoeuropeos, con muchas reglas comunes (y también muchas diferentes).
El objetivo es crear tablas individuales para cada uno de los tipos de formas léxicas, con toda la información necesaria, para que una macro específica de Word transcriba esta información en forma de “predicados” de Prolog, cuya estructura se irá desarrollando a medida que se estudien las palabras (y las reglas léxicas asociadas), con el fin de crear un parser léxico, y posteriormente un traductor automático de ese idioma al español (o al inglés).
Esta aproximación al aprendizaje del léxico, aunque parezca demasiado ambiciosa, en realidad es sinérgica:
El tratar de automatizar el análisis sintáctico del ruso en una computadora, forzará al programador (y de un modo divertido) al entendimiento profundo de la mofo sintaxis rusa, a medida que el léxico se domine, de modo incremental.
Tal es la ironía del procesamiento de lenguaje natural en la computadora: Que el programador que puede hacerlas, termina tal vez, no necesitando sus propias herramientas.
El diseño de las tablas de estudio, las macros creadoras de hechos, el estudio de la mofo sintaxis de cada palabra individual, y el del los programas parser/traductor… es un todo integrado y orgánico, que se va desarrollando a medida que se avanza, en una aventura de descubrimiento… en la que tal vez no se sepa que pase a la vuelta de la esquina.
Como filosofía de estudio, que se pudiera aplicar a otras áreas…. eso es inapreciable.
++++++++++++++++++++++++++++++++++
1. SUSTANTIVOS
Campos:
stem parte invariable de la palabra
gen masculino, femenino o neutro [m, f, n]
dnom Desinencia en nominativo singular.
ani animado o inanimado [a, i]
gse Desinencia del genitivo singular.
seman significado en español.
dsing desinencias en singular (6). [Nom, Gen, Dat, Acus, Instr, Prep]
dplur desinencias en plural (6). [Nom, Gen, Dat, Acus, Instr, Prep]
• Las desinencias son asignadas a la raíz por medio de una serie de reglas, dadas en tablas en la parte de la gramática de sustantivos.
• Cada tabla define una o más reglas.
• Se supone que la suma de estas reglas, debe cubrir cualquier sustantivo encontrado.
Aunque el sistema para encontrar las desinencias en Ruso es complicado, tiene reglas claras de clasificación, secuenciales y regulares, muy susceptibles de ser programadas en forma “escalonada”. La clasificación es de tres pasos.
1. Por letra final del la raíz.
2. Por el género del sustantivo [m, n, f].
3. Por la desinencia del nominativo singular.
4. Si el sustantivo es animado o inanimado [a, i].
El resultado final de la clasificación, es el determinar dos listas:
• Las desinencias en singular, y
• las desinencias en plural.
Además de estas reglas, se tienen los campos D_sing, y D_plur para los casos en que se tenga un sustantivo “ideosincrático” y se deseen meter las desinencias a mano, y por lo tanto, no se usan las reglas automáticas.
stem gen dnom ani gse seman dsing dplur
абонент m i a suscripción [ , а, у, а, , е] [ы, ов, ам, ов, ами, ах]
Pseudo código para determinar las desinencias, deberá ser en global una forma CASE...
++++++++++++
if last(stem) in {б в г д з к л м н п р с т ф х } /* consonantes duras*/
.
.
.
if last(stem) in { } /* consonantes blandas*/
++++++++++ |
|
|
|
|
 |
|  |
Posted: Sat 1st Mar 6:08 pm |
|
|
| Sirius |
| Site Admin |
 |
 |
| Joined: 15 Jan 2008 |
| Posts: 541 |
|
|
|
 |
 |
 |
|
Siguo tratando de comenzar un programa para el analisis sintàctico del ruso... tengo algunos problemas, ya que no se la codificaciòn interna del cyrìlico en el editor de Visual Prolog... aunque no parece ser un problema irresoluble, sino màs bien, que pide algo de ingenio.
El orden en el que debe estudiarse (segùn yo) el idioma ruso es el siguiente...
Particulas
Conjunciones
Palabras conjuntivas.
Preposiciones
Adverbios
++++++++++++++++++
Numerales
Pronombres
Adjetivos
Sustantivos
Verbos
++++++++++++++++++
Esta ordenaciòn lexica està ordenada de menor a mayor complejidad.
Las partìculas son inflexibles, absolutamente... son parecidas a las partìculas alemanas en que son mas o menos completamente opcionales.
Las conjunciones tambièn son inflexibles... pero tienen un esquema de subcategorizaciòn sintàctica, aunque por supuesto muy intuitiva y no representan problema de aprendizaje.
Existen cietas cosas llamadas "palabras conjuntivas", algunas de ellas se declinan, pero no dan problemas, porque son muy pocas.
Las preposiciones comandan algunos de los 5 casos diferentes al nominativo. En si mismas son inflexibles.
Los adverbios en grado positivo, tampoco dan problemas... aunque sus grados comparativo y superlativo interaccionan de manera extraña con los adjetivos. Pero es posible hacer trampa aquì, y pasar esa complejidad a los adjetivos, cuando se toquen.
+++++++++++++++++++++++
En el vocabulario del libro de texto que tengo, el total de palabras de estas categorìas anteriores, es aproximadamente 300 palabras (de un universo de 1500 lexemas).
Eso està muy bien, pues con ellas se cubre el 50% de las categorìas lèxicas.
Incluso me estoy proponiendo el aprender ruso en alrededor de 1 año, como una meta muy ambiciosa.
Saludos. |
|
Last edited by Sirius on Thu 27th Mar 8:58 pm; edited 2 times in total |
|
|
|
 |
|  |
Posted: Sat 1st Mar 6:18 pm |
|
|
| Sirius |
| Site Admin |
 |
 |
| Joined: 15 Jan 2008 |
| Posts: 541 |
|
|
|
 |
 |
 |
|
Wikipedia: Cyrillic Alphabet...
http://en.wikipedia.org/wiki/Cyrillic_alphabet
Hay mucha informaciòn sobre codificaciòn electrònica que me puede ayudar despues, sobre todo tratar de encontrar un programa que pueda traducir del Unicode a la codificaciòn interna del VP.
Algo que me molesta: No hay mucha informaciòn sobre "sequence of strokes" para estas letras... al parecer no es algo que se considere tan importante como en la escritura china...
... y sin embargo, apenas ayer pude descubrir como escribir una
"Д"
aceptable!!! . |
|
|
|
|
 |
|  |
Posted: Thu 27th Mar 9:05 pm |
|
|
| Sirius |
| Site Admin |
 |
 |
| Joined: 15 Jan 2008 |
| Posts: 541 |
|
|
|
 |
 |
 |
|
1. PARTICULAS
• Las partículas no tienen ligadas reglas morfológicas, ya que son partículas totalmente invariables.
• Al igual que en el Alemán, las partículas rusas se usan para añadir ciertas sutilezas en la frase.
Campos:
stem Parte invariable de la palabra
seman Equivalente en español.
| Code: | Num. stem seman
1 бы v-SUBJ = v-PAST + бы
2 вон allí
3 вот aquí
4 да sí
5 даже incluso, aún
6 же igual
7 конечно ¡claro!
8 ли ?
9 не no
10 нет no
11 пожалуйста por favor; de nada
12 правильно bien
13 спасибо gracias
14 только solo, solamente |
Definitivamente, el estudio del idioma ruso debe empezar por aquí… por estas partículas que no tienen ninguna complicación morfológica o sintáctica.
Colocándonos en el inicio de la tabla (en la celda donde está el “1”), la siguiente macro genera una serie de hechos en PROLOG con el siguiente formato:
++++++++++++++++++++++
partic("бы","v-SUBJ = v-PAST + бы").
partic("вон","allí").
partic("вот","aquí").
partic("да","sí").
partic("даже","incluso, aún").
partic("же","igual").
partic("конечно","¡claro!").
partic("ли","?").
partic("не","no").
partic("нет","no").
partic("пожалуйста","por favor; de nada").
partic("правильно","bien").
partic("спасибо","gracias").
partic("только","solo, solamente").
Sub partic()
'
' partic Macro
' Macro grabada el 24/02/2008 por NUEVO
'
For I = 1 To 14
Selection.MoveRight Unit:=wdCell
Selection.Copy
Windows("destino").Activate
ActiveWindow.Panes(1).Activate
Selection.TypeText Text:="partic("""
Selection.PasteAndFormat (wdPasteDefault)
Selection.TypeText Text:=""","""
Windows("LEXICO RUSO_a").Activate
ActiveWindow.Panes(1).Activate
Selection.MoveRight Unit:=wdCell
Selection.Copy
Windows("destino").Activate
ActiveWindow.Panes(1).Activate
Selection.PasteAndFormat (wdPasteDefault)
Selection.TypeText Text:=""")."
Selection.TypeParagraph
Windows("LEXICO RUSO_a").Activate
ActiveWindow.Panes(1).Activate
Selection.MoveRight Unit:=wdCell
Next I
End Sub
• El nombre del archivo de Word en el cual se van poniendo los predicados, se llama “destino.doc” y debe estar abierto al momento de ejecutar esta macro.
• La macro, aunque se ve algo complicada, en realidad es muy simple de crear con el grabador de macros.
Ojo: El Turbo Prolog al parecer no puede manejar el código escrito en ruso. Por lo tanto, una solución para seguir este camino debe ser...
• Tratar de resolver este problema sobre la codificación y el desplegado del cirílico en PROLOG.
• Manejar esto con convertidores de transliteración, lo que es bastante no-deseable.
2. CONJUNCIONES
• Las conjunciones no tienen ligadas reglas morfológicas, ya que son partículas totalmente invariables.
• Las conjunciones pueden tener asociadas reglas de subcategorización sintáctica.
Campos:
stem Parte invariable de la palabra
seman Equivalente en español.
| Code: | Num. stem seman
1 а y; pero, sino
2 если si
3 и y, e
4 и…и y… y; tanto… como
5 или o, u
6 но pero
7 чем que; con qué
8 что qué; que
9 чтобы que; para, para que
10 потому что porque |
A partir de esta tabla, se crea una serie de predicados de PROLOG
conj("а","y; pero, sino").
conj("если","si").
conj("и","y, e").
conj("и…и","y… y; tanto… como").
conj("или","o, u").
conj("но","pero").
conj("чем","que; con qué").
conj("что","qué; que").
conj("чтобы","que; para, para que").
conj("потому что","porque").
3. PALABRAS CONJUNTIVAS
• Son pronombres y adverbios que son usados en papel de conjunciones.
• La única forma de distinguirlas de las otras, sería por medio de reglas de subcategorización. Es decir, más adelante se debe introducir reglas de subcategorización, al igual que para las conjunciones.
Campos:
stem Parte invariable de la palabra
seman Equivalente en español.
| Code: | Num. stem seman
1 кто quien
2 когда cuando
3 почему porque
4 что que
5 где donde
6 зачем para que
7 куда a donde
8 сколько cuanto
9 откуда de donde |
Esto se tiene que reducir a predicados de PROLOG en donde se introduzcan las palabras conjuntivas.
p_conj("кто","quien").
p_conj("когда","cuando").
p_conj("почему","porque").
p_conj("что","que").
p_conj("где","donde").
p_conj("зачем","para que").
p_conj("куда","a donde").
p_conj("сколько","cuanto").
p_conj("откуда"," de donde").
4. PREPOSICIONES
• Las preposiciones no tienen ligadas reglas morfológicas, ya que son partículas totalmente invariables.
• Las preposiciones rigen un caso particular que afecta la morfología de palabras asociadas. Por cierto, ninguna preposición rusa rige en nominativo (al igual que en el Alemán). .
• Las preposiciones pueden tener asociadas reglas de subcategorización sintáctica.
Campos:
stem Parte invariable de la palabra
caso Gen., Dat., Acc., Instr., Prep. = [g, d, a, i, p]
seman Equivalente en español.
| Code: | Num stem caso seman
1 без g sin; menos
2 для g para
3 до g hasta
4 из g de, desde; con
5 около g cerca de
6 от g de, desde
7 после g después de
8 с g de
9 у g junto a, al lado de, a
10 к d hacia, a
11 ко d hacia, a
12 по d por
13 в a en, a
14 за a detrás de; durante, en
15 на a en, a
16 через a a través de; dentro de, al cabo de
17 над i sobre; encima de
18 с i de, desde; con
19 со i de, desde; con
20 в p en, a
21 на p en, a
22 о p sobre, acerca de
23 об p sobre, acerca de
24 обо p sobre, acerca de |
<aquí falta revisarlas con el diccionario grande>
5. ADVERBIOS
• En el ruso los adverbios son palabras indeclinables, que se emplean para modificar verbos (хорошо играть), adjetivos (совсем холодный) y otros adverbios (очень хорошо).
• Al igual que en otros idiomas indoeuropeos como el Español y el Alemán, en el Ruso los adverbios tienen tres grados: grado positivo, comparativo y superlativo.
• De acuerdo a su semántica, los adverbios se pueden dividir en 6 grupos. (1.) Adverbios de tiempo, (2.) Adverbios de lugar y de dirección, (3.) Adverbios de modo, (4.) Adverbios de cantidad y de grado, (5.) Adverbios de finalidad y causa, (6.) Adverbios predicativos.
Campos:
stem Parte invariable de la palabra
seman Equivalente en español.
A. Adverbios de tiempo.
| Code: | Num stem seman
1 когда cuando
2 тогда entonces
3 зимой en invierno
4 весной en primavera
5 летом en verano
6 осенью en otoño
7 утром por la mañana
8 днём de día
9 вечью xxxxxxxx
10 круглочсуточно todo el día
11 позавчера anteayer
12 вчера tarde / noche (gen?)
13 сегодня hoy
14 завтра mañana
15 послезавтра pasado mañana
16 скоро pronto
17 нескоро no pronto
18 сейчас ahora
19 сначала primero
20 потом después
21 рано temprano
22 поздно tarde
23 давно hace tiempo
24 недавно hace poco
25 раньше más temprano
26 позже más tarde
27 часто frecuentemente
28 обычно habitualmente
29 ежедневно cada día
30 ежегодно cada año
31 всегда siempre
32 иногда a veces
33 редко raramente
34 никогда nunca |
B. Adverbios de lugar y de dirección.
| Code: | Num stem seman
1 где donde
2 где-то en alguna parte
3 где-нибудь en alguna parte
4 тут aquí
5 здесь aquí
6 там allí, allá
7 близко cerca
8 поблизости al lado, muy cerca
9 недалеко no lejos = cerca
10 далеко lejos
11 издалека desde lejos
12 впереди delante
13 вперёд adelante
14 спереди por delante
15 сзади detrás, por detrás
16 назад atrás
17 сзади detrás, por detrás
18 внизу abajo
19 вниз abajo
20 снизу de abajo, por debajo
21 наверху arriba
22 наверх hacia arriba
23 вверх arriba
24 сверху de arriba
25 слева a la izquierda, del lado izquierdo
26 налево a la izquierda
27 налево a la izquierda
28 влево a la izquierda
29 слева a la izquierda, del lado izquierdo
30 справа a la derecha
31 направо a la derecha
32 направо a la derecha
33 вправо a la derecha
34 справа a la derecha
35 прямо derecho, recto
36 дома en casa
37 домой a casa |
<Aquí cabe una buena explicación sobre los cambios de los adverbios>
C. Adverbios de modo.
| Code: | Num stem seman
1 весело alegremente
2 интересно interesante
3 неинтересно no interesante
4 приятно agradable
5 правильно correctamente
6 неправильно incorrectamente
7 неплохо no mal
8 хорошо bien
9 плохо mal
10 успешно con éxito
11 безуспешно en vano
12 как como
13 как-ето xxxx
14 как-нибудь cualquiera
15 так así
16 тоже también / tampoco
17 быстро rápidamente
18 медленно lentamente
19 громко en voz alta
20 тихо silenciosamente
21 вместе juntos / al mismo tiempo
22 вничью en empate
23 пешком a pie
24 по-испански en Español
25 по-английски en Inglés
26 по-русски en Ruso
27 по-французки en Francés |
D. Adverbios de cantidad y de grado.
| Code: | Num stem seman
1 сколько cuánto
2 столько tanto
3 мало poco
4 менее menos
5 наименее el menos
6 много mucho
7 больше más
8 более más
9 наиболее el más
10 немного un poco
11 очень mucho / muy
12 совсем completamente
13 совершенно enteramente
14 слишком demasiado
15 чересчур excesivamente
16 ещё todavía
17 уже ya
18 чуть-чуть un poquito
19 вдвое doble
20 втрое triple |
E. Adverbios de finalidad y causa.
| Code: | Num stem seman
1 почему por qué
2 почему-то no sé
3 потому por eso
4 поэтому por eso
5 зачем para qué
6 зачем-то con algún fin
7 затем después
8 нарочно adrede
9 нечаянно sin querer |
F. Adverbios predicativos.
| Code: | Num stem seman
1 жарко caliente
2 душно bochornoso, asfixiante
3 тепло caluroso
4 порхладно xxxxxxxxxxx
5 холодно frio
6 весело alegremente
7 интересно interesante
8 хорошо bien
9 плохо mal
10 приятно xxxxxxxx
11 неприятно desagradable
12 жаль lastimoso
13 нужно necesario
14 можно posible
15 нельзя imposible
16 замужем casada |
|
|
|
|
|
|