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

我想在NodeJS中将一些缩写词转换成string句子的全部单词来做简单明了的句子

例如

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

我已经安装了gingerbread ,使用这个模块只是检查语法错误。 是否有任何模块可用于处理这样的文本?

英文简称叫收缩 。 您可以使用收缩 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. 

你可以在这里find更多信息https://www.npmjs.com/package/contractions

JS没有这样的包,但是,取代收缩可能有快速和硬性的规则:

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

我不时使用它。

但真正的问题是要区分包含“他可以”,“他会”,“他有”的句子 – 没有办法简单的algorithm可以区分“他会”。 这将需要一些严重的模式识别,这只能通过机器学习来完成。

我想这就是为什么这样的套餐是不行的。


更新:

事实certificate,我对这种包裹存在是错误的 (来自@itereshchenkov答案),但对于有意义的收缩的性质是正确的 。 简单的使用replace字典(不pipe它有多大)的包不能正确地决定使用哪个完整的表单而不理解上下文。

 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)