1.1.0 • Published 12 months ago

core-nlp-wrapper v1.1.0

Weekly downloads
-
License
ISC
Repository
-
Last release
12 months ago

core-nlp-wrapper

Análisis gramatical de texto.

Instalación

npm i core-nlp-wrapper

Esto instalará el binario parse_natural_file y lo dejará usable desde línea de comandos.

Completar la instalación

Primero, situar la página donde están todas las versiones históricas de este software. Y es aquí:

Nosotros, en un primer momento, estamos usando la versión 4.2.1.

El fichero perdido

Bueno, es un proyecto un poco especial, porque requiere de ficheros grandes. Y hay un problema: Github pone un límite de espacio por fichero para alojar. Y en el proyecto, hay 1 fichero que sobrepasa este límite. Ese fichero, en la instalación con npm de core-nlp-wrapper, no está incluído.

Por todo esto, hay que descargarse este zip de aquí:

Así, entonces, el comando de consola: parse_natural_file file.txt debería encontrar todos los ficheros que va a requerir del proyecto.

El fichero para castellano

Para este proyecto, creo que no voy a dar soporte en castellano, tristemente. Creo que en castellano no está tan bien hecho, tristemente. Quería hacerlo, pero me temo que no es tan buena idea, y que mejor se queda en inglés. Al menos, este.

El binario de Java

CoreNLP funciona con Java. Para que todo funcione bien, no estoy seguro de cuántas cosas hay que tener. En principio, dicen, solo Java 8 o 9. Supongo que mayor también. Al final he conseguido hacerlo funcionar así así, pero no con Gradle ni con Maven, sino bajándome la versión "standalone" del proyecto de su página web, aquí concretamente: https://stanfordnlp.github.io/CoreNLP/parser-standalone.html. Entonces, si abres el fichero README.txt, que es parte de su proyecto y no del mío, ves la instrucción para hacerlo funcionar por consola. Ahí puedes encontrar más cosas de cómo funciona el programa que ellos dan.

Proyecto extendido

Todos los ficheros de este proyecto son los suyos. Yo sólo he añadido:

  • README.md, que es este fichero.
  • core-nlp-wrapper.js, que es la función que parsea un fichero y te devuelve la estructura, como módulo para node.js.
  • core-nlp-wrapper.bin.js, que es el binario que se puede usar por consola mediante parse_natural_file file.txt.
  • package.json, en su proyecto no usan node.js para nada, por eso este fichero sí es nuestro. También lo usamos para importar una librería que nos permite pasar XML a JSON de NPM, porque su prorgama nos devuelve un XML para representar la estructura.

Ejecución vía consola

parse_natural_file file.txt > file.json

En file.txt va un texto en inglés en un fichero de texto plano.

En file.json encontraremos la salida del procesamiento, en un JSON, que representa un XML, que representa la base de un análisis gramatical.

Ejecución vía API de Node.js

Puedes analizar textos: (o ver test/example.002.js)

const analizador_gramatical = require("core-nlp-wrapper");
const analisis_gramatical = await analizador_gramatical.parse_text("This sentence should be parsed blazing fast by the library.");
console.log(analisis_gramatical);

Y puedes analizar ficheros: (o ver test/example.001.js)

// 1: Preparas el fichero
const fs = require("fs");
const file = "file.txt";
const text = "This is a simple text in a file, written in English, that will be easily parsed by this monster from Stanford.";
fs.writeFileSync(file, text, "utf8");

// 2: Lo analizas
const analizador_gramatical = require("core-nlp-wrapper");
const analisis_gramatical = await analizador_gramatical.parse_file(file);

console.log(analisis_gramatical);

Tabla de categorías

IDCategoría
rootroot
depdependent
auxauxiliary
auxpasspassive auxiliary
copcopula
argargument
agentagent
compcomplement
acompadjectival complement
ccompclausal complement with internal subject
xcompclausal complement with external subject
objobject
dobjdirect object
iobjindirect object
pobjobject of preposition
subjsubject
nsubjnominal subject
nsubjpasspassive nominal subject
csubjclausal subject
csubjpasspassive clausal subject
cccoordination
conjconjunct
explexpletive (expletive “there”)
modmodifier
amodadjectival modifier
apposappositional modifier
11advcladverbial clause modifier
detdeterminer
predetpredeterminer
preconjpreconjunct
vmodreduced, non-finite verbal modifier
mwemulti-word expression modifier
markmarker (word introducing an advcl or ccomp
advmodadverbial modifier
negnegation modifier
rcmodrelative clause modifier
quantmodquantifier modifier
nnnoun compound modifier
npadvmodnoun phrase adverbial modifier
tmodtemporal modifier
numnumeric modifier
numberelement of compound number
prepprepositional modifier
posspossession modifier
possessivepossessive modifier (’s)
prtphrasal verb particle
parataxisparataxis
goeswithgoes with
punctpunctuation
refreferent
sdepsemantic dependent
xsubjcontrolling subject

Versiones

La mínima versión que te diría de usar es la 1.1.0. Y de momento es la última, así que tampoco es muy fiable. Pero tiene unos tests, y en mi PC los pasa. Con npm run test.

1.1.0

12 months ago

1.0.1

12 months ago

1.0.0

12 months ago