mysql中如何检测文本的相似性的三种方法

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

mysql中如何检测文本的相似性的三种方法

方法有三种

第一种,将文章的标题进行分词,存在一个单独的分词表中,结构如下

分词表(wordstring)
文章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%

{{collectdata}}

网友评论0