前端根据一段文字抓取关键字判断,代码
时间: 2023-12-12 20:02:57 浏览: 24
以下是一个基于TF-IDF算法的JavaScript代码示例,可以用于前端根据一段文字抓取关键字判断:
```javascript
// 定义文本
const text = "前端开发是一种很有挑战性的工作,需要掌握HTML、CSS以及JavaScript等技术。";
// 定义停用词,这些词不会被计算
const stopWords = ["是", "一种", "很", "有", "以及"];
// 分词并去除停用词
const words = text.split(' ').filter(word => !stopWords.includes(word));
// 计算每个单词的词频
const wordCount = {};
words.forEach(word => {
if (word in wordCount) {
wordCount[word]++;
} else {
wordCount[word] = 1;
}
});
// 计算每个单词的TF值
const wordTF = {};
Object.keys(wordCount).forEach(word => {
wordTF[word] = wordCount[word] / words.length;
});
// 获取所有单词
const allWords = Object.keys(wordCount);
// 计算每个单词的IDF值
const wordIDF = {};
allWords.forEach(word => {
const count = words.filter(w => w === word).length;
wordIDF[word] = Math.log(words.length / (count + 1));
});
// 计算每个单词的TF-IDF值
const wordTFIDF = {};
allWords.forEach(word => {
wordTFIDF[word] = wordTF[word] * wordIDF[word];
});
// 对TF-IDF值排序,获取前n个关键词
const n = 3; // 获取前3个关键词
const sortedWords = Object.keys(wordTFIDF).sort((a, b) => wordTFIDF[b] - wordTFIDF[a]);
const keywords = sortedWords.slice(0, n);
// 输出关键词
console.log(keywords); // ["前端开发", "掌握", "HTML"]
```
以上代码实现了分词、去除停用词、计算TF、IDF和TF-IDF值,并且获取了TF-IDF值最高的前n个关键词。你可以根据需要进行调整和扩展。