NodeJS - 所有短(缩写)字到全字特征模块

时间:2016-09-23 12:30:05

标签: javascript node.js express node-modules

我想将一些缩写词转换为字符串句子的完整单词,在NodeJS中制作简单明了的句子

例如

i'm => I am
i've => I have
w'ill => we will
lets => Let us
it's => It is

我已安装gingerbread并使用此模块仅检查语法错误。是否有任何模块可用于处理这样的文本?

3 个答案:

答案 0 :(得分:1)

JS没有这样的软件包,但是,替换收缩可以有快速而严格的规则

var replacements = {
    "'m":  " am",
    "'ll": " will",
    "'re": " are",
    "n't": " not",
    "'ve": " have",
}

我经常使用它。

但真正的问题是区分包含“他能”,“他愿意”,“他有”的句子 - 简单的算法无法区分“他”。这需要一些严格的模式识别,这只能通过机器学习来实现。

我认为,这就是为什么这样的包装是禁止使用的原因。

<强>更新

事实证明,关于这样的包存在( @itereshchenkov 回答)我错误,但正确关于有意义收缩的性质。使用替换字典的简单包(无论它有多大)无法在不理解上下文的情况下正确地决定使用哪种完整形式。

答案 1 :(得分:1)

英文短文称为收缩。 您可以使用收缩 npm模块npm install contractions

使用起来非常简单。快速举例:

let contractions = require('contractions');

console.log(contractions.expand("I don't know who ya'll are."));
// Outputs: I do not know who you all are. 

console.log(contractions.contract("You all will have not seen this."));
// Outputs: Y'all'll'ven't seen this. 

您可以在此处找到更多信息https://www.npmjs.com/package/contractions

答案 2 :(得分:0)

var replacements = {
  "I'm": "I am",
  "we'll": "we will"
}

var sentence = "I'm sure we'll have a good time."

for (var k in replacements) {
  sentence = sentence.replace(k, replacements[k])
}

console.log(sentence)