ES千人千面推薦系統


借這個項目正好系統學習 ES 與 推薦算法

需求分析

整體架構

落地實現

  • 導入 github 項目,爆紅問題
      Failure to transfer org.springframework.boot:spring-boot-starter-parent:pom:2.0.1.RELEASE from https...
      問題是:依賴包下載不下來
    
      解決辦法:
    
      在終端下進入項目所在的目錄用mvn compile執行即可
    
      或者點擊pom.xml,右鍵,maven install   實在不行加上 -U 參數
    

ES 的學習

  • match 與 term 的區別
       - match 是進行分詞后的 每個詞匹配的 or
       - term  是不進行分詞的 整詞精確匹配, 這一點跟 keyword 很像
       GET /movie/_search
      {
        "query":{
          "match":{"title":"steve"}
        }
      }
    
      GET /movie/_search
      {
        "query":{
          "term":{"title":"steve"}
        }
      }
    
    
      GET /movie/_analyze
      {
        "analyzer": "english",
        "field":"title",
        "text":"Frank Li"
      }
    
      analyzer:english / standard =》 默認標准分詞解析器只是根據標點符號進行分詞, english 可以去掉停用詞 with of 這些,並小寫
    
     // or 可以改為 and 
     GET /movie/_search
      {
        "query":{
        "match":{
          "title":{
            "query":"basketball good solution available alien",
            "operator": "or"
          }
        }
      }
    }
    
    // 最少匹配分詞后兩個
    GET /movie/_search
    {
      "query":{
        "match":{
          "title":{
            "query":"basketball with good boy alien",
            "operator": "or",
            "minimum_should_match": 2
          }
        }
      }
    }
    
    GET /movie/_search
    {
      "query": {
        "multi_match": {
          "query": "good boy man love basketball bad news",
          "fields": ["title", "overview"]
        }
      }
    }
    

極其重要的 TF 詞頻 - IDF 逆文檔頻率+ TF NORM 詞頻歸一化

推薦系統

ALS  => alternating least squares  交替最小二乘法


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM