mysql中如何检测文本的相似性,比如标题或文章的相似性

方法有三种
第一种,将文章的标题进行分词,存在一个单独的分词表中,结构如下
| 文章id article_id | 分词 word |
|---|---|
| 1 | 博客 |
| 1 | 如何 |
| 1 | 编写 |
| 2 | 博客 |
| 2 | 如何 |
| 2 | 发布 |
好了,接下来我们通过sql来计算每篇文章标题中相似词的个数
select count(*) from wordstring where artcle_id = 2 and word in (select word from wordstring where article_id= 1);这个过程可以写成一个存储过程
第二种,单独写个存储过程
CREATE FUNCTION `wordsimilarity`( s1 text, s2 text) RETURNS int(11)
DETERMINISTIC
BEGIN
DECLARE s1_len, s2_len, i, j, c, c_temp, cost INT;
DECLARE s1_char CHAR;
DECLARE cv0, cv1 text;
SET s1_len = CHAR_LENGTH(s1), s2_len = CHAR_LENGTH(s2), cv1 = 0x00, j = 1, i = 1, c = 0;
IF s1 = s2 THEN
RETURN 0;
ELSEIF s1_len = 0 THEN
RETURN s2_len;
ELSEIF s...点击查看剩余70%
网友评论0