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 字段内容。故查询条件如下:

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()

四,完整代码

系统环境 pycharm2016.3  Anaconda3 Python3.6

from pymongo import MongoClient
from difflib import SequenceMatcher

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")

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 chats

def 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

时间: 2024-10-14 21:38:41

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

爬虫入门【8】Python连接MongoDB的用法简介

MongoDB的连接和数据存取 MongoDB是一种跨平台,面向文档的NoSQL数据库,提供高性能,高可用性并且易于扩展. 包含数据库,集合,文档等几个重要概念. 我们在这里不介绍MongoDB的特点和用法了,感兴趣的可以查一下官方文档. 在此重点介绍如何使用python连接MongoDB,并通过PyMongo操作MongoDB数据库. 这里默认MongoDB已经安装好啦,安装教程可以参考: http://www.yiibai.com/mongodb/mongodb_environment.ht

python连接mongodb并操作

安装python连接mongodb的库文件pymongo pip install pymongo python连接mongodb程序 import pymongo conn = pymongo.MongoClient("ip",端口) db = conn.admin #连接库 db.authenticate("账号","密码") #用户认证 db=conn.jwh db.test.insert({'id':1,'name':'kaka','sex

Python连接MongoDB数据库并执行操作

环境设置: [[email protected] ~]# cat /etc/redhat-release  CentOS release 6.9 (Final) [[email protected] ~]# python -V Python 2.6.6 1.首先确保,Mongodb数据库运行 2.安装pymongo模块 官网:https://pypi.python.org/pypi/pymongo/(按需下载) [[email protected] src]# wget https://pypi

python 连接mongodb ,并将EXCEL文档导入mongodb

一.下载软件 1.https://pypi.python.org/pypi/pymongo/#downloads  下载 PYMONGO 下载后 用命令提示符  cmd进入目录 并运行命令 python setup.py install 2.下载 xlrd  https://pypi.python.org/pypi/xlrd 利用pymongo包进行数据库的连接,使用xlrd包读取excel数据,由于二者数据结构的不同,要将excel格式数据转换为json格式数据.由于编码问题会出现"TypeE

Python连接mongodb提取部分字段内数据并写入txt文件

部门负责工业领域知识图谱构建,用于工业化与信息化两化融合,听起来好高大上好难,反正目前的我还理解不了那么深,好在有部门经理带领. 想要做专业领域知识图谱首先要有专业领域知识,这些知识从哪来呢?主要来源肯定是从互联网上爬啦! 爬下来一大堆知识直接堆在那肯定不行,还要建立起相互关系,其中重要一项就是文本分类啦!那么怎么分类呢? 还是以后再说吧...因为不管怎么做,首先都要把数据库里自己想要的数据取出来. #coding=utf-8 import sys reload(sys) sys.setdefa

C# 连接mongodb副本集读写分离字符串配置

一.副本集配置 搭建完毕,1台主实例.1台从实例.1台仲裁实例.mongodb建议副本集中的机器数量为奇数 二.C#连接字符串 1.读 mongodb://secondary.com/?SlaveOk=true 2.写 mongodb://primary.com 三.经验之谈 1.使用的是1.7的C#驱动,不支持直接在连接字符串中配置/?readPreference=secondary或 /?readPreference=SecondaryPreferred 2.readPreference参数

Python——连接MongoDB

建立与MongoDB之间的连接:官方文档 #coding:utf-8 import pymongo client = pymongo.MongoClient('127.0.0.1',27017) # 建立与MongoDB的连接 #有用户名和密码时:pymongo.MongoClient('mongodb://用户名:密码@localhost:27017/基于哪个数据库进行验证的') db = client.xingedb # 切换使用的数据库 # 增 # db.t1.insert_one({'n

Python 连接ORACLE数据的两个问题

环境 win7(64)+ Python 2.7.5 +cx_Oracle-5.1.3-11g.win-amd64-py2.7 1.dll 不是有效的 win32 应用程序 import cx_Oracle 后运行报错 "dll 不是有效的 win32 应用程序" 经查发现ORACLE的客户端用的是32位的,装好64位的客户端后将安装目录下的OCI.DLL 拷一份大盘Python lib/libsite-packages 目录下即可. 2.InterfaceError: Unable t

python连接mongodb

import randomimport timefrom datetime import *import pymongo client = pymongo.MongoClient('***.**.**.**', *****, username='*****', password='******') db_name = 'feeds'db = client[db_name] collection_set02 = db['feedsDO'] collection_set03 = db['relati