2016-12-30 28 views
0

我正在製作一個單詞表的列表。這將是這樣的。同一表中的屬性之間的關係

| id | words | 
................. 
|1 | good  | 
|2 | bad  | 
|3 |benificial| 
|4 | big  | 
|5 | adept | 

我需要從表中找到相似的單詞。例如,有益嫺熟是類似的單詞。當從一個MySQL查詢中搜索一個詞我需要找到與它相似的單詞。一個單詞可以有多個來自表格的類似單詞。我怎樣才能實現這個?請幫忙。

更新:如果我查的單詞善於,我應該得到有益作爲結果。例如,當通過搜索表單搜索某個詞時,我想在我的網頁上顯示類似的詞。

如果良好的通過,那麼這個表單搜索,

好:有益,擅長

如果有益搜索然後,

是有益的:好,擅長。

如果搜索到錯誤,則會顯示相關的類似錯誤的單詞。的相似字的數目並不限於(即應顯示從數據庫中的所有類似的詞。)

+0

列單詞是否包含多個單詞?你會分享一些你的數據的例子嗎? –

+0

我認爲我的問題有點誤導。它應該是表格中相同屬性之間的關係。我編輯了這篇文章,希望它更清楚。請幫忙。 –

回答

0

WHERE通過的wordID創建RelatedWords表這樣

| WordId | RelatedWordId | 
............................. 
|1  | 3    | 
|1  | 5    | 

然後。您可以將相關單詞的ID作爲結果。

+0

這不會使桌子變得更大。例如,當我必須搜索**嫺熟**這個詞時,它應該顯示**好**和**有益**。其他詞也一樣。 –

+0

@Sajit Khadka:這不會使「桌子」變大。這是一個*附加*表。是的,它比詞語表中的詞條更多:好 - >有益,好 - >熟練,有益 - >好,但爲什麼你對桌子大小感到如此擔心?硬盤只有10MB左右的時間已經過去了。 –

+0

根據不同的語境,詞有不同的含義。例如,* good *可以是一個名詞(存放在bin 17中的好東西)。你如何處理這個問題? – TommCatt

0

您需要一個詞組表,換句話說:一個同義詞表。

字表

 
id | word 
---+----- 
1 | good 
2 | fair 
3 | just 
4 | pretty 

同義詞表

 
groupkey | id_word 
---------+-------- 
GOOD  | 1 
GOOD  | 2 
GOOD  | 3 
PRETTY | 2 
PRETTY | 4 

我用文字在這裏爲groupkey從而得到了這個想法更清楚一點,但你當然可以只用一些沒有固有含義的數字代替。

+0

組合鍵中的單詞不重複嗎?同義詞表不會太長如果有1000個單詞? –

+0

是的,當然,這裏重複着單詞。 「公平」可能意味着「好」,也可能意味着「好」,但「好」和「漂亮」並不意味着相同。所以「公平」在桌上是兩次,一次在「好」組,一次在「漂亮」組。一張桌子不會「太長」;數據存儲需要儘可能的大。別擔心。 (畢竟,我認爲這樣的同義詞表大概是單詞表的四倍,因爲不是每個單詞都有幾個含義。) –