Estas notas se basan en la versión 3.5.0 del toolkit
Stanford CoreNLP es un toolkit de herramientas para el procesamiento del lenguaje natural basada en modelos estadístico. Actualmente es muy interesante para nosotros porque poseé herramientas para el español.
Requerimientos
Requiere del JDK versión 1.8. Para verificar si tienen esta versión ejecutar:
$ java -version
java version "1.8.0_31"
Java(TM) SE Runtime Environment (build 1.8.0_31-b13)
Java HotSpot(TM) 64-Bit Server VM (build 25.31-b07, mixed mode)
Si la respuesta no coincide con la versión 1.8 sigue las instrucciones aquí
Instalación
Primero bajar el archivo con el código fuente de aquí
Después descomprimir .zip:
$ unzip stanford-corenlp-full-2014-10-31.zip
$ mv stanford-corenlp-full-2014-10-31 corenlp
Finalmente bajar los jars adicionales y ponerlos en el directorio corenlp:
Pruebas con español
Primero crear un archivo con frases en español, por ejemplo: test.txt.
Después, ejecutar la siguiente línea:
$ java -cp "*" -Xmx2g edu.stanford.nlp.pipeline.StanfordCoreNLP\
-annotators tokenize,ssplit,pos,parse -outputFormat "text" \
-parse.model edu/stanford/nlp/models/srparser/spanishSR.ser.gz \
-tokenize.language es
El significado de los parámetros son:
- Que cargue todos los paquetes de java -cp “*”
- Que ejecute el programa principal StanfordCoreNLP
- Que encadene una secuencia de tareas -annotatorstokenize,ssplit,pos,parse
:
- tokenize: identificar las palabras
- ssplit: identificar la oraciones
- pos: asignar a cada palabra su categoria gramatical
- parse: identificar la estrucutra sintáctica principal
- Que el formato de la salida sea texto -outputFormat “text”
- Que para el parser use el modelo de español -parse.model edu/stanford/nlp/models/srparser/spanishSR.ser.gz
- Que para separar las palabras se base en español -tokenize.language es
Una vez ejecutada la línea aparecerá un prompt NLP> puedes escribir un texto en español y te debe regresar el análisis sintáctico:
NLP> esta es una oración de prueba
Sentence #1 (6 tokens):
esta es una oración de prueba
[Text=esta CharacterOffsetBegin=0 CharacterOffsetEnd=4 PartOfSpeech=FW]
[Text=es CharacterOffsetBegin=5 CharacterOffsetEnd=7 PartOfSpeech=FW]
[Text=una CharacterOffsetBegin=8 CharacterOffsetEnd=11 PartOfSpeech=FW]
[Text=oración CharacterOffsetBegin=12 CharacterOffsetEnd=19
PartOfSpeech=FW] [Text=de CharacterOffsetBegin=20 CharacterOffsetEnd=22
PartOfSpeech=FW] [Text=prueba CharacterOffsetBegin=23
CharacterOffsetEnd=29 PartOfSpeech=FW] (ROOT
(sentence
(sn
(spec
(grup.cc (FW esta) (FW es))
(FW una))
(grup.nom (FW oración)
(s.a
(grup.a (FW de)))))
(FW prueba)))