• 判断文本中字符串是否在字典中 判断一个元素是否存在一个集合中


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

    布隆算法

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

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

    • 字处理软件中,需要检查一个英语单词是否拼写正确
    • 在 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
  • 相关阅读:
    String.format in JavaScript
    dojo/domReady! 中感叹号的作用
    文本三剑客之sed的用法
    文本三剑客之grep的用法
    通配符与特殊符号
    文件属性信息
    文件属性及find命令总结
    linux系统常用命令
    系统优化
    vim编辑器 与etc目录
  • 原文地址:https://www.cnblogs.com/cupleo/p/11410564.html
Copyright © 2020-2023  润新知