如果我有一个字符串,如何将其拆分为单词数组并过滤掉一些停用词?我只想要长度大于2的单词。
如果我的字符串是:
如果我的字符串是:
var text = "This is a short text about StackOverflow.";
我可以用以下方法拆分它:
var words = text.split(/\W+/);
但是使用 split(/\W+/)
,我可以得到所有单词。我可以通过以下方式检查这些单词的长度至少为 2:
function validate(token) {
return /\w{2,}/.test(token);
}
但是我想我可以使用正则表达式更加智能/快速地完成这项任务。
我还有一个数组var stopwords = ['has', 'have', ...]
,这些词不应该出现在数组中。
实际上,如果我能找到一种过滤停用词的方法,我只需要将所有字母a、b、c、...、z添加到停用词数组中,以仅接受至少包含2个字符的单词。
text.split(/\W+/).filter(validate)
没有任何问题。不需要编写过于复杂的正则表达式。 - Bergitext.split(/\W+|\b\w\b/)
去除非单词符号和长度小于1的所有单词。 - Wiktor Stribiżew