日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

Python 连接MongoDB并比较两个字符串相似度的简单示例

發布時間:2023/12/2 python 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Python 连接MongoDB并比较两个字符串相似度的简单示例 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

本文介紹一個示例:使用 pymongo 連接 MongoDB,查詢MongoDB中的 字符串 記錄,并比較字符串之間的相似度。

一,Python連接MongoDB

大致步驟:創建MongoClient---> 獲取 DataBase --->獲取Collection,代碼如下:

client = MongoClient(host="127.0.0.1", port=10001) db = client['database_name'] db.authenticate(name="user_name", password="password") coll = db.get_collection("collection_name")

?

二,Python MongoDB 查詢

以uid為條件進行查詢。由于 collection_name 中定義了多個字段,這里只想返回 chat 字段的內容,并且不返回 _id 字段內容。故查詢條件如下:(find方法的第一個參數指定查詢的條件,第二個參數指定 待 返回的 字段)

coll.find({"uid": 123456789}, {"_id": 0, "chat": 1})

?

MongoDB查詢返回的每一條記錄都是一個 dict:{"chat":"這是一條發言內容"},再將之轉化成 chats列表(list) 存儲每一條發言內容:

list_chat = list(coll.find({"uid": 123456789}, {"_id": 0, "chat": 1}))chats = [d['chat'] for d in list_chat]

?

三,Python比較兩個字符串的相似度

給定一個列表(list),列表中的每個元素都是一個字符串,計算列表中相鄰兩個元素的相似度。

#查找chats 列表 里面 相鄰 字符串 之間的 相似度 def compute_similar():chats = uid_chats()for index in range(len(chats) - 1):ratios = similar_ratio(chats[index], chats[index+1])print(ratios)

具體的字符串相似度計算,由SequenceMatcher實現,它忽略了字符串中存在空格的情況。

#lambda 表達式表示忽略 “ ”(空格),空格不參與相似度地計算 SequenceMatcher(lambda x:x==" ", strA, strB).ratio()

?

四,判斷 "nick"字段是否包含 emoji字符

打開Anaconda,安裝 emoji 處理包

pip install emoji --upgrade

代碼如下:

from pymongo import MongoClient import emojiclient = MongoClient(host="127.0.0.2", port=10001) db = client['db_name'] db.authenticate(name="user_name", password="xxxx") coll = db.get_collection("coll_name")def extract_emojis(str_chat):return ' '.join(c for c in str_chat if c in emoji.UNICODE_EMOJI)def uid_chats(uid):list_chat = list(coll.find({"uid": uid}, {"_id": 0, "nick": 1}))chats = [d['nick'] for d in list_chat]print(chats)return chatsif __name__ == "__main__":chatList = uid_chats(123456789)for chat in chatList:result = extract_emojis(chat)print(result)

?

五,完整代碼

系統環境?pycharm2016.3? Anaconda3 Python3.6

from pymongo import MongoClient from difflib import SequenceMatcherclient = MongoClient(host="127.0.0.1", port=10001) db = client['database_name'] db.authenticate(name="user_name", password="password")coll = db.get_collection("collection_name")def uid_chats():list_chat = list(coll.find({"uid": 123456789}, {"_id": 0, "chat": 1}))chats = [d['chat'] for d in list_chat]print(chats)return chatsdef similar_ratio(strA, strB):return SequenceMatcher(lambda x:x==" ", strA, strB).ratio()#查找list里面相鄰字符串之間的相似度 def compute_similar():chats = uid_chats()for index in range(len(chats) - 1):ratios = similar_ratio(chats[index], chats[index+1])print(ratios)if __name__ == "__main__":compute_similar()

?

原文:http://www.cnblogs.com/hapjin/p/7895027.html

轉載于:https://www.cnblogs.com/hapjin/p/7895027.html

總結

以上是生活随笔為你收集整理的Python 连接MongoDB并比较两个字符串相似度的简单示例的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。