zoukankan      html  css  js  c++  java
  • 判断文本中字符串是否在字典中 判断一个元素是否存在一个集合中

    判断一段文本中是否包含一个字典中的某个词

    布隆算法

    什么情况下需要布隆过滤器?--避免高内存

    先来看几个比较常见的例子

    • 字处理软件中,需要检查一个英语单词是否拼写正确
    • 在 FBI,一个嫌疑人的名字是否已经在嫌疑名单上
    • 在网络爬虫里,一个网址是否被访问过
    • yahoo, gmail等邮箱垃圾邮件过滤功能

    这几个例子有一个共同的特点: 如何判断一个元素是否存在一个集合中?

    常规思路

    • 数组
    • 链表
    • 树、平衡二叉树、Trie
    • Map (红黑树)
    • 哈希表

    对于低内存的字典,方法如下:

    1 
    import jieba 2 def check(s): 3 huangfan_path = 'path/to/dict.txt' 4 jieba.load_userdict(huangfan_path) 5 huangfan_words_dict = set() 6 with open(huangfan_path, 'rb') as fr: 7 for line in fr.readlines(): 8 huangfan_words_dict.add(line.strip().decode('utf-8')) 9 return set(jieba.lcut(s)) & self.huangfan_words_dict
  • 相关阅读:
    springboot启动只显示图标不报错
    tmux常用
    ubuntu+anaconda+mxnet环境配置
    OpenCV学习笔记(二)
    c++基础
    c++算法实现(一)
    pytorch使用不完全文档
    ubuntu上传到百度网盘
    pickel加速caffe读图
    caffe常用
  • 原文地址:https://www.cnblogs.com/cupleo/p/11410564.html
Copyright © 2011-2022 走看看