Esto es más complicado de lo que aparentemente parece, pues tienes que hacer que la computadora entienda el lenguaje humano...
Se puede hacer algo básico y simple, pero aún así necesitarías crear "diccionarios". Estos diccionarios pueden ser simples arrays de String: uno que contenga SUSTANTIVOS(computadora, coche, perro, persona, día, noche, hoy, ayer, mañana...)..obviamente la lista sería inmensa y no puedes aspirar a contenerlos todos.
Otro que contenga VERBOS y sus conjugaciones(soy, eres, somos, estoy, estamos, estaremos, estaré, estarás, juego, jugaré, bailo, bailas, como, bebo, salto,...).. de nuevo la lista sería inmensa.
Con estos diccionarios, se puede intentar hacer un simplista análisis sintáctico de la frase. Buscando el SUSTANTIVO localizamos el sujeto de la oración y con el VERBO tendríamos el predicado.
Con esto, decidimos donde poner el NO para negar el predicado
Vamos a probar a hacerlo buscando únicamente el VERBO, y poniéndole delante un NO
Ejemplos:
"Estoy cansado".
"Estoy" sería el VERBO, le ponemos delante un "no"
"No estoy cansado"
*******
"Hoy vengo a cenar"
Tenemos dos VERBOS: "vengo" y "cenar".
"Cenar" aquí en realidad es un complemento, no es el verbo que realiza la acción, que es "vengo".
Como humanos sabemos distinguirlo. La máquina no, pero podemos decirle que el primer VERBO que encuentre será el que ha de considerar como el "verbo predicativo" (el que denota una acción) y por tanto negarlo.
Esto puede servir para la mayoría de las veces
"Hoy no vengo a cenar"
*********
"Mi madre me hizo el arroz"
Aquí tenemos un solo verbo "hizo", pero si lo negamos como hasta ahora, poniéndole un NO delante, la frase no queda bien.
"Mi madre me no hizo el arroz"
Esto ocurre porque tenemos un PRONOMBRE PERSONAL, el "me".
En este caso, el NO tiene que ir delante del PRONOMBRE y no del VERBO.
Por tanto se necesitaría otro DICCIONARIO de PRONOMBRES para localizarlos y según si acompañan al VERBO predicativo o no, pues el "NO" lo pondremos en un sitio u otro.
"Mi madre no me hizo el arroz"
**************
Y podemos encontrar multitud de casos en los que no va a funcionar con simplemente poner un NO delante del verbo predicativo.
Así que en realidad, para conseguir lo que quieres hacer, lo primero es que TÚ mismo aprendas como hacer el análisis sintáctico de una oración.
Y teniendo ese conocimiento, ya se puede poner uno a pensar que lógica hay que seguir para transmitir ese conocimiento a la máquina.
Las máquinas son estúpidas, solo pueden saber lo que tú puedas enseñarle. Por eso primero has de adquirir tú el conocimiento que quieras transmitirle a la máquina.
Hacer que una máquina entienda bien el lenguaje humano, como ya he dicho, es muy complicado y es de hecho uno de los retos actuales en robótica, IA, etc...
Puedes hacer algo simple como he explicado, crear diccionarios de verbos, pronombres... buscar coincidencias y poner un NO donde corresponda.
Y a base de ir probando multitud de frases, cuando te encuentres alguna que la negación ha fallado, pues modificas el código para que contemple esta nueva posibilidad.
Pero bueno, si el programa que te piden ya está previsto que va a recibir oraciones de construcción sencilla, como la que has puesto de ejemplo, tan solo "bastaría" con localizar VERBOS en la oración y ponerle un NO delante