Estoy tratando de crear un pequeño lenguaje similar al inglés para especificar tareas. La idea básica es dividir una declaración en verbos y sintagmas nominales a los que se deberían aplicar esos verbos. Estoy trabajando con NLTK pero no obtener los resultados que yo esperaba, por ejemplo:etiquetado personalizado con nltk
>>> nltk.pos_tag(nltk.word_tokenize("select the files and copy to harddrive'"))
[('select', 'NN'), ('the', 'DT'), ('files', 'NNS'), ('and', 'CC'), ('copy', 'VB'), ('to', 'TO'), ("harddrive'", 'NNP')]
>>> nltk.pos_tag(nltk.word_tokenize("move the files to harddrive'"))
[('move', 'NN'), ('the', 'DT'), ('files', 'NNS'), ('to', 'TO'), ("harddrive'", 'NNP')]
>>> nltk.pos_tag(nltk.word_tokenize("copy the files to harddrive'"))
[('copy', 'NN'), ('the', 'DT'), ('files', 'NNS'), ('to', 'TO'), ("harddrive'", 'NNP')]
En cada caso se ha dado cuenta de la primera palabra (seleccionar, mover y copiar) fueron pensados como verbos. Sé que puedo crear etiquetas y gramáticas personalizadas para evitar esto, pero al mismo tiempo tengo dudas de reinventar la rueda cuando muchas de estas cosas están fuera de mi alcance. En particular, preferiría una solución donde también se puedan manejar idiomas que no sean inglés.
Así que de todos modos, mi pregunta es una de: ¿Hay un mejor grabador para este tipo de gramática? ¿Hay alguna manera de ponderar un etiquetador existente para usar la forma verbal con más frecuencia que la forma del sustantivo? ¿Hay alguna manera de entrenar a un etiquetador? ¿Hay una mejor manera en total?
¿Es posible utilizar un modelo (como en respuesta Jacobs) y la sentencia de formación (como en esta respuesta)? – Sadik