gpt4 book ai didi

php - sql查询分割句子并搜索每个单词的结果

转载 作者:行者123 更新时间:2023-11-29 18:23:51 25 4
gpt4 key购买 nike

我有一个来自 eBay 的关于类别名称的 API 响应,即:“E Liquids & E Cig Cartridges”,问题是,我无法搜索“E”,这会在我自己的类别列表中带回太多结果,所以我会要扫描句子中大于 3 个字母甚至 4 个字母的单词,我需要搜索每个单词,然后查找我自己的类别列表,看看哪个最适合 API 调用中的未知句子,并将类别设置为最佳匹配,我'我不是 sql 向导,因此我的问题。我想创建一个临时 sql 函数然后循环直到找到结果。预先感谢您提供的任何帮助。

最佳答案

这是实现此目的的一种方法:

/*
CREATE TABLE testData(result INT, term CHAR(255));
INSERT INTO testData VALUES
(1, 'Cig'),
(2, 'Liquids'),
(3, 'E');
*/

SET @NGram = 'E Liquids & E Cig Cartridges';

DELIMITER $

DROP PROCEDURE IF EXISTS parseNGram$

CREATE PROCEDURE parseNGram(VNGram TEXT)
BEGIN

DECLARE VN, VLoopPos, VGramLength INTEGER;
DECLARE VGram CHAR(255);

SET VN = CHAR_LENGTH(VNGram) - CHAR_LENGTH(REPLACE(VNGram, ' ', '')) + 1;
SET VLoopPos = 0;

searchLoop: WHILE VLoopPos < VN DO

SET VGramLength = LOCATE(' ', VNGram);
SET VGram = LEFT(VNGram, VGRamLength);
SET VNGram = RIGHT(VNGram, CHAR_LENGTH(VNGram) - VGramLength);

IF CHAR_LENGTH(VGram) > 1 THEN

# Do someting with the required token, here is an example
SELECT result FROM testData WHERE term = VGram LIMIT 1;
LEAVE searchLoop;
END IF;

END WHILE;

END$

DELIMITER ;

CALL parseNGram(@NGram);

如果我错过了什么,请告诉我,

问候,

詹姆斯

关于php - sql查询分割句子并搜索每个单词的结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46359966/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com