2009-03-04 18 views
12

Estoy buscando algo que puede existir o no. ¿Hay algo así como un "motor de reglas gramaticales en inglés" disponible en la plataforma de Windows (específicamente para algo como .NET o C#)?C#: ¿El motor de reglas de gramática para inglés?

Específicamente, Busco algo que sería capaz de tomar una condena en el 'tiempo futuro' y cambiarlo por el 'pasado' (basado en reglas gramaticales en inglés) ... como:

trabajo en el software widget y luego reunirse con Ricardo

a esto:

trabajado en el software widget y luego se reunió con Ricardo

¿Existe un motor de reglas que ya lo haga?

+0

Gran pregunta +1 para usted. – James

Respuesta

8

Hable con this guy, él podría tener algunas ideas para usted. En general, el inglés es demasiado ambiguo para este tipo de cosas. Por ejemplo:

Corte el papel por la mitad.

¿Es este un comando imperativo, o un fragmento de oración en tiempo pasado? Y mi favorito personal:

El tiempo vuela como una flecha; la fruta vuela como un plátano.

Cualquier ser humano puede analizar eso, pero solo debido a una gran cantidad de conocimiento semántico.

Dicho esto, hay algunas cosas que podrían ser vale la pena analizar, como SharpNLP

+4

¿Desde cuándo arrojar a Chomsky al problema una solución válida? ¡Divertidísimo! –

2

es no, no existen La respuesta corta motores de análisis de PNL general.

La respuesta larga es "un poco", pero hay 50 años de investigación que muestran que es un problema muy difícil, en el caso general. Puede haber uno haciendo transformaciones de tiempo específico. De todos modos, C# probablemente no tenga uno.

5

Como han dicho otros, este es un problema muy difícil y no ha sido resuelto en el caso general. Sin embargo, hay algunos sistemas que funcionan bastante bien. Princeton's WordNet es uno de ellos. Puede identificar partes del discurso, sinónimos, etc. (quizás incluyendo el tiempo verbal) con cierto grado de precisión. Creo que puede interesarte these functions, que parece encontrar la raíz de una palabra dada una conjugación particular y también puede ser capaz de encontrar una conjugación particular dada la raíz (pero esa página no proporciona ejemplos, entonces no puedo asegúrese de interpretar los documentos correctamente).

2

Compruebe this, se llama Grammatica. Puede que no sea precisamente lo que buscas, pero definitivamente es un buen comienzo para analizar las reglas de la gramática inglesa en C#.

+0

Grammatica parece ser un generador de analizador estándar diseñado para lenguajes informáticos típicos.Tales herramientas son notoriamente malas para analizar el inglés, que es muy ambiguo, a menudo contiene oraciones "parciales", y cuya gramática se discute continuamente (de hecho incluso retorcida por artistas de hip-hop). A menos que pueda exhibir una gramática específica de Grammatica para el inglés, esta respuesta es simplemente errónea. –

+0

La respuesta no es incorrecta. Como dije, es un comienzo, no una solución completa. La herramienta es un marco que permite una gran cantidad de ajustes: obviamente, necesitaría agregarle sus propias reglas de gramática inglesa, las que le interesan específicamente. – James

+0

La gente ha intentado usar generadores de analizadores como este en inglés. Casi todo el juicio es que este camino es un fracaso. El analizador de alta tecnología más cercano intentó AFAIK Natural Languages ​​es GLR (no LL (k)), y ese enfoque fue abandonado a finales de los 80. –

Cuestiones relacionadas