社区
Google技术社区
帖子详情
一道和搜索引擎相关的面试题
myoswin7
2009-03-12 01:01:57
有一个很大很大的敏感词词库,大约有几百万条词目,现在要分析一个网页,找出这个网上上包含的敏感词。要求时间复杂度和空间复杂尽可能的小。咋办?
...全文
478
18
打赏
收藏
一道和搜索引擎相关的面试题
有一个很大很大的敏感词词库,大约有几百万条词目,现在要分析一个网页,找出这个网上上包含的敏感词。要求时间复杂度和空间复杂尽可能的小。咋办?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
18 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
jwli81
2009-09-22
打赏
举报
回复
trie 树
xun04xun
2009-09-01
打赏
举报
回复
up
dahaidao
2009-08-26
打赏
举报
回复
词库:分为敏感词库,非每感词库
词库:常用词库,非常用词.
hzbigdog
2009-08-25
打赏
举报
回复
自动机(automata )
自动机 automaton 原来是模仿人和动物的行动而做成的机器人的意思。但是现在已被抽象化为如下的机器。时间是离散的(t=0,1,2……),在每一个时刻它处于所存在的有限个内部状态中的一个。对每一个时刻给予有限个输入中的一个。那么下一个时刻的内部状态就由现在的输入和现在的内部状态所决定。每个时刻的输出只由那个时刻的内部状态所决定。作为自动机的例子可以举出由McCulloch-pitts的神经模型组合所得到的神经网络模型、数字计算机等。
[编辑本段]形式描述
对信号序列进行逻 辑 处理的装 置。在自动控制领域内,是指离散数字系统的动态数学模型,可定义为一种逻辑结构,一种算法或一种符号串变换。自动机这一术语也广泛出现在许多其他相关的学科中,分别有不同的内容和研究目标。在计算机科学中自动机用作计算机和计算过程的动态数学模型,用来研究计算机的体系结构、逻辑操作、程序设计乃至计算复杂性理论。在语言学中则把自动机作为语言识别器,用来研究各种形式语言。在神经生理学中把自动机定义为神经网络的动态模型,用来研究神经生理活动和思维规律,探索人脑的机制。在生物学中有人把自动机作为生命体的生长发育模型,研究新陈代谢和遗传变异。在数学中则用自动机定义可计算函数,研究各种算法。现代自动机的一个重要特点是能与外界交换信息,并根据交换得来的信息改变自己的动作,即改变自己的功能,甚至改变自己的结构,以适应外界的变化。也就是说在一定程度上具有类似于生命有机体那样的适应环境变化的能力。
自动机与一般机器的重要区别在于自动机具有固定的内在状态,即具有记忆能力和识别判断能力或决策能力,这正是现代信息处理系统的共同特点。因此,自动机适宜于作为信息处理系统乃至一切信息系统的数学模型。自动机可按其变量集和函数的特性分类,也可按其抽象结构和联结方式分类。主要有:有限自动机和无限自动机、线性自动机和非线性自动机、确定型自动机和不确定型自动机、同步自动机和异步自动机、级联自动机和细胞自动机等。
[编辑本段]有限自动机的分类
下面是三类有限自动机
确定有限自动机(DFA)
自动机的每个状态都有对字母表中所有符号的转移。
非确定有限自动机(NFA)
自动机的状态对字母表中的每个符号可以有也可以没有转移,对一个符号甚至可以有多个转移。自动机接受一个字,如果存在至少一个从 q0 到 F 中标记(label)著这个输入字的一个状态的路径。如果一个转移是「未定义」的,自动机因此不知道如何继续读取输入,则拒绝这个字。
有ε转移的非确定有限自动机(FND-ε或ε-NFA)
除了有能力对任何符号跳转到更多状态或没有状态可以跳转之外,它们可以做根本不关于符号的跳转。就是说,如果一个状态有标记著 ε 的转移,则 NFA 可以处在 ε-转移可到达的任何状态中,直接或通过其他有 ε-转移的状态。从一个状态 q 通过这种方法可到达的状态的集合叫做 q 的 ε-闭包。
尽管可以证明所有这些自动机都「可以接受同样的语言」。你总是可以构造接受与给定的 NFA M 同样语言的某个 DFA M。
[编辑本段]有限自动机的扩展
上述自动机接受的语言家族被称为正则语言家族。更强力的自动机可以接受更复杂的语言。比如:
下推自动机(PDA)
这种机器等同于 DFA (或 NFA),除了它们额外的装备了栈形式的内存。转移函数 δ 也依赖于在栈顶的符号,并在每次转移时指定如何变更栈。非确定 PDA 接受上下文无关语言。
线性有界自动机(LBA)
LBA 是有限制的图灵机;不使用无限磁带,它的磁带有同输入字元串成正比的空间。LBA 接受上下文有关语言。
图灵机
它们是最强力的电脑器。它们拥有磁带形式的无限内存,和可以读取和变更磁带的磁头,它可在磁带上向任何方向移动。图灵机等价于演算法,是现代电脑的理论基础。图灵机判定递归语言并识别递归可枚举语言。
[编辑本段]有限状态自动机的最小化
根据 Myhill-Nerode定理,在同构意义下接受一个正则语言的最少状态的确定有限状态自动机是唯一的。同时我们还存在有效的演算法(时间开销是O(n2)的)构造出与给定确定有限状态自动机等价的最小化的确定有限状态自动机。
[编辑本段]计算能力与判定问题
确定有限状态自动机与非确定有限状态自动机识别的语言都是正则语言。由于正则语言的良好性质,许多为其他自动机(下推自动机或图灵机)不能判定的问题,在有限状态自动机的情形下,都可以得到判定,并且存在有效的演算法。
对一个确定有限状态自动机,下述判定问题都可以判定,并且存在有效的演算法。
该自动机识别的语言是否为空集。
该自动机识别的语言是否为有限集。
该自动机是否与另一个确定有限状态自动机识别同一个的语言。
hzbigdog
2009-08-25
打赏
举报
回复
[Quote=引用 13 楼 peter1_jiang 的回复:]
AC算法,将敏感词构建成一个自动机,利用该自动机对网页进行搜索,假设网页长度为n,则线性时间就可以找到包含的所有敏感词
[/Quote]
有点感觉了
peter1_jiang
2009-08-25
打赏
举报
回复
AC算法,将敏感词构建成一个自动机,利用该自动机对网页进行搜索,假设网页长度为n,则线性时间就可以找到包含的所有敏感词
areszsk
2009-04-30
打赏
举报
回复
[Quote=引用 10 楼 DenielJean 的回复:]
针对网页上的词判断是否是敏感词这当然是O(n),但是要保证空间复杂度,这就要求分批存储敏感词词库里,可以用HASH。
主要是提取网页里的词有点复杂。英文到好,中文就有点麻烦。
[/Quote]
这样和直接以敏感词库为词库进行分词有什么区别????
myoswin7
2009-03-28
打赏
举报
回复
再顶
无天
2009-03-28
打赏
举报
回复
针对网页上的词判断是否是敏感词这当然是O(n),但是要保证空间复杂度,这就要求分批存储敏感词词库里,可以用HASH。
主要是提取网页里的词有点复杂。英文到好,中文就有点麻烦。
梦无痕123
2009-03-28
打赏
举报
回复
[Quote=引用 10 楼 DenielJean 的回复:]
针对网页上的词判断是否是敏感词这当然是O(n),但是要保证空间复杂度,这就要求分批存储敏感词词库里,可以用HASH。
主要是提取网页里的词有点复杂。英文到好,中文就有点麻烦。
[/Quote]期待进一步解释
tt_1122rt
2009-03-27
打赏
举报
回复
不太明白你说的是什么
myoswin7
2009-03-26
打赏
举报
回复
顶,盼高手
myoswin7
2009-03-26
打赏
举报
回复
顶,高手来呀
myoswin7
2009-03-26
打赏
举报
回复
盼高手,盼高手
myoswin7
2009-03-26
打赏
举报
回复
可以说得具体一些吗
deyga
2009-03-26
打赏
举报
回复
正则表达式+服务器缓存
金日辰
2009-03-26
打赏
举报
回复
ddddddddd盼高手
lanhao3790
2009-03-14
打赏
举报
回复
我也想了解下,哪位高手说下
Java高频
面试题
【课程介绍】 很多人面试前都会罗各种
面试题
。这些面试资料数量众多,但内容杂,系统性不强。最重要的是很多知识点如果不结合讲解,有些重点内容理解的难度偏大。如果下一次遇到面试,又要重新搜集资料,很多知识要...
海量数据处理
面试题
集锦
前言 本博客内曾经整理过有关海量数据处理的10道
面试题
(十道海量数据处理
面试题
与十个方法大总结),此次除了重复了之前的10道
面试题
之后,重新多整理了7道。仅作各位参考,不作它用。 同时,程序员编程艺术系列...
2023最全最新前端
面试题
(附加解答)
这是我整理所有看过的文章的
面试题
+各种百度每
一道
题的答案,希望可以有效的帮助别人 本章博客,梳理所有基础的js,jquery,vue,css, html等题,包含
面试题
,可供参考学习,也督促自我学习
10万字208道Java经典
面试题
总结(附答案)
1、JDK 和 JRE 有什么区别? JDK(Java Development Kit),Java开发工具包 JRE(Java Runtime Environment),Java运行环境 JDK中包含JRE,JDK中有一个名为jre的目录,里面包含两个文件夹bin和lib,bin就是JVM,...
刷道谷歌泄漏的
面试题
:面试官想从中考察你什么?
这是“谷歌
面试题
解析”系列的又一篇文章。...
一道
泄露并遭禁用的谷歌
面试题
,背后玄机全解析 在介绍新的
面试题
之前,我先宣布一个令人兴奋的消息:我已经离开谷歌了!我现在是 Reddit 的工程经理!不过,我还是会...
Google技术社区
6,721
社区成员
3,234
社区内容
发帖
与我相关
我的任务
Google技术社区
专题开发/技术/项目 Google技术社区
复制链接
扫一扫
分享
社区描述
专题开发/技术/项目 Google技术社区
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章