当前位置:首页 > JavaScript

js 实现ai

2026-02-01 19:51:02JavaScript

使用 TensorFlow.js 实现基础 AI 功能

TensorFlow.js 是一个基于 JavaScript 的机器学习库,可以直接在浏览器或 Node.js 中运行。以下是实现一个简单的图像分类模型的示例:

// 加载 TensorFlow.js
import * as tf from '@tensorflow/tfjs';

// 定义简单模型
const model = tf.sequential();
model.add(tf.layers.dense({units: 1, inputShape: [1]}));

// 编译模型
model.compile({
  loss: 'meanSquaredError',
  optimizer: 'sgd'
});

// 训练数据
const xs = tf.tensor2d([1, 2, 3, 4], [4, 1]);
const ys = tf.tensor2d([1, 3, 5, 7], [4, 1]);

// 训练模型
await model.fit(xs, ys, {epochs: 10});

使用预训练模型进行图像识别

可以利用现成的 MobileNet 模型快速实现图像分类功能:

js 实现ai

// 加载 MobileNet 模型
const mobilenet = require('@tensorflow-models/mobilenet');

// 加载图像
const img = document.getElementById('img');

// 加载并运行模型
async function run() {
  const model = await mobilenet.load();
  const predictions = await model.classify(img);
  console.log('Predictions: ', predictions);
}

run();

实现简单聊天机器人

使用自然语言处理库构建基础对话系统:

js 实现ai

// 使用 Natural 库处理自然语言
const natural = require('natural');
const tokenizer = new natural.WordTokenizer();

// 简单问答对
const responses = {
  "hello": "Hi there!",
  "how are you": "I'm just a program, but thanks for asking!",
  "default": "I don't understand that yet."
};

// 处理用户输入
function getResponse(input) {
  const tokens = tokenizer.tokenize(input.toLowerCase());

  if (tokens.includes("hello")) {
    return responses["hello"];
  } else if (tokens.includes("how") && tokens.includes("you")) {
    return responses["how are you"];
  }

  return responses["default"];
}

实现推荐系统算法

基于用户行为的简单协同过滤推荐:

// 用户-物品评分矩阵
const ratings = {
  'Alice': {'Item1': 5, 'Item2': 3},
  'Bob': {'Item1': 4, 'Item2': 2}
};

// 计算相似度
function cosineSimilarity(vecA, vecB) {
  const dotProduct = Object.keys(vecA)
    .reduce((sum, key) => sum + (vecA[key] * (vecB[key] || 0)), 0);

  const magnitudeA = Math.sqrt(Object.values(vecA)
    .reduce((sum, val) => sum + val * val, 0));

  const magnitudeB = Math.sqrt(Object.values(vecB)
    .reduce((sum, val) => sum + val * val, 0));

  return dotProduct / (magnitudeA * magnitudeB);
}

// 获取推荐
function getRecommendations(user) {
  const similarities = {};

  for (const otherUser in ratings) {
    if (otherUser !== user) {
      similarities[otherUser] = cosineSimilarity(
        ratings[user], ratings[otherUser]
      );
    }
  }

  // 返回相似度最高的用户喜欢的物品
  const mostSimilar = Object.keys(similarities)
    .reduce((a, b) => similarities[a] > similarities[b] ? a : b);

  return Object.keys(ratings[mostSimilar])
    .filter(item => !(item in ratings[user]));
}

在浏览器中实现手势识别

使用 TensorFlow.js 的手势识别模型:

// 加载手势识别模型
const handpose = require('@tensorflow-models/handpose');

// 从摄像头获取视频流
const video = document.getElementById('video');
navigator.mediaDevices.getUserMedia({video: true})
  .then(stream => video.srcObject = stream);

// 运行手势检测
async function detectGestures() {
  const model = await handpose.load();
  const predictions = await model.estimateHands(video);

  if (predictions.length > 0) {
    const gestures = predictions[0].annotations;
    console.log('Detected hand landmarks:', gestures);
  }

  requestAnimationFrame(detectGestures);
}

detectGestures();

这些示例展示了 JavaScript 实现 AI 功能的多种可能性,从简单的机器学习模型到预训练的复杂模型应用。根据具体需求可以选择合适的工具和库进行开发。

标签: jsai
分享给朋友:

相关文章

js防抖和节流实现

js防抖和节流实现

防抖(Debounce)的实现 防抖的核心思想是在事件被触发后,延迟执行回调函数。如果在延迟时间内再次触发事件,则重新计时。适用于输入框搜索、窗口大小调整等场景。 function debounce…

js轮播图实现原理

js轮播图实现原理

轮播图的基本原理 轮播图通过动态切换显示的内容(图片、文本等)实现视觉上的滑动效果。核心原理是利用CSS和JavaScript控制元素的显示与隐藏,或通过变换位置实现滑动动画。 实现方法一:CSS…

js实现报表

js实现报表

使用JavaScript实现报表 在JavaScript中实现报表功能可以通过多种方式完成,常见的方法包括使用原生JavaScript、第三方库(如Chart.js、D3.js)或结合后端数据渲染。以…

js实现点击显示和隐藏

js实现点击显示和隐藏

实现点击显示和隐藏的JavaScript方法 使用classList.toggle切换类名 通过添加/移除CSS类控制元素的显示与隐藏,需提前在CSS中定义隐藏样式(如display: none)。…

js计算器的实现

js计算器的实现

实现基础结构 HTML部分需要创建计算器的基本框架,包含显示区域和按钮。使用<div>容器包裹整个计算器,内部设置一个显示屏和多个按钮。 <div class="calculato…

js 实现图片 放大

js 实现图片 放大

使用 CSS transform 实现图片放大 通过 CSS 的 transform: scale() 属性可以实现图片的平滑放大效果。结合 JavaScript 监听鼠标事件控制放大状态: con…