sábado, 29 de diciembre de 2012

ParaMetric: An Automatic Evaluation Metric for Paraphrasing

TECNICAS DE PARAFRASEO

There are a number of established methods for
extracting paraphrases from data. We describe
the following methods in this section and evaluate
them in the next:
• Pang et al. (2003) used syntactic alignment to
merge parse trees of multiple translations,
• Quirk et al. (2004) treated paraphrasing as
monolingual statistical machine translation,
• Bannard and Callison-Burch (2005) used
bilingual parallel corpora to extract paraphrases.
S
NP VP
NN
persons
AUX
were
CD
12
VP
VB
killed
S
NP VP
NN
people
VB
died
CD
twelve
VB
NP VP
CD NN
12
twelve
people
persons
...
were
...
died
...
killed
AUX VP
BEG END
12
twelve
people
persons
died
were killed
Tree 1 Tree 2
+
Parse Forest
Word Lattice
Merge
Linearize
Figure 2: Pang et al. (2003) created word graphs
by merging parse trees. Paths with the same start
and end nodes are treated as paraphrases.
Pang et al. (2003) use multiple translations to
learn paraphrases using a syntax-based alignment
algorithm, illustrated in Figure 2. Parse trees were
merged into forests by grouping constituents of the
same type (for example, the two NPs and two VPs
are grouped). Parse forests were mapped onto finite
state word graphs by creating alternative paths
for every group of merged nodes. Different paths
within the resulting word lattice are treated as paraphrases
of each other. For example, in the word lattice
in Figure 2, people were killed, persons died,
persons were killed, and people died are all possible
paraphrases of each other.
Quirk et al. (2004) treated paraphrasing as
“monolingual statistical machine translation.”
They created a “parallel corpus” containing pairs
of English sentences by drawing sentences with a
low edit distance from news articles that were written
about the same topic on the same date, but published
by different newspapers. They formulated
the problem of paraphrasing in probabilistic terms
in the same way it had been defined in the statistical
machine translation literature:
ˆ e2 = argmax
e2
p(e2|e1)
= argmax
e2
p(e1|e2)p(e2)
101




Challenges for Evaluating Paraphrases




Automatically
There are several problems inherent to automatically
evaluating paraphrases. First and foremost,
developing an exhaustive list of paraphrases for
any given phrase is difficult. Lin and Pantel (2001)
illustrate the difficulties that people have generating
a complete list of paraphrases, reporting that
they missed many examples generated by a system
that were subsequently judged to be correct. If
a list of reference paraphrases is incomplete, then
using it to calculate precision will give inaccurate
numbers. Precision will be falsely low if the system
produces correct paraphrases which are not in
the reference list. Additionally, recall is indeterminable
because there is no way of knowing how
many correct paraphrases exist.
There are further impediments to automatically
evaluating paraphrases. Even if we were able to
come up with a reasonably exhaustive list of paraphrases
for a phrase, the acceptability of each paraphrase
would vary depending on the context of
the original phrase (Szpektor et al., 2007). While
lexical and phrasal paraphrases can be evaluated
by comparing them against a list of known paraphrases
(perhaps customized for particular contexts),
this cannot be naturally done for structural
paraphrases which may transform whole sentences.
We attempt to resolve these problems by having
annotators indicate correspondences in pairs
of equivalent sentences. Rather than having people
enumerate paraphrases, we asked that they perform
the simper task of aligning paraphrases. After
developing these manual “gold standard alignments”
we can gauge how well different automatic
paraphrases are at aligning paraphrases within
equivalent sentences. By evaluating the performance
of paraphrasing techniques at alignment,
rather than at matching a list of reference paraphrases,
we obviate the need to have a complete
set of paraphrases.
We describe how sets of reference paraphrases
can be extracted from the gold standard alignments.
While these sets will obviously be fragmentary,
we attempt to make them more complete
by aligning groups of equivalent sentences rather
than only pairs. The paraphrase sets that we extract
are appropriate for the particular contexts. Moreover
they may potentially be used to study structural
paraphrases, although we do not examine that

Paraphrasing for Automatic Evaluation Regina Barzilay , tipos de parafraseo

http://acl.ldc.upenn.edu/N/N06/N06-1058.pdf

The most notable examples in this category include measures such as BLEU and ROUGE


In this paper, we explore the use of paraphrasing
methods for renement of automatic evaluation
techniques. Given a reference sentence and a
machine-generated sentence, we seek to nd a paraphrase
of the reference sentence that is closer in
wording to the machine output than the original reference.
For instance, given the pair of sentences in
Table 1, we automatically transform the reference
sentence (1a.) into
However, Israel's
answer
failed to completelyremove the U.S. suspicions.

candidato parafraseo

Next, the algorithm tests whether
the candidate paraphrase is admissible in the context
of the reference sentence. Since even synonyms
cannot be substituted in any context (Edmonds and
Hirst, 2002), this ltering step is necessary. We predict
whether a word is appropriate in a new context
by analyzing its distributional properties in a large
body of text. Finally, paraphrases that pass the ltering
stage are used to rewrite the reference sentence.
We apply our paraphrasing method in the context
of machine translation evaluation. Using this strategy,
we generate a new sentence for every pair of
human and machine translated sentences. This synthetic
reference then replaces the original human reference
in automatic evaluation.



Score  para determinar la calidad del parafraseo

BLEU
BLEU is the basic evaluation measure that we use
in our experiments. It is the geometric average of
the n-gram precisions of candidate sentences with
respect to the corresponding reference sentences,
times a brevity penalty. The BLEU score is computed
as follows:
BLEU = BP · 4vuut
4
Y
n=1
pn
BP = min(1, e1−r/c),
where pn is the n-gram precision, c is the cardinality
of the set of candidate sentences and r is the size of
the smallest set of reference sentences.
To augment BLEU evaluation with paraphrasing
information, we substitute each reference with the
corresponding synthetic reference.
458




ALGORITMOS QUE REALIZAN PARAFRASEO , OJO AL DE BROWN EL DEL LSA YA HA SIDO AMPLIAMENTE INVESTIGADO POR MI

Latent Semantic Analysis
(LSA), and Brown clustering (Brown et al., 1992).
These techniques are widely used in NLP applications,
including language modeling, information extraction,
and dialogue processing (Haghighi et al.,
2005; Sera n and Eugenio, 2004; Miller et al.,
2004). Both techniques are based on distributional
similarity. The Brown clustering is computed by
considering mutual information between adjacent
words. LSA is a dimensionality reduction technique
that projects a word co-occurrence matrix to lower
dimensions. This lower dimensional representation
is then used with standard similarity measures to
cluster the data. Two words are considered to be a
paraphrase pair if they appear in the same cluster.
We construct 1000 clusters employing the Brown
method on 112 million words from the North American
New York Times corpus. We keep the top 20
most frequent words for each cluster as paraphrases.
To generate LSA paraphrases, we used the Infomap
software4 on a 34 million word collection of articles
from the American News Text corpus. We used
the default parameter settings: a 20,000 word vocabulary,
the 1000 most frequent words (minus a stoplist)
for features, a 15 word context window on either
side of a word, a 100 feature reduced representation,
and the 20 most similar words as paraphrases

viernes, 28 de diciembre de 2012

Lo relevante que es una oracion en el texto, utiliza un corpus

Knowledge Discovery

Importante, clasificacion de sistemas de.generacion de textos

Estructura de un sistema de generacion automatica de.textos

Modulo de desambiguacion del sentido de las palabras : tambien llamados wordnet

Aca se explica el problema de manejar un corpus, ya que se requiere de gram cantidad de.un dominio : tema en especifico

Problema actual que se tiene al generar el texto ,se intenta encontrar el grado de coherencia con la LSA pero esto solo califica el grado de coherencia aun no se sabe como resolverlo

miércoles, 26 de diciembre de 2012

Usos de la LSA

nota mental

teniendo en cuenta que en las investigaciones que se han realizado se utiliza un corpus de entrenamiento de 1500 articulos por tema de dominio y deseo que el spinner maneje minimo 10 temas de dominio necesitaria 15000 articulos para un corpus grueso de entrenamiento lo que pienso que puede dificultar el tiempo de procesamiento , estoy modificando los eslabones de markov para que el guardado y la lectura no supere el O (N)

Tabla al cual esperamos llegar con las pruebas del LSA Y RST siendo estos metodos del ptoblema del argumento dr la pobreza del estimulo de platon

EVALUACIÓN AUTOMÁTICA DE COHERENCIA TEXTUAL EN NOTICIAS POLICIALES UTILIZANDO ANÁLISIS SEMÁNTICO LATENTE*

http://www.scielo.cl/scielo.php?pid=S0718-48832010000200006&script=sci_arttext

. METODOLOGÍA APLICADA
Los pasos que se siguieron fueron fundamentalmente tres: recopilación del corpus, construcción del prototipo y evaluación de la coherencia de un conjunto de textos por el prototipo y por evaluadores humanos expertos.
En el desarrollo del trabajo se utilizó únicamente software libre, esto es, aquel que respeta las cuatro libertades esenciales establecidas por la Free Software Fundation (2010) –en español Fundación para el Software Libre–. Dichas libertades son:
a) Libertad de ejecutar el programa cuando se quiera.
b) Libertad de estudiar el código fuente y modificarlo para que haga lo que se quiera.
c) Libertad de copiar el programa y distribuir las copias cuando se quiera.
d) Libertad de publicar o distribuir una versión modificada cuando se quiera.

Según se desprende de lo anterior, se prescindió de cualquier aplicación propietaria y de código cerrado (que no puede ser modificado por el usuario), lo que garantiza que en todas las aplicaciones informáticas utilizadas no se vulnera ninguna licencia y, por ende, no hay uso ilegal de software de terceros.
Para toda la experiencia se empleó un computador con procesador Intel Centrino Duo, de 2 ghz, con una memoria RAM de 1 gb, es decir, un equipo promedio que se aleja de las características de los equipos de última generación. Esto no representó ningún problema pues el computador utiliza el sistema operativo Linux, específicamente la distribución Ubuntu de Canonical Ltd.; dicho sistema operativo tiene un alto grado de eficiencia y un bajo consumo de recursos en comparación con los sistemas operativos de Microsoft, por ejemplo. Además, la utilización de Linux fue una necesidad, debido a que muchas de las aplicaciones empleadas sólo corren de manera nativa en dicho ambiente.
3.1. Recopilación del corpus
Como se señaló en 2.2, el Análisis Semántico Latente precisa para su óptimo funcionamiento de extensos corpus de textos, y que estos textos, además, pertenezcan a un dominio temático restringido. Este corpus se utiliza para entrenar al software de Análisis Semántico Latente, y a partir de este conjunto de textos, la aplicación crea el espacio semántico multidimensional a la luz del cual analizará los textos que se procesen para calcular su coherencia. Teniendo en cuenta lo anterior y dado que la idea era trabajar con noticias, se optó por utilizar como dominio, de entre todos los temas que habitualmente aborda la prensa, el conocido como "Periodismo policial" o vulgarmente denominado "Crónica roja". La razón de esta elección es que dicho campo temático es uno de los que mayor volumen de informaciones ofrece, estando presente en el día a día de cualquier medio periodístico escrito.
Para la confección del corpus de entrenamiento se utilizaron 1.505 textos extraídos de medios de prensa chilenos, específicamente de El MercurioLa Tercera La Nación. La razón para elegir estos medios fue preferir aquéllos con circulación a nivel nacional, por considerarse más representativos del periodismo del país. Además, se les eligió por el mayor esmero con que cuidan el correcto uso del español en las noticias que publican (registro culto-formal). De esta forma se prescindió de otros medios como La Cuarta cuyo uso particular de la lengua no corresponde al habitual en los medios periodísticos y podría haber afectado el funcionamiento de la aplicación de Análisis Semántico Latente.
Otro de los motivos para elegir los medios en cuestión fue que publican sus noticias en Internet en formato html, esto es, utilizan texto que enriquecen con etiquetas que el navegador web debe interpretar. El proceso de recopilación del corpus, gracias a esto, se simplifica una enormidad: sólo basta con copiar y pegar el texto desde el sitio en Internet del medio a un editor de texto sin formato, con el fin de borrarle todas las etiquetas html y mantener únicamente el texto de la noticia en sí. Con esto se evitó el estar utilizando una aplicación de reconocimiento óptico de caracteres, lo que hubiera convertido un trabajo de por sí arduo, en una tarea prácticamente inmanejable por el elevado número de textos utilizados para conformar el corpus.
3.2. Construcción del prototipo
El prototipo puede ser descrito en pocas palabras, como una aplicación que recibe un texto como entrada, lo prepara para su procesamiento, lo lematiza, lo procesa a la luz del espacio semántico creado mediante el corpus de entrenamiento, lo convierte en una cantidad variable de vectores y, finalmente, calcula el coseno de las parejas de vectores adyacentes y los promedia para entregar la evaluación de coherencia del texto en cuestión.
Sin embargo, para comprender mejor su funcionamiento es necesario describir el proceso paso a paso y con mayores detalles.
Las principales aplicaciones informáticas empleadas son el lematizador Libstemmer (disponible en http://snowball.tartarus.org/dist/libstemmer_c.tgz), el editor de flujo Sed destinado a manejar cadenas de texto y el intérprete de be, que es un lenguaje de programación utilizado para realizar operaciones de cálculo numérico desde una línea de comandos (estas dos últimas aplicaciones vienen incluidas por defecto en la distribución de Linux utilizada). Por último, en el prototipo se usó la aplicación Infomap-NLP (disponible en http://infomap-nlp.sourceforge.net/). Dicha aplicación consiste en un paquete de software que debe ser compilado para operar en ambiente Linux y emplea una variante de Análisis Semántico Latente que representa las palabras de un corpus de texto en un espacio vectorial llamado WordSpace. La aplicación permite realizar recuperación de información desde el corpus y mediciones de relación semántica entre las palabras.
El diseño de la herramienta prototipo para evaluar la coherencia textual en forma automática se concibió como un script. Para el Diccionario Informático de Alegsa (en línea), un script es "un conjunto de instrucciones generalmente almacenadas en un archivo de texto que deben ser interpretadas línea a línea en tiempo real para su ejecución. Se distinguen de los programas, pues deben ser convertidos a un archivo binario ejecutable para correrlos".
Este script cumple la función de ordenar a todas las aplicaciones que componen el prototipo que realicen las tareas que de ellas se requieren. La importancia de éste es fundamental, pues todas las aplicaciones carecen de interfaz gráfica y operan sólo a través de comandos de consola, por lo que sin el script la operación de las diferentes aplicaciones sería una tarea que requeriría horas de aprendizaje para un individuo que no las conociera; a esto hay que sumar que el tiempo que llevaría la tarea de procesar un solo texto sería cercano a una hora, lapso que el script reduce a 10 segundos para una noticia de extensión promedio.
3.2.1. Preparación del corpus de entrenamiento y construcción del modelo mediante el Infomap
Los textos en bruto extraídos desde los tres medios periodísticos utilizados se unieron en un único archivo de texto plano, pues para el objetivo del trabajo realizado no importa la procedencia de ellos. Cada uno de los 1.505 textos fue preparado, etiquetándolos de la forma exigida por el Infomap.
Luego el archivo con los 1505 textos se sometió a diferentes operaciones con el fin de limpiarlo. Utilizando el comando Sed desde la Terminal (la consola de comandos de Linux), se eliminaron todas las tildes de las vocales, pues el Infomap no está habilitado para procesarlas y arroja un error cuando se encuentra con ellas. También se eliminaron de los textos todos los signos de puntuación, ya que éstos no son relevantes para el Análisis Semántico Latente; además los signos de puntuación provocan que el Libstemmer no lematice una palabra que va seguida de un punto o una coma, por ejemplo, pues considera al signo como parte de la palabra y no la reconoce. Hay que agregar que el Infomap, al encontrarse con una eñe, arroja un error similar que al encontrarse con una tilde, pero este problema se resolvió más adelante, una vez que el texto estuvo lematizado.
Posteriormente, el archivo con los textos fue transformado en una lista de palabras, con el fin de prepararlo para la lematización, dado que el Libstemmer sólo procesa palabras individuales. Para ello se ejecutó el comando Sed desde la Terminal con la orden de reemplazar todos los espacios en blanco por saltos de línea.
Luego el archivo, ya convertido en una extensa lista de palabras, fue procesado en el Libstemmer, arrojando como salida la misma lista de palabras, pero ahora lematizadas. Esta lista de palabras fue convertida nuevamente en un texto, reemplazando los saltos de línea por espacios en blanco. Luego, se separaron las etiquetas del corpus de cada uno de los textos, agregando saltos de línea antes y después de ellas.
Finalmente, una vez lematizado el texto quedaba el problema de que el Infomap no puede trabajar con las eñes por ser éstas ajenas al inglés, lengua de origen de la aplicación. El inconveniente se resolvió reemplazando las eñes por la secuencia nnn, que no se da dentro de la estructura silábica del español, por lo que se consideró una buena forma de representar a dicho grafema. Así el lema correspondiente a niño, que normalmente es niñ, fue reescrito como ninnn.Hay que señalar que esto no significa ningún problema en relación a los resultados del proceso, pues no afecta la medición de relación semántica, ya que la eñe en rigor no se eliminó, sino que se representó con la secuencia antes descrita.
A continuación se transcribe como ejemplo un texto ya sometido a todo el proceso señalado:
<DOC>
<TEXT>
pdi detien a herman del cisarr en pennnalol el menor de 17 annnos identific com icm reconoci hab particip en el rescat de su herman uno de los herman del cisarr identific com icm fue deten ayer por la brig del crim de la pdi deb a una orden pendient por hurt simpl el jov de 17 annnos qui present antecedent por hurt y consum de drog fue aprehend cerc de las 1630 en pennnalol al ser interrog reconoci hab particip en la fug de ccm 10 conoc com cisarr ocurr el 1 de agost cuand seis menor de edad lleg al centr del senam dond el ninnn permaneci reclu y con un arma de fueg lo ayud a huir hoy ser el control de detencion de icm mientr que su herman el cisarr qui ha sid deten 16 vec permanec reclu en el centr del senam desd dond escap
</TEXT>
</DOC>

Una vez ya preparado el corpus de entrenamiento como recién se expuso, queda un paso previo antes de construir el modelo que definirá el espacio semántico con el Infomap, éste es el relativo a las stop words. El Diccionario Tecnológico (2009, en línea) del sitio web chileno Usando.info, define a las stop words como "aquellas palabras que por ser comunes, los buscadores ignoran para asegurar la calidad de los resultados de lo que se busca. Normalmente entran en esta categoría las preposiciones y conjunciones".
El Infomap-NLP incluye por defecto una lista de stop words, pero del inglés. Por lo tanto, esa lista se reemplazó por una lista de stop words para el español. En Internet hay muchos sitios que ponen a disposición de los navegantes listas de stop words para el español, por lo que pese a que el Infomap no las incluye no es difícil conseguir una. Para el trabajo se utilizó una lista de 327 stop words, construida combinando dos recopilaciones disponibles en Internet. Una de ellas es la que ofrece para la descarga en su sitio el equipo del projecto Snowball, el mismo que desarrolló el lematizador Libstemmer, ubicada en http://snowball.tartarus. org/algorithms/spanish/stop.txt. La otra se encuentra en la página del IR Multilingual Resources de la Universidad de Neuchatel, y puede ser descargada desde el siguiente enlace:http://members.unine.ch/jacques.savoy/clef/spanishSmart.txt. Finalmente, a la lista de stop words se le dio el mismo tratamiento que al corpus de entrenamiento, con el fin de mantener la correspondencia entre ambos: se eliminaron las tildes de las palabras, se lematizaron y se reemplazaron las eñes por la secuencia nnn.
Una vez realizado lo anterior, recién se construyó el modelo en el Infomap, a partir del corpus de entrenamiento. Para esto simplemente bastó con crear un directorio dentro del computador y, a través de comandos ingresados en la Terminal, definirlo como directorio de trabajo para la aplicación. Luego simplemente se le indicó al Infomap la ruta al archivo que contenía el corpus de entrenamiento para que el programa construyera automáticamente el modelo que define el espacio semántico a partir de la recopilación de noticias realizada.
3.2.2. Desarrollo del script
Para el desarrollo del script se utilizó el intérprete de órdenes bash. Se eligió éste por la potencia que posee y, además, porque trabaja con los mismos comandos que la Terminal de Linux, lo que facilita su empleo. En el computador de trabajo no hubo necesidad de instalar dicho intérprete, pues viene incluido por defecto en la distribución Ubuntu.
En la descripción del proceso de construcción del script, por motivos de espacio y de claridad, se realizará una explicación más general, prescindiendo de muchos aspectos de corte más técnico.
Previamente, como ya fue expuesto, es bueno recordar que para predecir coherencia el Análisis Semántico Latente necesita comparar dos unidades textuales vecinas que pueden ser palabras, oraciones, párrafos o textos completos. En este caso, se utilizó como unidad a comparar el párrafo, porque al tratarse de noticias, la tendencia del periodismo actual, sobre todo por el influjo de Internet, es a utilizar párrafos cada vez más cortos (Franco, 2008). Sin embargo, aunque no se expondrá acá, se construyó en el trabajo un script que segmentaba el texto en oraciones, utilizando el punto seguido como marca para realizar la segmentación automática. Las pruebas realizadas llevaron a determinar que la tendencia del periodismo de utilizar párrafos cortos producía distorsiones en los resultados al emplear el script que segmenta en oraciones; incluso, dentro del corpus de entrenamiento hay muchos textos en que no se utiliza el punto seguido.
El script requiere que la noticia que se desee procesar esté ubicada en un archivo de texto plano con el nombre texto_entrada, que debe situarse dentro del mismo directorio en que está elscript. Luego, utilizando el comando Sed para el tratamiento de cadenas de texto, se escribieron las órdenes para que el script elimine las tildes de las vocales, las comas, los dos puntos, los punto y coma, los signos de interrogación y exclamación, los paréntesis, las comillas dobles y simples, y el signo peso. A continuación el script reemplaza los espacios en blanco por saltos de línea, con el fin de construir la lista de palabras que requiere el lematizador. Luego reemplaza todos los puntos por saltos de línea con el fin de dejar el espacio en blanco que indique dónde finaliza cada oración.
En este punto se necesitaba marcar los espacios en blanco de alguna forma, con el fin de que éstos no se confundieran con los que se generarían en un paso posterior del script. Para ello se recurrió a reemplazarlos con la cadena de texto ststs, que se utilizó como comodín de marcado, ya que no existe ninguna similar en la estructura silábica del español.
Una vez realizado lo anterior, el script llama al lematizador y éste realiza su tarea sobre el texto. Hay que indicar que entre la lista de palabras se encontrará con la secuencia ststs, pero la dejará intacta porque no la reconoce como perteneciente al español.
A continuación el script, nuevamente usando el comando Sed, convierte todos los saltos de líneas en espacios en blanco. Con esto el texto queda convertido en un único párrafo, que tiene intercalada entre sus palabras la cadena marcadora ststs. Luego reemplaza todas las eñes por la secuencia nnn y la cadena ststs es reemplazada por un salto de línea, con lo que el texto ya limpio y lematizado queda segmentado según lo requerido.
En este punto, utilizando una vez más Sed, al archivo de texto de salida se le agregan las órdenes necesarias para convertirlo en un nuevo script –al que llamaremos script secundario–, independiente del que ahora se describe; al inicio de cada línea del texto ya segmentado se añaden los comandos necesarios para su procesamiento en el Infomap-NLP, y al final de cada línea se agrega el texto que da la orden para que los valores que conforman el vector resultante los guarde en un archivo llamado vector1. Finalmente, el script principal le otorga permisos de ejecución al script secundario, para que éste pueda operar como tal y ordena su ejecución. Con esto se obtiene como resultado un archivo llamado vectores_division_puntos que contiene los valores que conforman los vectores que representan a cada párrafo del texto en el espacio semántico construido a partir del corpus de entrenamiento.
Por último, el script calcula el coseno entre las unidades textuales adyacentes que conforman el texto procesado en el prototipo. Para ello, y sin entrar a definir conceptos matemáticos en forma profunda, hay que tener claro que para cada par de vectores adyacentes (A,B) se calcula el coseno entre ellos de la siguiente forma:
Lo anterior significa que el coseno del ángulo formado por dos vectores es igual al producto escalar entre los vectores dividido por el producto de sus módulos. También se puede representar de la siguiente forma:
Por último, una vez calculado el producto escalar de los vectores y el producto de los módulos de éstos, simplemente hay que dividir el primer valor obtenido por el segundo. Este resultado indicará el grado de coherencia que hay entre las dos unidades textuales. Y, como ya se señaló, para calcular el grado de coherencia de un texto completo debe realizarse la operación descrita para cada par de vectores que representen a unidades textuales adyacentes y, finalmente, calcular el promedio de los valores obtenidos. Este resultado será el grado de coherencia de dicho texto medido mediante Análisis Semántico Latente. Para realizar esta tarea el script utiliza el intérprete de bc, que es un lenguaje de programación utilizado para realizar operaciones de cálculo numérico desde una línea de comandos.
Finalmente el script arroja un archivo llamado salida_coherencia que contiene el título del texto procesado y los cosenos de cada una de las unidades textuales comparadas y el promedio de todos estos cosenos.
3.2.3. Evaluación de coherencia en los textos de prueba
El prototipo fue testeado procesando diversos textos extraídos desde los mismos medios de prensa desde los que se conformó el corpus de entrenamiento. Se efectuaron pruebas diversas, entre las que se incluyeron manipular la coherencia de textos, crear textos sin sentido uniendo párrafos extraídos desde diferentes noticias (cuya única relación era pertenecer al dominio en que se enfocó el trabajo) e, incluso, se compararon textos que presentaban la misma noticia, pero extraídas de medios de prensa diferentes (para ello se trató a cada noticia como una única unidad textual). El prototipo superó todas estas pruebas y respondió de acuerdo a lo esperado. Una vez cumplida esta etapa, se prosiguió al siguiente paso de la investigación, que consistió en comparar los resultados de la evaluación del prototipo con la efectuada por humanos.
Para realizar la experiencia se trabajó con seis textos extraídos desde los mismos medios periodísticos ya mencionados y se utilizó una muestra no probabilística de ocho evaluadores humanos. Cuatro de ellos fueron periodistas especializados en la producción de textos escritos y con experiencia en la redacción de noticias dentro del dominio denominado Periodismo Policial. Los otros cuatro sujetos fueron profesores de español, con estudios de postgrado en lingüística, en curso o finalizados. Esto con el fin de cubrir, por una parte, la experiencia en la producción de textos en el dominio citado (periodistas); y, por otro lado, tener la opinión de profesionales expertos en lingüística, ciencia en la que se estudia el fenómeno de la coherencia (profesores de español con estudios en lingüística).
Con el fin de apoyar la tarea de los jueces humanos se creó un instrumento de medición que los guiara al evaluar la coherencia textual. Debido a que, como señala Álvarez (1995), no existe unanimidad entre los autores respecto a la extensión de los conceptos de coherencia cohesión, se optó por una solución que se podría describir como mixta: atender a las marcas de cohesión/coherencia en la superficie del texto y, también, a la percepción del fenómeno de la coherencia por el lector de un texto. Para ello se tomó como base el modelo propuesto por Álvarez (1995), que señala que los términos cohesión coherencia aluden a la buena formación textual y que dicho autor desglosa en los fenómenos de recurrencia, progresión conexión.
En el instrumento se tomaron tres fenómenos pertenecientes a la recurrencia que son utilizados con frecuencia en los textos periodísticos: anáfora, sustitución léxica correferencia sintagmática (se prescindió de la catáfora, porque no aparecía en los textos seleccionados para la experiencia). También se utilizó la progresión, específicamente la progresión con tema continuo, que es la habitual en un texto periodístico. Por otro lado, en el instrumento también se incluyó una pregunta en que se consulta al sujeto por su percepción de la coherencia del texto, basada esta percepción exclusivamente en su experiencia personal ya sea como lector o redactor de noticias.
Para responder a las preguntas planteadas se le indicó a los sujetos que emplearan una escala de 1 a 7, con el objeto de facilitarles la respuesta, pues dicha escala es un referente que se supone arraigado en el imaginario colectivo. Además, debido al carácter técnico de conceptos como anáforasustitución léxicacorreferencia sintagmática yprogresión, se decidió incluir en el instrumento, previo a los textos a analizar, una breve explicación de los mencionados conceptos, con el fin de facilitar a los periodistas la identificación de los fenómenos a que aludían las preguntas. Esto, porque se consideró posible que en su formación como profesionales, no conocieran dichos fenómenos por su nombre técnico. Por otra parte, esto no significa un esfuerzo de comprensión demasiado grande para los individuos, pues los cuatro fenómenos se encuentran incluidos dentro de las competencias en producción de textos que un periodista debe desarrollar durante su formación de pre-grado; pero al ser considerados dentro de un conjunto de competencias, cabía la posibilidad de que no los manejaran por el nombre que se les da en lingüística

Desventajas LSA

From Lexical Cohesion to Textual Coherence: a data driven perspective

En este paper hablan sobre la automatizacion de la validacion de la coherencia de textos por medio de la RTS o rethorical structure teory

Bag of words

Las relaciones lexico semanticas en articulos dr invsstigacion cientifica :una aproximacion desde el analisis semantico latente

Lexical paths as forms of textual cohesion

jueves, 13 de diciembre de 2012

14/12/2012

El dia de hoy tuve bastantes problemas personales , asi que dedique mi tiempo en las horas de la madrugada ( 12- 5 am ) para realizar mis investigaciones a lo cual pude encontrar :

En el libro Linguistic Values Based : Intelligent Information Processing : Theory , Methods , and Applications , de zheng pei  ,da ruan .

En este libro en la pagina 1337 4.4.2 el tema Valuations of fuzzy linguistic propositions , explican un algoritmo que realiza la combinacion satisfactorio de preposiones segun el tiempo de preposicion por ejemplo
ver la imagen del post superior

Este algoritmo me permite saber el numero de diferencias que hay de una frase a otra , cabe destacar que el algoritmo de levenstein me permite saber el numero de diferencias de una frase a otra pero , en este caso no me sirve , por ejemplo:

carlos lava el carro por la mañana
carlos lava el coche en la mañana

aca me daria que hay una diferencia de 7 ya que en y coche no pertenen a la oracion original , las dos oraciones significan lo mismo pero lo que se debe tener en cuenta esque esa deteccion de 7 caracteres de diferencia no hacen que la oracion cambie de sentido y no es posible determinar si esa oracion es realmente igual a la otra , lo que hay que implementar es un algoritmo de levistein modificado que en ves de contar caracteres cuente palabras y devuelva cuales son esas palabras de diferencia , luego si la cantidad es igual o menor en un 10% solo de diferencia con la cantidad de palabras de la oracion normal , entonces se realiza un cambio drastico , osea cambiar el texto por otra oracion , por ejemplo , carlos ha lavado el coche en la mañana , carlos esta lavando el coche .

como detectar nombres en las oraciones? , se desarrollo un modulo que permite detectar en una base , un buen numero de nombres , esto con el fin de agregarle acciones en el caso de que no existan , para hacer mas original la nueva oración .





Algoritmo comparacion distancia de diferencia de una oracion a otra

miércoles, 12 de diciembre de 2012

13/12/2012

Luego de realizar esas arduas pruebas se paso a la siguiente fase que es la investigacion para solucionar el problema de la coherencia gramatical que se obtiene de procesar el texto con los eslabones de markov .
Para eso se investigo en el libro Handbook of natural language processing , second edition , de nitin indurkhya , en la pagina 167 los treebank me dieron una idea para realizar cambios drasticos al software , esto con el fin de poder hacer un analisis minucioso a las oraciones y obtener mejores resultados , se encontro que ya existe un treebank en español , pero que es un treebank? copio y pego , Treebank incluye la anotación de la negación y su ámbito de afectación en las 1.501 oraciones que componen el corpus , la idea es poder obtener este treebank , y como contaba encontree un treebank en español , la referencia estaba por  Alcántara, M. and A. Moreno, 2004. Syntax to Semantics Transformation: Application to Treebanking. In Proc. Workshop  , invesitgando pude determinar que esto es fundamental para el proyecto , http://www.lllf.uam.es/ESP/Treebank.html , este tree bank contiene 1.600 oraciones anotadas sintácticamente , lo que me da la posibilidad de enriquecer el generador de articulos , pero investigando mas profundamente pude observar tambien sobre algo llamado

 Un generador de reglas para las estructuras sintagmáticas, usado para detectar posibles anotaciones incorrectas (desarrollado por R. Grishman).

esto me causo mucha curiosidad y realice varias busquedas encontrando : 
copy paste :http://www.ecured.cu/index.php/Relaciones_sintagm%C3%A1ticas_y_paradigm%C3%A1ticas

Relaciones sintagmáticas y paradigmáticas. Las unidades lingüísticas están interrelacionadas íntimamente por dos tipos de relación: sintagmáticas y paradigmáticas; las primeras son directamente observables, están presentes, mientras que las segundas hay que intuirlas, están ausentes. Ambas se complementan y no pueden concebirse separadas.

Contenido

 [ocultar]

Definiciones

  • Relaciones sintagmáticas: son relaciones combinatorias en presencia de otros elementos lingüísticos, se dan entre los elementos sucesivos del enunciado, están presentes. Se relacionan expansivamente unas tras otras según el orden posicional de los elementos de un enunciado. Son relaciones de sentido que cada signo lingüístico mantiene con los restantes de diversa categoría gramatical , bien sea en un mismo sintagma o en la oración.
  • Relaciones paradigmáticas: son las relaciones de sentido existentes entre los signos de la misma categoría sintáctica, son las relaciones asociativas que se dan entre las unidades del sistema, es decir, entre las unidades simultáneas (forman el paradigma), están ausentes. .

Estructuras sintagmáticas y paradigmáticas

  • Estructura sintagmática: conjunto de palabras agrupadas en torno a un núcleo con una misma función sintáctica y de sentido. Es toda estructura sintáctica constituida por una o más palabras. La combinación se produce en presencia de otros elementos lingüísticos.
Ejemplo:
Amigo – SN Mi amigo - SN Mi amigo bueno – SN Mi amigo bueno de mi colegio – SN Mi amigo bueno de mi colegio el más juguetón – SN Mi amigo bueno de mi colegio el más juguetón como mi perro
  • Estructura paradigmática: es la relación vertical de los signos por ausencia de otros elementos lingüísticos. Continuamente están en relación paradigmática todas las desinencias de un radical verbal, donde aparece una, puede aparecer, sustituyéndola, cualquiera de las demás del paradigma verbal.
Un paradigma es una serie de elementos que pueden ocupar una misma situación, teniendo en cuenta que mutuamente pueden sustituirse y que el empleo de uno de ellos excluye el uso de todos los demás del paradigma. Están, pues, en oposición, el valor de cada elemento aparece en oposición a los demás del paradigma, constituye un conjunto cerrado o acabado en sincronía: al utilizar la palabra notable, se excluye sobresaliente, aprobado y suspenso, pues los cuatro términos pueden ocupar esa posición, forman un paradigma a nivel semántico. Ejemplo:
Las palabras Mesa y Peso son paradigmáticas.
En la lingüística moderna se designa con este nombre al conjunto de unidades que pueden aparecer e intercambiar en un contexto determinado.
Art.Sust.Adj. Calif.PAdj.Pos.Sust.VerboAdj.Ind.Sust.Adv
Elniñoaplicadodemicolegioganaunosdiplomasayer
LaniñabuenadetucasabordaunosmantelesSiempre
Losalumnosresponsablesdesuhogarharánciertosarreglosmañana
LasseñoritasinteligentesdemiinstitutocantaranunascancionesHoy
Lamujeramabledetuviviendacompravariosjuguetessiempre
Laschicascariñosasdesuescuelaharánotrosdibujoshoy

Los constituyentes inmediatos

La teoría de la estructura en constituyentes inmediatos, plantea que las oraciones no están formadas por una simple sucesión de elementos, sino por una combinación de construcciones que forman los constituyentes de una oración, los que a su vez están formados por constituyentes de rango inferior, de ahí que una oración sea el resultado de muchas capas de constituyentes.
Ejemplo: Muchísimos niñitos jugarán ciertos juegos
Presenta tres niveles de análisis (singular)

Enlaces relacionados

Fuentes

  • Alvarado Calderón, Arquímedes (2000). Gramática Estructural y Transformacional.
  • Blanco Botta, Ivonne (1980). Curso de lingüística general. La Habana. Editorial Pueblo y Educación.
  • Dubois, Jean (1983). Diccionario Lingüística. Madrid. Alianza Editorial.
  • Ibico Rojas R. y V. L. García (1997). Lenguaje: Lingüística y Metodología.
  • Saussure, Ferdinand (1960). Curso Lingüística General.


esto es fundamental ,


lo que se puede decir dee sto esque toca generar unas reglas basicas para las estructuras paradigmaticas y sintagmidaticas , esto con el fin de acercarse un poco mas en la coherencia de una oracion eslabonizada

12/12/2012

Se verificaron y corrigieron errores por parte de la generacion de frases a partir de los eslabones de markov , se hizo un cambio grande en la parte del algoritmo que calculaba si una frase tenia mas de 68 palabras , lo que se realizo fue lo siguiente:
se crearon otras funciones para calular los primos de el tamaño total de palabras que habian en la frase , a partir de  esos numeros primos , se sacaba el numero que estuviera mas cerca a 68 siempre que fuera menor , esto con el fin de poder partir la frase en partes iguales y poder mandarla a a procesar a los eslabones de markov  , se calculo ese numero y luego se procedio a partir la frase en partes iguales primero con un for que ccontaba cuantas veces lo debia pártir y luego otro for que hacia las particiones iguales de forma exacta , de este modo la oracion no perdia ninguna palabra .



    int numero_de_particiones= determinar_numero_de_particiones(arrayPalabras_3.length,60);
    int contador =0;
    for(int j=0;j<numero_de_particiones;j++)
    {
        String aux_frase="";
        for(int jj=contador;jj<(arrayPalabras_3.length/numero_de_particiones);jj++)
    {
       
        aux_frase+=arrayPalabras_3[jj]+" ";
   
    }
        contador+=(arrayPalabras_3.length/numero_de_particiones);
      frase_eslabonizada+=  procesamiento_eslabones_de_markov(aux_frase)+" ";


Luego de haber arreglado este problema se realizaron pruebas que pudieron determinar que la ofuscacion de las cadenas de markov no daban para mas de 60 eslabones , lo que se vio representado en disminuir de 68 a 60 obteniendo buenos resultados


luego , se procedio a realizar pruebas externas con usuarios que fueran cariñosos con la aplicacion osea que hicieran pruebas arduas , para esto se paso la aplicacion a andrea rojas dandole los siguientes datos :

Texto creado por el generador a partir de la frase "salsa pesto"

Italiano salsa pesto luz corlor frío verde, que se hace en un mortero o mecánicamente. Classic pesto se hace con albahaca fresca picada, el ajo, el aceite de oliva, sal, pimienta, piñones y queso. Se utiliza para acompañar platos de pasta. Cada vez más, para comprar embotellada. Usted podría considerar un artículoEn cualquier caso, la receta de pesto, que sabemos, y tiene la ventaja de que puede ser congelado, por lo que vale la pena hacer la preparación de muchos como una de pasta, ensalada o cualquier otra comida, salsa pesto tiene un sabor único que cautiva cielo. Ingredientes: En los Pestos sur, generalmente tomates. Pesto de Trapani (Sicilia) se compone de aceite de oliva en una gran cantidad, albahaca, escaldadas y peladas tomates, almendras y ajo, en rodajas y todo emusionado en un mortero. Su apariencia se asemeja a algunas salsas catalanas como Romesco o salvitxada, con la diferencia más obvia es que estosno use albahaca perfumada pero es Noras. En Provenza, debido a su proximidad a Génova hay pesto genovés como una salsa llamada pistu, que contiene aceite de oliva, ajo, albahaca, piñones y queso, pero no. Esta salsa, a su vez, está asociado con el catalán negó aioli (aceite de oliva, ajo y sal) y un poco más no use albahaca perfumada pero es Noras. En Provenza, debido a su proximidad a Génova hay pesto genovés como una salsa llamada pistu, que contiene aceite de oliva, ajo, albahaca, piñones y queso, pero no. Esta salsa, a su vez, está asociado con el catalán negó aioli (aceite de oliva, ajo y sal) y un poco más La semana pasada vimos en nuestro curso de cocina salsa de tomate como base para la pasta. Hoy vamos a ver otra adición a la receta básica es un clásico pesto. 
Por favor, sea cortés y estar al tanto del tema del artículo y no hagas spam. Nombre


y analizar este texto bajo la siguientes reglas :

que oraciones no tienen coherencia y en que escala de coherencia estan osea , 1= no es coherente , 2= es poco coherente , 3 = se entiende mas o menos la idea , 4 = se entiende lo que dice pero en algunas partes es raro , 5 es coherente 


obteniendo los siguientes resultados :
 andrea se refiere a las oraciones .

a la primera 1
a la segunda deberias quitarle el "el" del ajo y el aceite de oliva

entonces de que te sirve lo que yo diga?
la tercera esta bien
la cuarta, lo de embotellada no lo entiendo
Como asi usted podría considerar un artículo?
la otra digamos que como 4
salsa pesto tiene un sabor único que cautiva cielo. como 3
Noras?
que es eso?
.. que contiene aceite de oliva, ajo, albahaca, piñones y queso, pero no. Ese peno no, no cuadra
pero el resto esta bien
Esta salsa, a su vez, está asociado con el catalán negó aioli (aceite de oliva, ajo y sal) y un poco más no use albahaca perfumada pero es Noras por hay 3
Esta salsa, a su vez, está asociado con el catalán negó aioli (aceite de oliva, ajo y sal) y un poco más La semana pasada vimos en nuestro curso de cocina salsa de tomate como base para la pasta. Está bien
y ya el resto esta bien
acabe
entonces ahora dame una puntacion en general de 1 a 5
3
luego se le paso el software a fabian rodriguez el cual pudo realizar las siguientes observaciones:
"Si es por recolección de contenido parece estar bien. Leer por favor esto relacionado al contenido duplicado para que nos vayamos haciendo una idea de los alcances y limitaciones que tenemos dependiendo de la facultad del programa de generar los contenidos: http://forobeta.com/google/146076-mito-del-contenido-duplicado-4.html#post1393197

Nota: 8
Razón: Sería interesante que los textos tuvieran más coherencia, pues en algunos se nota el cambio extremo de tema a pesar de ser de la misma temática.

Lo interesante es que para notarse como plagio queda muy difícil, los párrafos están conformados por temas cortos de apenas unas oraciones que hace imposible ver para el buscador (eso creo yo) la "copia".
"
tambien se le paso el software a brian urban el cual comento :

sisas
pues en mis prueba me devolvió cosas que no tenían nada que ver con el tema xD
  •  que temas?
  • carro
    comidas rapidas
    otras cosas de cocina

    En ese momento se realizaron pruebas en caliente con estas frases : fufas en bogotá
    con lo cual el software respondio : 
    La zona de Santa Fe fue declarada zona roja y, a pesar de que claramente no es el barrio rojo de Amsterdam, si usted tiene servicios tan diversos como cualquier centro comercial, pero con prostitutas. Hay mujeres, travestis y gays en todos los rangos de precios y presentaciones, así como las reservas Jones y curiosos. Carrera 15 # 23-64 de la piscina es un bar de whisky
    se analizo tambien que el software no reconoce algunos nombres con apellidos y que la solucion para esto podria ser que luego que realizara la busqueda y no encontrara nada podria realizar una busqueda por paridad (hombre o mujer) dependiendo del nombre y buscar en wikipedia una persona aleatorio , cambiar los nombres y mostrar eso , claro y realizando el proceso de markov .

11/12/2012

Se construyo el algoritmo con granularidad fina
Se creo el proceso
El algoritmo se ejecuta de la siguiente maners
Se escribe la frase
Se obtiene los 8 resultados de busqueda de la frase
Se procesa los dos primeros parrafos de cafa pagina
Se mira si cada parrafo contirnr mas de 68 palabtas,  en caso de ser versad se saca los primeras 68 palabras y luego se realiza proceso de eslabonizacion de markov,  se llama rrcursivamente la misma funcion hasta a ver procesado el parrafo,  se guarda en una vsribale el rezultado y se repite el proceso con la siguiente url.

10/12/2012

Se ingresa frase para generar articulo
Se hace scrapping en google con procesos de filtrado
Se toma los parrafos y se le realiza el proceso alexander gelbuck,  luego se realiza la distancia de lestain para calcular difefencias del textospineado al original,  a esas difefrncias se les realiza el arreglo morfologico o se le realizs otra ves el proceso alexandet gelbuck.  Se agregan conectores ortograficos y ahi vamos 
68 palabras por analisis