这个问题对我来说是一个挑战,我的朋友不能告诉我如何去做,但他是一个很好的程序员(我认为) 。找到类似的字符串给予关键字,每个关键字都得到了它自己的'权力'
用户可以放入数据库语句。当用户放置一个句子时,它被保存在sentences
表中。 接下来,将句子拆分为单词,将单词的每个单词索引保存到具有拆分句子的标识的表tags
中。
最后,这个词的每个soundax被放入weights
表中,如果有相同的soundex,函数将这个soundex的counter
加1。
(对于那些谁不知道:同音是返回一个字符串的拼音表示(它的音色)函数)的数据库
结构: 一个表sentences
包含两行:id
和sentence
。 其他表tags
包含id
(带有一个句子的id)和tag
(带有一个单词)。 tag
不是真的只是普通的词,而是这个词的soundex。 最后表weights
包含tag
和weight
(带是数字,它告诉我们有多少个这样的标签表tags
)
我的问题是:如何才能让一个函数返回巫类似的句子来给定的字符串。 它应该使用标签(soundex的单词),每个标签应该有自己的权力基于weights
表。 标签,经常使用的标签更重要,然后是更原始的标签。它可以在一个MySQL查询中完成吗?
下一个问题:我认为这种寻找类似句子的方法很好,但是用这个函数的速度是什么? 我需要在我的网站中经常使用它。
好的提示,谢谢。但它还没有解决我的问题 – monthon1 2011-03-23 21:19:57
好吧,一旦你的数据库设计正确,你可以回到类似的句子。看看[这个答案类似的问题](http://stackoverflow.com/questions/4717093/mysql-find-related-articles/4717366#4717366)。在你的情况下,只需用'句子'替换'articles'并根据需要进行修改即可。 – 2011-03-24 13:15:57