簡體   English   中英

我該如何做“相關標簽”?

[英]How can I do “related tags”?

我的網站上有標簽,我在創建博客文章時將它們一一輸入。 我喜歡 gmail 的新功能,它會詢問您是否想在郵件中包含 X,是否輸入 Y 的名字,並且您經常將它們都包含在同一條消息中。

我想在我的網站上做類似的事情,但我不知道如何在 object 或數據庫中表示標簽“相關性”......想法?

這一切都歸結為在您的帖子的某些特征和某些標簽之間創建關聯,然后 - 當您按下“發布”按鈕時 - 分析新帖子並提出與您的帖子特征匹配的所有標簽。

這可以通過多種方式完成,從“完全硬編碼”的關聯到某種“學習 AI”……以及介於兩者之間的一切。

硬編碼解決方案

這是實現的最簡單的算法。 您應該首先確定您的帖子的哪些特征與標簽相關(例如:如果您將它們標記為“短”或“長”,則它是長度,如果您將它們標記為“多媒體內容”,則存在照片或視頻,等等...... )。 然而,最明顯的是關注帖子中使用了哪些詞。 例如,您可以構建這樣的映射:

tag_hint_words = {'code-development' : ['programming', 
                                        'language', 'python', 'function', 
                                        'object', 'method'],
                  'family' : ['Theresa', 'kids', 
                              'uncle Ben', 'holidays']}

然后,您將檢查您的帖子中是否存在列表中的單詞( []之間的代碼)並建議標簽(之前的單詞: )作為可能的候選者。

一種常見的方法是給出“分數”,或者換句話說,輸入一個數字,表明給定標簽是正確標簽的概率。 例如:如果您的帖子將包含句子...

經過幾個月的編程,我們終於在本叔叔的小屋里度過了暑假。 特蕾莎和孩子們欣喜若狂!

...盡管存在“編程”一詞,但程序應將家庭指示為最有可能使用的標簽,因為有更多的詞暗示。

學習人工智能

上述方法的一個明顯限制是 - 比如說有一天你拿起 java 旁邊的 python - 你可能需要更改你的代碼並包括像“java”或“oracle”這樣的詞。 如果您創建新標簽,這同樣適用。

為了規避這個限制(並獲得一些樂趣..),您可以嘗試實現學習算法。 學習算法是那些在你使用它們的次數越多的情況下改進其結果的算法(所以它們確實......學習。)。 一些算法需要初始訓練(許多垃圾郵件過濾器和語音識別程序需要這個初始“入門”)。 有些沒有。

我絕對不是這方面的專家,但兩種常見的 AI 是:朴素貝葉斯分類器和一些神經網絡

盡管 WP 頁面可能看起來很嚇人,但它們非常容易實現(至少在 Python 中)。 這是 PyCon 2009 上關於“ Easy AI with Python ”主題的演講錄音。 我發現它非常有用,甚至在某種程度上鼓舞人心::)

查找聚類(機器學習算法)。 不要被數學嚇倒,這是一個非常簡單的算法。 查看Machine Learning for Hackers以獲得對許多機器學習算法和方法的更簡單解釋。

你應該看看這篇文章: 任何關於存儲相關關鍵字的數據庫模式的建議?

如果您正在尋找用於存儲相關標簽的架構,它將有所幫助。

多個代理參與的相關性搜索通常使用協作過濾來完成。 你可能想看看。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM