`

正确地猜测用户的意图

阅读更多

当我们在Collins词典中输入“voilent”的时候,会有如下提示:

当我们在Google中搜索“voilent”的时候,也会有如下提示:

Collins和Google是如何做到的呢?它是怎么知道我们把i和o的位置弄反了呢?

当我们输入一个词,而这个词不存在于Google的倒排索引或者Collins的词典中时,我们就可以假设用户输入可能有误,接着我们通过算法找出一个和用户的输入最相似的词推荐给用户,这个找出和用户输入最相似的词的算法有很多种,最常用的有编辑距离算法(Edit Distance),因为这个算法是俄罗斯科学家Vladimir Levenshtein在1965年提出的,所以编辑距离(Edit Distance)又叫做Levenshtein距离。

编辑距离算法是指两个字串之间,由一个转成另一个所需的最少编辑操作次数,允许的编辑操作包括将一个字符替换成另一个字符,增加一个字符,删除一个字符。

例如将kitten转成sitting: 

sitten (k→s)将一个字符k替换成另一个字符s

sittin  (e→i) 将一个字符e替换成另一个字符i

sitting (→g) 增加一个字符g

所以编辑距离为3,word分词提供了编辑距离算法的Java代码实现,同时superword项目也演示了编辑距离算法对于单词记忆的辅助作用

 

下面我们看看中文的情况,当我们在Google搜索“热挨”的时候,Google在倒排索引中找不到“热挨”这个词,于是它猜测我们真正想搜索的是“热爱”,那么Google是怎么猜测到我们的意图的呢?

工作原理和上面介绍的英文词比较相似,只是算法不一样,如果把编辑距离算法应用到这里,效果会很差,那么怎么办呢?

解决方法是利用汉语的同音词原理,先把“热挨”转换为拼音“reai”,然后找出所有拼音为“reai”的双字词,在按照词的出现频率取频率最大者“热爱”。

 

更多资料:

How to Write a Spelling Corrector

Using the Web for Language Independent Spellchecking and Autocorrection

How Difficult is it to Develop a Perfect Spell-checker A Cross-linguistic Analysis through Complex Network Approach

 

 

 

 

 

1
0
分享到:
评论

相关推荐

    ChatGPT技术对于意图识别与槽位填充的支持程度分析.docx

    当用户输入一个问题或者请求时,ChatGPT 可以根据其预训练模型中的知识进行推理和判断,猜测用户的意图。 其次,ChatGPT 还可以通过上下文信息来帮助意图识别。在对话过程中,ChatGPT 可以根据上一轮对话内容进行...

    ChatGPT 对非流畅输入的响应行为研究.docx

    当模型无法理解用户意图时,它可能会尝试猜测用户的意图并给出一个不确定的回答。 3. 完全错误的回答。在面对非流畅输入时,ChatGPT 可能生成与用户问题完全无关的回复。 为了解决 ChatGPT 对于非流畅输入的挑战,...

    ChatGPT技术如何应对用户的错误输入与打字错误.docx

    例如,当用户输入含义不清晰或者存在歧义的句子时,ChatGPT 可以通过之前的对话内容来进行推断和猜测,从而给出更合理的响应。 3. 通过追问和确认来解决用户输入错误带来的问题:ChatGPT 可以主动向用户询问更多...

    AutocompleteTest.zip

    自动补全系统还应具备一定的容错能力,例如在用户输入有拼写错误时仍能正确猜测其意图。 在设计自动补全系统时,还要考虑性能问题。因为系统需要实时或几乎实时地对用户输入做出反应,这要求算法的执行效率要高,且...

    XP全拼输入法

    - **拼音纠错**:即使输入错误的拼音,输入法也能尝试猜测用户意图并提供正确的候选词。 4. 更新与优化: 随着时间的发展,虽然Windows XP系统已经逐渐被淘汰,但XP全拼输入法仍有一定的用户群体。开发者可能对...

    (小白指南)DeepSeek小白使用指南 2025-2-18(1).pdf

    DeepSeek小白使用指南是一份面向初学...一句话总结DeepSeek小白使用指南:用户应该像与学霸同事交流那样,清晰、具体地向DeepSeek表达自己的需求,避免让平台猜测意图,这样可以极大提高与DeepSeek的互动效率和准确性。

    很简易的密码查看器密码查看器

    然而,在某些情况下,用户可能会遇到忘记自己密码的情况,或者需要确认自己输入的密码是否正确。为了应对这种需求,一种名为“很简易的密码查看器”的工具应运而生。正如其名称所暗示的,这款工具的出现是为了帮助...

    猜数字功能、

    在这个循环中,程序会不断接收用户的猜测并进行比较。根据猜测结果,我们可以给出提示,如“猜大了”、“猜小了”或者“恭喜,你猜对了”。C++的`while`或`do-while`循环可以很好地实现这一功能: ```cpp while ...

    蓝桥杯EV3竞赛试题“猜数字”

    3. **逻辑控制**:程序需要包含一系列的逻辑判断,比如判断用户猜测的数字是否正确,或者与目标数字的大小关系,这些都需要通过if-else语句来实现。 4. **数据处理**:参赛者需要学会如何存储和处理用户输入的数字...

    T9输入法源码,够详细

    这种输入法的核心在于其智能预测和自动完成功能,它允许用户只需按每个字母一次,即使这些字母在同一个数字键上,系统也能根据上下文猜测并显示最有可能的词汇。 T9输入法的源码分析是一个深入理解计算机科学、算法...

    DeepSeek与AI幻觉-清华大学-附知识库_0.pdf

    明确用户意图,减少模型对指令的误解。 尽管存在幻觉问题,AI幻觉也有其创造力价值。例如,通过分析错配的上下文,AI模型可以创作出独特的艺术作品或音乐,这在一定程度上展示了AI的创造潜能。AI幻觉是一个值得深入...

    Launchy使用说明

    它通过智能搜索功能来猜测用户想要启动的程序或文件,并在按下回车键后立即启动。 #### 二、Launchy 的由来与背景 **Launchy**最初是由Josh Karlin为其个人使用而开发的。随着他和他的朋友们越来越依赖这款软件,...

    python猜数字游戏-09-函数的说明文档.ev4.rar

    3. **条件语句**:`if`和`else`语句用于检查用户输入是否正确,以及给出相应的反馈。 4. **用户输入处理**:使用`input()`函数获取用户的猜测,并进行类型转换(如`int()`),确保数据类型匹配。 5. **错误处理**:...

    q-behave:Arduino 机器学习库

    以传统方式,系统不能被编程来猜测用户对显示哪种颜色的意图。 当我们将 Q-Behave 作为交互(按下按钮)和状态(使二极管闪烁)之间的处理器时,设备将根据从用户交互中获得的先前经验选择一种可能的状态。 因此,...

    清华第五版-DeepSeek与AI幻觉

    意图误解发生在用户提问模糊时,模型可能进行“自由发挥”,给出与用户需求不符的答案。 在金融行业中,DeepSeek模型得到了广泛应用。例如,某头部银行利用DeepSeek构建因果归因网络,识别小微企业违约的隐性因素,...

    Web-Information-Management-Projects:该存储库包含在UCLA CS246课程中完成的项目

    在拼写检查器的帮助下,搜索引擎将尝试猜测用户的意图,并建议用户键入的任何内容都可能是正确的拼写。 在该项目中,探索了实现基本拼写检查器的不同方法。 项目4:该项目的主要目标是学习如何使用通用软件工具...

    cpp-didyoumean你是什么意思根据属性提供良好的错误提示

    "did you mean" 这个概念来源于很多现代编程环境,当用户输入的命令或者函数名有拼写错误时,它们会尝试猜测用户的意图并给出更正建议。例如,如果你尝试调用一个不存在的函数 "functoin()",编译器可能会提示 "did ...

    作业而非而无法额为绯闻绯闻绯闻

    因此,我将尝试根据可能的理解和猜测,构建相关知识点,但请注意,由于信息的不明确性,以下内容可能与原始意图有所出入。 --- 在信息技术领域,前端开发是构建用户界面和用户体验的关键环节,它涉及多种技术和...

    如何编写高质量“软件需求说明书”

    1. **正确性**:每个需求必须准确反映客户的真实意图,与系统的高级需求保持一致。需求的正确性通常由用户代表或其代理人来确认。在审查需求时,用户参与是至关重要的,避免开发人员的主观猜测。 2. **可行性**:...

    PowerSurfacing教程.pdf

    用户可以使用这些命令来生成3D模型的各个部分,并确保它们正确地连接和融合。 5. Sub-D细分级别 提到的SubD45、SubDOverrideSampleDensity等词汇涉及的是Sub-D模型的细分级别,这是Sub-D技术的核心概念。细分级别...

Global site tag (gtag.js) - Google Analytics