js 实现ai
使用 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 模型快速实现图像分类功能:
// 加载 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();
实现简单聊天机器人
使用自然语言处理库构建基础对话系统:
// 使用 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 功能的多种可能性,从简单的机器学习模型到预训练的复杂模型应用。根据具体需求可以选择合适的工具和库进行开发。







