当前位置:首页 > JavaScript

js实现ngram

2026-01-31 14:02:58JavaScript

实现N-gram的JavaScript方法

N-gram是一种从文本中提取连续N个项目的序列的方法,常用于自然语言处理、文本挖掘等领域。以下是几种实现方式:

基于字符串的简单实现

function generateNgrams(text, n) {
  const ngrams = [];
  for (let i = 0; i <= text.length - n; i++) {
    ngrams.push(text.substring(i, i + n));
  }
  return ngrams;
}

处理单词级别的N-gram

function wordNgrams(text, n) {
  const words = text.split(/\s+/);
  const ngrams = [];

  for (let i = 0; i <= words.length - n; i++) {
    ngrams.push(words.slice(i, i + n).join(' '));
  }

  return ngrams;
}

支持多种N值的扩展实现

function multiNgram(text, minN = 1, maxN = 3) {
  const result = {};
  const tokens = text.split(/\s+/);

  for (let n = minN; n <= maxN; n++) {
    result[n] = [];
    for (let i = 0; i <= tokens.length - n; i++) {
      result[n].push(tokens.slice(i, i + n).join(' '));
    }
  }

  return result;
}

带频率统计的N-gram

function ngramWithFrequency(text, n) {
  const ngrams = {};
  const words = text.split(/\s+/);

  for (let i = 0; i <= words.length - n; i++) {
    const gram = words.slice(i, i + n).join(' ');
    ngrams[gram] = (ngrams[gram] || 0) + 1;
  }

  return ngrams;
}

处理标点符号和大小写的改进版

function cleanNgrams(text, n) {
  const cleaned = text.toLowerCase().replace(/[^\w\s]/g, '');
  const words = cleaned.split(/\s+/).filter(Boolean);
  const ngrams = [];

  for (let i = 0; i <= words.length - n; i++) {
    ngrams.push(words.slice(i, i + n).join(' '));
  }

  return ngrams;
}

这些实现可以根据具体需求进行调整,比如处理不同语言、添加停用词过滤或实现更复杂的文本预处理步骤。

js实现ngram

标签: jsngram
分享给朋友:

相关文章

js实现跳转

js实现跳转

使用 window.location 跳转 通过修改 window.location.href 或直接使用 window.location 实现页面跳转,适用于普通跳转或带参数的 URL。 // 方…

js实现拖拽

js实现拖拽

实现拖拽的基本步骤 通过监听鼠标事件(mousedown、mousemove、mouseup)实现拖拽功能。以下是核心代码逻辑: const draggableElement = document.…

js实现验证码

js实现验证码

使用Canvas生成图形验证码 在HTML中创建一个Canvas元素用于绘制验证码。通过JavaScript随机生成数字或字母组合,并添加干扰线、噪点等干扰元素增强安全性。 <canvas…

js实现图片上传

js实现图片上传

图片上传的基本实现 使用HTML的<input type="file">元素配合JavaScript的File API可以实现图片上传功能。HTML部分需要创建一个文件选择输入框和一个用于…

js实现图片放大缩小

js实现图片放大缩小

实现图片放大缩小的基础方法 使用CSS的transform: scale()属性可以快速实现图片的放大缩小效果。通过JavaScript动态修改该属性值: const img = document…

jquery.js

jquery.js

jQuery 是一个快速、简洁的 JavaScript 库,简化了 HTML 文档遍历、事件处理、动画设计和 Ajax 交互等操作。以下是关于 jQuery.js 的核心信息和使用方法: 获取 j…