麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁(yè) > 編程 > JavaScript > 正文

對(duì)JavaScript的全文搜索實(shí)現(xiàn)相關(guān)度-評(píng)分的功能的方法

2019-11-02 14:51:20
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友

   這篇文章主要介紹了對(duì)JavaScript的全文搜索實(shí)現(xiàn)相關(guān)度評(píng)分的功能的方法,采用了一個(gè)名為Okapi BM25的算法,文中亦有介紹,需要的朋友可以參考下

  全文搜索,與機(jī)器學(xué)習(xí)領(lǐng)域其他大多數(shù)問(wèn)題不同,是一個(gè) Web 程序員在日常工作中經(jīng)常遇到的問(wèn)題。客戶可能要求你在某個(gè)地方提供一個(gè)搜索框,然后你會(huì)寫一個(gè)類似 WHERE title LIKE %:query% 的 SQL 語(yǔ)句實(shí)現(xiàn)搜索功能。一開(kāi)始,這是沒(méi)問(wèn)題,直到有一天,客戶找到你跟你說(shuō),“搜索出錯(cuò)啦!”

  當(dāng)然,實(shí)際上搜索并沒(méi)有“出錯(cuò)”,只是搜索的結(jié)果并不是客戶想要的。一般的用戶并不清楚如何做精確匹配,所以得到的搜索結(jié)果質(zhì)量很差。為了解決問(wèn)題,你決定使用全文搜索。經(jīng)過(guò)一陣枯燥的學(xué)習(xí),你開(kāi)啟了 MySQL 的 FULLTEXT 索引,并使用了更高級(jí)的查詢語(yǔ)法,如 “MATCH() … AGAINST()” 。

  好了,問(wèn)題解決,完結(jié)撒花!數(shù)據(jù)庫(kù)規(guī)模不大的時(shí)候是沒(méi)問(wèn)題了。

  但是當(dāng)你的數(shù)據(jù)越來(lái)越多時(shí),你會(huì)發(fā)現(xiàn)你的數(shù)據(jù)庫(kù)也越來(lái)越慢了。MySQL 不是一個(gè)非常好用的全文搜索工具。所以你決定使用 ElasticSearch,重構(gòu)代碼,并部署 Lucene 驅(qū)動(dòng)的全文搜索集群。你會(huì)發(fā)現(xiàn)它工作的非常好,又快又準(zhǔn)確。

  這時(shí)你不禁會(huì)想:為什么 Lucene 這么牛逼呢?

  本篇文章(主要介紹 TF-IDF,Okapi BM-25 和普通的相關(guān)性評(píng)分 )和 下一篇文章 (主要介紹索引)將為你講述全文搜索背后的基本概念。

  相關(guān)性

  對(duì)每一個(gè)搜索查詢,我們很容易給每個(gè)文檔定義一個(gè)“相關(guān)分?jǐn)?shù)”。當(dāng)用戶進(jìn)行搜索時(shí),我們可以使用相關(guān)分?jǐn)?shù)進(jìn)行排序而不是使用文檔出現(xiàn)時(shí)間來(lái)進(jìn)行排序。這樣,最相關(guān)的文檔將排在第一個(gè),無(wú)論它是多久之前創(chuàng)建的(當(dāng)然,有的時(shí)候和文檔的創(chuàng)建時(shí)間也是有關(guān)的)。

  有很多很多種計(jì)算文字之間相關(guān)性的方法,但是我們要從最簡(jiǎn)單的、基于統(tǒng)計(jì)的方法說(shuō)起。這種方法不需要理解語(yǔ)言本身,而是通過(guò)統(tǒng)計(jì)詞語(yǔ)的使用、匹配和基于文檔中特有詞的普及率的權(quán)重等情況來(lái)決定“相關(guān)分?jǐn)?shù)”。

  這個(gè)算法不關(guān)心詞語(yǔ)是名詞還是動(dòng)詞,也不關(guān)心詞語(yǔ)的意義。它唯一關(guān)心的是哪些是常用詞,那些是稀有詞。如果一個(gè)搜索語(yǔ)句中包括常用詞和稀有詞,你最好讓包含稀有詞的文檔的評(píng)分高一些,同時(shí)降低常用詞的權(quán)重。

  這個(gè)算法被稱為Okapi BM25。它包含兩個(gè)基本概念 詞語(yǔ)頻率(term frequency) 簡(jiǎn)稱詞頻(“TF”) 和 文檔頻率倒數(shù)(inverse document frequency) 簡(jiǎn)寫為(“IDF”). 把它們放到一起,被稱為 “TF-IDF”,這是一種統(tǒng)計(jì)學(xué)測(cè)度,用來(lái)表示一個(gè)詞語(yǔ) (term) 在文檔中有多重要。

  TF-IDF

  詞語(yǔ)頻率( Term Frequency), 簡(jiǎn)稱 “TF”, 是一個(gè)很簡(jiǎn)單的度量標(biāo)準(zhǔn):一個(gè)特定的詞語(yǔ)在文檔出現(xiàn)的次數(shù)。你可以把這個(gè)值除以該文檔中詞語(yǔ)的總數(shù),得到一個(gè)分?jǐn)?shù)。例如文檔中有 100 個(gè)詞, ‘the' 這個(gè)詞出現(xiàn)了 8 次,那么 'the' 的 TF 為 8 或 8/100 或 8%(取決于你想怎么表示它)。

  逆向文件頻率(Inverse Document Frequency), 簡(jiǎn)稱 “IDF”,要復(fù)雜一些:一個(gè)詞越稀有,這個(gè)值越高。它由總文件數(shù)目除以包含該詞語(yǔ)之文件的數(shù)目,再將得到的商取對(duì)數(shù)得到。越是稀有的詞,越會(huì)產(chǎn)生高的 “IDF”。

  如果你將這兩個(gè)數(shù)字乘到一起 (TF*IDF), 你將會(huì)得到一個(gè)詞語(yǔ)在文檔中的權(quán)重。“權(quán)重”的定義是:這個(gè)詞有多稀有并且在文檔中出現(xiàn)的多么頻繁?

  你可以將這個(gè)概念用于文檔的搜索查詢。在查詢中的對(duì)于查詢中的每個(gè)關(guān)鍵字,計(jì)算他們的 TF-IDF 分?jǐn)?shù),并把它們相加。得分最高的就是與查詢語(yǔ)句最符合的文檔。

  很酷吧!

發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 久久成人黄色 | 欧美a视频 | 欧美特黄a | 奶子吧naiziba.cc免费午夜片在线观看 | 久久精品无码一区二区三区 | 毛片免费网 | 午夜在线视频一区二区三区 | 久久精品国产99国产精品亚洲 | 精品一区二区久久久久 | 久草在线视频网 | 欧美精品一区二区中文字幕 | 欧美亚洲国产成人综合在线 | 毛片a片 | 久久久电影电视剧免费看 | 麻豆视频在线播放 | 9999在线视频| 欧美不卡视频在线观看 | 一区二区久久久久草草 | 久久综合久久综合久久 | 人禽l交免费视频观看 视频 | 精品久久久久久国产三级 | 欧美成年人在线视频 | 精品一区二区三区免费看 | 久草在线资源视频 | 黄色美女网站免费看 | 4p一女两男做爰在线观看 | 九九热在线视频观看 | 91欧美视频 | 久久精品视频69 | 久久国产精品99国产 | 亚洲精华液久久含羞草 | 免费观看一区二区三区视频 | 午夜精品久久久久久毛片 | 中国漂亮护士一级a毛片 | 黄色av网站在线观看 | 久操福利视频 | 欧美一级免费视频 | 中文字幕亚洲视频 | 7m视频成人精品分类 | 国产污污视频 | 色综合久久久久久久久久 |