だら$ちっぷす

仕事の覚書です

coreNLPをnode.jsから呼び出す

coreNLP を呼び出せる node.js のライブラリ一覧が記されていました
stanfordnlp.github.io
今回は、この中の、CoreNLP-client を使わせていただきます^^

github.com

まずはインストール

> npm install corenlp-client


プログラムはこんな感じ

const StanfordCoreNLPClient = require('corenlp-client');
const client = new StanfordCoreNLPClient("http://localhost:9000","tokenize,ssplit,pos,lemma,ner");


const text = ""this is a pen";
var result = await client.annotate(text);


coreNLPサーバは動いているのが大前提です


はー、できたできた(´∀`*) と思ってたら、物言いが入りました。><
"covid-19" が "covid" "-" "19" になるのはいかがなものか、ということです
たしかに。。。

tokenize.options:  splitHyphenated=false

こういうオプションをつけたらできるよ!と言われたのですが、corenlp-clientにはそのようなオプションをつける余地がありません


と、いうわけで、corenlp-clientを使うのはあきらめて、request-promiseを使うことにしました

インストール

> npm install request-promise


プログラム

const req_promise = require('request-promise');


var result = await req_promise(
{
    method: 'POST',
    uri:    'http://localhost:9000' + '/?properties={' +
                '"annotators": "tokenize,ssplit,pos,lemma,ner",' +
                '"tokenize.options": "splitHyphenated=false",' +
                '"outputFormat": "json"' +
            '}',
    body:   text
});
result = JSON.parse(result);