如何避免node.js使用特殊字符拆分单词的自然

时间:2014-05-09 11:06:20

标签: javascript regex node.js nlp

我正在使用node natural标记器功能,它将一个句子分成单词。通常它应该作为

工作
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中将句子分成单词的简单方法吗?

谢谢!

2 个答案:

答案 0 :(得分:1)

自然文档状态

  

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

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

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

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

答案 1 :(得分:1)

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"]

Demo