2008-10-23 13 views
7

Estoy buscando ejemplos sintácticos o técnicas comunes para hacer transformaciones de estilo de expresión regular en palabras en lugar de caracteres, dado un lenguaje de procedimiento.A "regex para palabras" (reemplazo semántico): ¿cualquier sintaxis de ejemplo y bibliotecas?

Por ejemplo, para rastrear la copia, uno querría crear un documento con un significado similar pero con diferentes opciones de palabras.

Me gustaría poder definir concisamente estas posibles transformaciones que puedo aplicar a un flujo de texto.

Por ejemplo. "rápido sustantivo" a "rápido sustantivo", pero "ir rápido". no llegaría transformado (sin sustantivo después
O:. "Alice va a cantar la canción " a " canción será cantada por Alice"

yo esperaría que esto se haga en las damas gramaticales, tales como detección de voz pasiva.

La implementación de AC# para este tipo de procesamiento del lenguaje sería muy clara, pero creo que la mayor parte de cualquier esfuerzo es encontrar las reglas correctas. Mantener las reglas claras y comprensibles parece un lugar para comenzar.

Respuesta

0

Un buen lugar para comenzar sería SIL's CARLAStudio para su suite "Adaptación de lenguaje relacionada con la computadora asistida". Alternativamente SIL Adapt It. SIL tiene una gran variedad de software de análisis lingüístico, que es la dirección en la que usted parece ir. Sin duda es un gran salto de las expresiones regulares, que no se preocupan por el significado, a algo que puede manejar el análisis lingüístico.

+0

Sospecho que hice una pregunta incorrecta y trataré de entender dónde me equivoqué. Esperaba que escribiera el conjunto de reglas, estoy buscando ejemplos de conjuntos de reglas y si hay una forma estándar de definirlos. –

0

Si quiere algo más robusto para el análisis/transformación del lenguaje natural, puede probar el C# port of OpenNLP.

2

Un buen lugar para comenzar a investigar sería "Word Net" - es un diccionario de semántica, agrupando palabras juntas por un significado similar, y también registrando las relaciones entre palabras de manera útil.

Hay un montón de proyectos de software que aprovechan el corpus de Word Net, uno de ellos puede ser lo que necesita.

+0

Gracias por un punto de partida. ¿Puede recomendar algún proyecto que modifique el texto en función de una regla introducida por el ser humano? –

-1

No estoy al tanto de cualquier sintaxis que existen para el procesamiento del lenguaje Inglés como se discute. Debería crear su propia DSL utilizando uno de los conjuntos de herramientas (como Word Net).

2

Si no está atado a un idioma en particular, Haskell tiene marco gramatical de Aarne Ranta:

http://www.grammaticalframework.org/

que está diseñado explícitamente para generar analizadores, etc. para el procesamiento del lenguaje natural de este tipo.

+1

El enlace está roto. El sitio web de GF es http: //www.grammaticalframework.org/ Sitio web de Aarne Ranta: http://www.cse.chalmers.se/~aarne/ –

+0

Aparentemente el enlace se pudrió. ¡Gracias! Fijo –

Cuestiones relacionadas