情感分析结合推荐系统的技术实现与优化
2026/10/28 22:05:06
sudoapt-getupdate&&sudoapt-getinstall-y --no-install-recommendscurlgnupg2curl-fsSL https://nvidia.github.io/libnvidia-container/gpgkey|sudogpg --dearmor -o /usr/share/keyrings/nvidia-container-toolkit-keyring.gpg\&&curl-s -L https://nvidia.github.io/libnvidia-container/stable/deb/nvidia-container-toolkit.list|\sed's#deb https://#deb [signed-by=/usr/share/keyrings/nvidia-container-toolkit-keyring.gpg] https://#g'|\sudotee/etc/apt/sources.list.d/nvidia-container-toolkit.listsudoapt-getupdatesudoapt-getinstall-y nvidia-container-toolkit# 生成配置文件sudonvidia-ctk runtime configure --runtime=docker# 重启Docker服务sudosystemctl restartdockerollama run qwen3:8btest数据库。--1. 准备工作:如果存在旧表则删除,保证脚本可重复运行 DROP TABLE IF EXISTS order_items;DROP TABLE IF EXISTS orders;DROP TABLE IF EXISTS products;DROP TABLE IF EXISTSusers;--2. 建表语句(DDL)-- 用户表 CREATE TABLEusers(idINT PRIMARY KEY AUTO_INCREMENT, username VARCHAR(50)NOT NULL, email VARCHAR(100), balance DECIMAL(10,2)DEFAULT0.00, created_at DATETIME DEFAULT CURRENT_TIMESTAMP);-- 商品表 CREATE TABLE products(idINT PRIMARY KEY AUTO_INCREMENT, product_name VARCHAR(100)NOT NULL, category VARCHAR(50), price DECIMAL(10,2)NOT NULL, stock INT DEFAULT0);-- 订单表 CREATE TABLE orders(idINT PRIMARY KEY AUTO_INCREMENT, user_id INT NOT NULL, order_date DATETIME NOT NULL, total_amount DECIMAL(10,2)NOT NULL, status TINYINT DEFAULT0COMMENT'0:Pending, 1:Paid, 2:Shipped, 3:Completed', FOREIGN KEY(user_id)REFERENCES users(id));-- 订单详情表 CREATE TABLE order_items(idINT PRIMARY KEY AUTO_INCREMENT, order_id INT NOT NULL, product_id INT NOT NULL, quantity INT NOT NULL, price DECIMAL(10,2)NOT NULL, FOREIGN KEY(order_id)REFERENCES orders(id), FOREIGN KEY(product_id)REFERENCES products(id));--1. 清理旧数据(保证脚本可重复运行)DROP TABLE IF EXISTS order_items;DROP TABLE IF EXISTS orders;DROP TABLE IF EXISTS products;DROP TABLE IF EXISTSusers;--2. 建表语句(DDL)CREATE TABLEusers(idINT PRIMARY KEY AUTO_INCREMENT, username VARCHAR(50)NOT NULL, email VARCHAR(100), balance DECIMAL(10,2)DEFAULT0.00, created_at DATETIME DEFAULT CURRENT_TIMESTAMP);CREATE TABLE products(idINT PRIMARY KEY AUTO_INCREMENT, product_name VARCHAR(100)NOT NULL, category VARCHAR(50), price DECIMAL(10,2)NOT NULL, stock INT DEFAULT0);CREATE TABLE orders(idINT PRIMARY KEY AUTO_INCREMENT, user_id INT NOT NULL, order_date DATETIME NOT NULL, total_amount DECIMAL(10,2)NOT NULL, status TINYINT DEFAULT0COMMENT'0:Pending, 1:Paid, 2:Shipped, 3:Completed', FOREIGN KEY(user_id)REFERENCES users(id));CREATE TABLE order_items(idINT PRIMARY KEY AUTO_INCREMENT, order_id INT NOT NULL, product_id INT NOT NULL, quantity INT NOT NULL, price DECIMAL(10,2)NOT NULL, FOREIGN KEY(order_id)REFERENCES orders(id), FOREIGN KEY(product_id)REFERENCES products(id));--3. 修正后的数据填充存储过程 DELIMITER$$CREATE PROCEDURE generate_mock_data()BEGIN --===变量声明区(必须在最前面)===DECLARE i INT DEFAULT1;DECLARE item_j INT;-- 【修复】这里声明了内层循环变量 item_j DECLARE num_users INT DEFAULT500;DECLARE num_products INT DEFAULT100;DECLARE num_orders INT DEFAULT1000;DECLARE random_user_id INT;DECLARE random_product_id INT;DECLARE random_qty INT;DECLARE random_price DECIMAL(10,2);DECLARE random_status INT;DECLARE days_back INT;-- --- A. 填充用户表 --- WHILE i<=num_users DO INSERT INTOusers(username, email, balance)VALUES(CONCAT('user_', i), CONCAT('user_', i,'@example.com'), ROUND(RAND()*5000,2));SET i=i +1;END WHILE;-- --- B. 填充商品表 --- SET i=1;WHILE i<=num_products DO INSERT INTO products(product_name, category, price, stock)VALUES(CONCAT('Product ', i,' - ', ELT(FLOOR(1+ RAND()*5),'Electronics','Clothing','Home','Books','Sports')), ELT(FLOOR(1+ RAND()*5),'Electronics','Clothing','Home','Books','Sports'), ROUND(RAND()*200+10,2), FLOOR(RAND()*100));SET i=i +1;END WHILE;-- --- C. 填充订单表及详情 --- SET i=1;WHILE i<=num_orders DO SET random_user_id=FLOOR(1+ RAND()* num_users);SET random_status=FLOOR(RAND()*4);SET days_back=FLOOR(RAND()*365);INSERT INTO orders(user_id, order_date, total_amount, status)VALUES(random_user_id, DATE_SUB(NOW(), INTERVAL days_back DAY),0.00, random_status);SET @current_order_id=LAST_INSERT_ID();-- --- D. 填充订单详情(内层循环)--- -- 初始化内层计数器 SET item_j=1;-- 随机生成1到3个商品项 WHILE item_j<=FLOOR(1+ RAND()*3)DO SET random_product_id=FLOOR(1+ RAND()* num_products);SET random_qty=FLOOR(1+ RAND()*5);SELECT price INTO random_price FROM products WHEREid=random_product_id;INSERT INTO order_items(order_id, product_id, quantity, price)VALUES(@current_order_id, random_product_id, random_qty, random_price);UPDATE orders SET total_amount=total_amount +(random_qty * random_price)WHEREid=@current_order_id;SET item_j=item_j +1;END WHILE;SET i=i +1;END WHILE;END$$DELIMITER;--4. 执行存储过程 CALL generate_mock_data();--5. 验证结果 SELECT'Users'AS Table_Name, COUNT(*)AS Row_Count FROMusersUNION ALL SELECT'Products', COUNT(*)FROM products UNION ALL SELECT'Orders', COUNT(*)FROM orders UNION ALL SELECT'Order_Items', COUNT(*)FROM order_items;curlhttp://localhost:11434/v1/chat/completions -H"Content-Type: application/json"-d'{ "model": "deepseek-r1:32b", "messages": [ { "role": "system", "content": "You are a helpful assistant." }, { "role": "user", "content": "Hello!" } ] }'