如何避免自然的为node.js拆分带有特殊字符的单词

How to avoid natural for node.js splitting words with special characters

本文关键字:特殊字符 单词 拆分 node 何避免 自然 js      更新时间:2023-09-26

我正在使用节点自然标记器特性,它将一个句子分成几个单词。通常它的作用是

var natural = require('natural'),
tokenizer = new natural.WordTokenizer();
console.log(tokenizer.tokenize("your dog has't flees."));
// Returns [ 'your', 'dog', 'has', 'n't, 'flees' ]

它可以很好地工作,但是,当与德语或法语单词一起使用时,它将单词分成两个,例如

var natural = require('natural'),
tokenizer = new natural.WordTokenizer();
console.log(tokenizer.tokenize("fußball"));
// Returns ['fu', 'ball']

这是不正确的

有人知道怎么避免吗?

或者你知道在JavaScript/Node.js中把句子分成单词的更简单的方法吗?

谢谢!

var data = "your fußball, hasn't! flees.";
// Remove unwanted punctuation, in this case full-stops,
// commas, and exclamation marks.
data = data.replace(/[.,!]/g, '');
// split the words up
data.split(' '); // ["your", "fußball", "hasn't", "flees"]
演示

自然文档状态

[…目前,大多数算法都是针对英语的

所以,如果没有你的一些工作,我不指望它能开箱即用。

但是,如果您想要做的只是沿着空白边界分割字符串,则使用如下内容:

var s = "your dog hasn't flees.";
console.log(s.split(/'s+/)); // ["your", "dog", "hasn't", "flees."]