gpt4 book ai didi

javascript - 如何在 Compromise.js 中匹配任何时态的动词

转载 作者:行者123 更新时间:2023-12-01 00:55:27 25 4
gpt4 key购买 nike

相当优秀的compromise.js除其他外,还提供匹配功能。

我正在努力让它适用于动词的变体:

var nlp = require('compromise');
var sentences = [
'I am discharging you',
'I have discharged you',
'I will discharge him',
'I discharged you',
'Monkey'
];

let doc = nlp(sentences.join('. '));
console.log(doc.match('discharge').sentences().out('text'));

/* Output:
discharge
*/

以上仅匹配预期 4 个句子中的 1 个。我怎样才能让它匹配上面显示的所有 4 个包含单词“discharge”的共轭体的句子?

运行以下命令可以正确找到动词“discharge”的变形:

doc.verbs().conjugate()

/* Output:
[ { PastTense: 'discharged',
PresentTense: 'discharges',
Infinitive: 'discharge',
Gerund: 'discharging',
Actor: 'discharger',
FutureTense: 'will discharge' },
{ PastTense: 'had',
PresentTense: 'has',
Infinitive: 'have',
Gerund: 'having',
Actor: 'haver',
Participle: 'had',
FutureTense: 'will have' },
{ PastTense: 'discharged',
PresentTense: 'discharges',
Infinitive: 'discharge',
Gerund: 'discharging',
Actor: 'discharger',
FutureTense: 'will discharge' },
{ PastTense: 'discharged',
PresentTense: 'discharges',
Infinitive: 'discharge',
Gerund: 'discharging',
Actor: 'discharger',
FutureTense: 'will discharge' } ]
*/

最佳答案

The goal of .match() is to provide a quick way to describe any grammatical pattern, or match condition, using a human-readable, and mostly-reasonable style. Ref

您可以在match中使用regex模式,并且不需要句子

var nlp = nlp
var sentences = ['I am discharging you','I have discharged you','I will discharge him','I discharged you','Monkey'];

let doc = nlp(sentences.join('. '));

console.log(doc.match('/discharg(ing|e|ed)/').out('text'));

// to capture all verbs

console.log(doc.match('#verb').out('array'));
<script src="https://unpkg.com/compromise@latest/builds/compromise.min.js"></script>

关于javascript - 如何在 Compromise.js 中匹配任何时态的动词,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56623676/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com