Pluralize / Singularize предложение, используя компромиссную библиотеку в JavaScript - PullRequest
0 голосов
/ 03 декабря 2018

Я пытаюсь использовать компромиссную библиотеку для множественного / сингулярного предложений, которые принимают следующие формы:

const str1 = "10 dog";
const str2 = "a man and 3 cat";
const str3 = "a bear";

Если я использую pluralize метод из компромисса, он возвращаетсписок существительных или глаголов во множественном числе, но я пытаюсь выяснить, как получить его для множественного числа всей строки.

const nlp = require("compromise");
const doc = nlp(str2);
const finalStr = doc.nouns().toPlural().out("normal"); // "man cats" instead of "a man and 3 cats";

1 Ответ

0 голосов
/ 03 декабря 2018

Это будет работать, потому что сначала будут идентифицированы все существительные:

doc.match("#Noun").nouns().toPlural().out("normal");

edit

Я вижу, откуда возникла проблема.Взгляните ниже на два журнала консоли:

const nlp = require("compromise")
let doc = nlp("a man and 3 cat")
doc.match("#Noun").nouns().toPlural()
console.log(doc.out("normal")) // "a man and 3 cats"

let doc2 = doc.match("#Noun").nouns().toPlural()
console.log(doc2.out("normal")) // "man cats"

Обратите внимание, что во втором примере я сохраняю его в новую переменную.Поэтому я думаю, что .match("#Noun") не был необходим, и вы были правы с первого раза - просто не сохраняйте его в finalStr.

...