分詞查詢按照匹配度相似度進行排序
方法;
原表table1
id | description |
1 | 霍頓是國外玩水的 |
2 | 孫楊是中國的運動員 |
分詞表table2
id | keyword |
1 | 霍頓 |
1 | 國外 |
1 | 玩水 |
2 | 孫楊 |
2 | 中國 |
2 | 運動員 |
查詢語句 : 霍頓誣陷中國的孫楊
對上述語句進行分詞後,對於每一個詞語,在後臺進行處理,變成
keyword="霍頓" or keyword="誣陷" or keyword="中國" or keyword="孫楊"。
然後去資料庫中查詢
select id from table2 where keyword="霍頓" or keyword="誣陷" or keyword="中國" or keyword="孫楊" group by id order by count(*) desc;
這樣,相似程度較多的id為2的排在第一,id為1的排在第二,將其id放在一個list[]集合中。
然後該list遍歷去table1資料庫中查詢,就能依次獲得id為2的和id為1的資料。將其add入一個另外的list中即可
相關推薦
分詞查詢按照匹配度相似度進行排序
方法; 原表table1 id description 1 霍頓是國外玩水的 2 孫楊是中國的運動員 分詞表table2 id keyword 1 霍頓 1 國外 1 玩水 2 孫楊 2 中國 2 運動員 查詢語句 : 霍頓誣陷中國的孫楊 對上述語句進行分詞後,對於每
NLP入門(一)詞袋模型及句子相似度
本文作為筆者NLP入門系列文章第一篇,以後我們就要步入NLP時代。 本文將會介紹NLP中常見的詞袋模型(Bag of Words)以及如何利用詞袋模型來計算句子間的相似度(餘弦相似度,cosine similarity)。 首先,讓我們來看一下,什麼是詞袋模型。我們以下面兩個
elasticsearch之分詞查詢
elasticsearch使用elk時,search時默認帶有分詞功能,搜索關鍵字並不精準,為方便search查詢,將分詞功能禁用:curl -XPUT http://localhost:9200/_template/template_1 -d ‘{"template" : "*","order":0,"se
資料庫分詞查詢的優缺點以及英文和中文各自的分詞方法(一)
1.為什麼需要資料庫分詞查詢 假設有一個數據庫表,表中有一個title欄位 table1 假如有300萬的資料 id為主鍵,title也設定了索引 id title 1 這是計算機,
使用結巴分詞(jieba)對自然語言進行特徵預處理(Python、Java 實現)
一、前言 之前使用基於 Python 語言的 Spark 進行機器學習,程式設計起來是十分簡單。 ① 但是演算法部署到雲伺服器上,是一個障礙。 ② 得藉助 Flask/Django 等 Python W
oracle 使用instr()函式對in查詢出的記錄按照in中的資料進行排序
需求:輸入漢字,得出它的拼音碼、五筆碼; 方法:使用instr()函式 select * from cnword where word in ('我','們','是','祖','國','的','花',
Mysql查詢按照某欄位指定順序排序
SELECT * FROM documents WHERE id IN (5,3,6,1) ORDER BY FIELD(id,5,3,6,1); 或者 SELECT * FROM documents WHERE id IN (5,3,6,1) ORDER BY subst
將控制臺輸入的資料存到文檔中,並按照存入資料的年齡進行排序
file 實現 冒泡 控制 eno rabl trace gen 是否 package LX10_11; import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.File;
對一個給定的二維數組按照指定的鍵值進行排序
arr pre des ray cti lse 指定 key _array public function set_s(){ $arr = [ [‘one‘ => 6,‘two‘ => 19], [‘one‘ => 36,
基於OpenCV的findContours查詢影象連通域,並進行排序
//基於OpenCV,對讀入圖片查詢連通域,並把每個連通域包含的座標點根據y值從小到大進行排序。 #include <opencv2/legacy/legacy.hpp> #include <opencv2/opencv.hpp> #include <
PHP對多維陣列按照某個鍵值大小進行排序
實際工作中,常常要對陣列進行排序操作,下面簡單講解一下,運用array_multisort()函式 進行對多維陣列鍵值大小進行排序。 <?php /** * 多維陣列按照某索引的值大小進行排序 * @author zhao jinhan * @email [e
php mysql 分詞 模糊查詢 並根據分詞匹配度排序
close desc highlight this then 中文 sql 一個數 exec 中文分詞用 SCWS 的api http://www.xunsearch.com/scws/api.php 1.php中用 curl獲取分詞結果 protected functi
jieba分詞以及word2vec詞語相似度
自然語言處理 中文分詞 去除 標點符號, 下一步 開始文本相似度計算: 參考文章 : http://www.jb51.net/article/139690.htm from gensim.models import Word2Vec model = Word2Vec(sentences,
(NLP)基於分詞標籤的中文短文字相似度
基於分詞標籤的中文短文字相似度 最近接觸到了一些關於中文短文字相似度的演算法,將它們總結在此: 中文編輯距離 基於詞頻的餘弦相似度 Python difflib github傳送門:https://github.com/gongpx20069/DIY
影象處理之積分圖應用三(基於NCC快速相似度匹配演算法)
影象處理之積分圖應用三(基於NCC快速相似度匹配演算法) 基於Normalized cross correlation(NCC)用來比較兩幅影象的相似程度已經是一個常見的影象處理手段。在工業生產環節檢測、監控領域對物件檢測與識別均有應用。NCC演算法可以有效降低光照對影象比較結果的影響。而
wordvec_詞的相似度
import gensimfrom gensim.models import word2vecimport loggingimport jiebaimport osimport numpy as npdef cut_txt(old_file): import jieba global cut_fi
基於WMD(詞移距離)的句子相似度分析簡介
word2vec word2vec是隻有一個隱層的全連線神經網路,對語料中的所有詞彙進行訓練並生成相應的詞向量(Word Embedding)WI 的大小是VxN, V是單詞字典的大小, 每次輸入是一個單詞, N是設定的隱層大小。word2vec的模型通過一種神經網路語言模型(Neu
簡單的字串相似度匹配加排序
今天遇到一個問題,需要將一組字串,跟結果需要的字串相比較,根據相似性排列出來,思考了一個下午,想了一個簡易的匹配演算法,寫出程式碼的時候下班了,回家除錯了幾次後就成功了,特此將該演算法寫出來。 思路:將一組字串儲存到list中,用兩個for迴圈,先
分塊查詢演算法完全攻略(原理、實現及時間複雜度)
一般對於需要查詢的待查資料元素列表來說,如果很少變化或者幾乎不變,則我們完全可以通過排序把這個列表排好序以便我們以後查詢。但是對於經常增加資料元素的列表來說,要是每次增加資料都排序的話,那真的是有點太累人了。 所以之前我們分析過,對於幾乎不變的資料列表來說,排序之後使用二分查詢是很不錯的,但是對於經常變動的
文字相似度-詞袋模型
1、詞袋模型 將兩篇文字通過詞袋模型變為向量模型,通過計算向量的餘弦距離來計算兩個文字間的相似度。 詞袋模型的缺點: 詞袋模型最重要的是構造詞表,然後通過文字為詞表中的詞賦值,但詞袋模型嚴重缺乏相