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