我想在Android手機應用程序的工作,我有一個功能根據興趣和位置找到匹配。許多約會應用程序已經在做一些有點功能,例如Tinder根據位置,性別和年齡等進行匹配。基於興趣和位置的算法爲Android手機應用程序
如果已經完成,我不想重新發明輪子。我已搜查谷歌和一些建議使用聚類算法此Algorithm for clustering people with similar interestsUser similarities algorithm
讓我們我有用戶
User1: {location: "Delhi, India", interests: ["Jogging", "Travelling", "Praying"] }
User2: {location: "Noida, India", interests: ["Running", "Eating", "Praying"] }
User3: {location: "Bangalore, India", interests: ["Exercise", "Visiting new places", "Chanting"] }
我寫匹配少數低於標準匹配算法在這個JSON格式的數據 -
如果用戶1對「慢跑」感興趣並且另一個用戶2對「跑步」感興趣,以便慢跑和跑步或者是一種練習,所以他們應該匹配該個人資料以及它應該位置明智也最接近應該在上面。
該算法,當按比例運行時,應該相當高效。這意味着我想避免將每個用戶分別與每個其他用戶進行比較。對於N個用戶,這是一個O(N^2)操作。理想情況下,我想開發某種「分數」,我可以爲每個用戶單獨生成一個「分數」,因爲這隻涉及循環所有用戶一次。然後,我可以找到具有類似分數的其他用戶,並根據該分數確定最佳匹配。
任何人都可以建議我用的我怎麼能與firebase-cloud-function
和firebase-database
幫助實現這一目標的一些實施。
你的意思是,首先我需要一個配置文件的一些數據庫,隨機和明智的位置開始,一旦我擁有的用戶數據,然後開始關注基礎配套? –
不要開始完全隨機的。但有一些廣泛的啓發式。例如,給予完全匹配輕微的優先權。一旦你有足夠的數據放棄啓發式,並採用基於機器學習的模型。 – ElKamina
我陷入了困境。我是新爲這些基於還挺機器學習模型,你有一個想法,我應該怎麼跟我的情況下開始的?我應該在我的服務器上運行腳本還挺cron作業,其分析其分佈匹配與否數據庫中的所有配置文件數據,然後映射配置文件?像數據庫中的每個配置文件的匹配屬性具有那些匹配的配置文件ID? –