Pluralize/ Singularize предложение, используя компромиссную библиотеку в JavaScript

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

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 ответ

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

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

редактировать

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

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,

Другие вопросы по тегам