這個問題對我來說是一個挑戰,我的朋友不能告訴我如何去做,但他是一個很好的程序員(我認爲) 。找到類似的字符串給予關鍵字,每個關鍵字都得到了它自己的'權力'
用戶可以放入數據庫語句。當用戶放置一個句子時,它被保存在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