Abner G 2022-02-05 19:14 采纳率: 100%
浏览 36
已采纳

搜索引擎--为什么要分词

在学习字典树及ElasticSearch 中,都提到了分词。

将短句分成多个词,方便搜索。完整语句的搜索不是应该更准确吗?为什么要分词?

  • 写回答

2条回答 默认 最新

  • DarkAthena ORACLE应用及数据库设计方案咨询师 2022-02-05 22:12
    关注

    用完整语句去搜索,很可能会什么都搜不到,因为搜索这个动作是用的绝对匹配,必须保证两个字符串完全相等才算匹配,比如你搜一句话
    "今天晚上吃什么?",但是字典里是"今天晚餐吃什么?" ,这样就搜不到了。你需要为了这一个字的不一样,创建一个新的词条。自然语言不是那么标准的东西,经常多一个字少一字或者换一个字,其实都可能是完全相同的意思,你永远都不可能把所有的完整语句收录起来,而且这个收录也是个巨大的存储量,检索效率也低
    但是,如果对其进行分词,

    1. 今天=今天
    2. 吃 =吃
    3. 什么=什么

    这样就能以很少的存储及较快的效率,来识别到较为准确的匹配,当然,这个肯定算不上精准,所以,就有了自然语义AI的诞生,更高阶的神经网络机器学习,能把模型训练得接近人类思维,这样匹配就更精准了,但不过每个人都会有自己的个性,AI也如此,在训练的时候还得植入性格,这往往会给人们带来不愿意看到的答案。
    所以,目前还无法实现想象中的完整自然语言搜索的绝对匹配,期待做搜索的朋友未来在这个方面有所突破

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

问题事件

  • 已采纳回答 2月6日
  • 创建了问题 2月5日

悬赏问题

  • ¥15 MATLAB动图问题
  • ¥15 有段代码不知道怎么理解,const isToken = (config.headers || {}).isToken === false
  • ¥15 我的显卡支持CUDA最高版本是12.3,这个版本也支持VS 2022 17.0这种情况下如果我想下载CUDA11.8,需要下载旧版本的VS2022吗
  • ¥100 采用栈和深度优先算法对我的代码进行修改显示路径
  • ¥15 pointnet2包安装
  • ¥20 射频功率问题,解答者有酬谢!
  • ¥80 构建降雨和积水的预测模型
  • ¥15 #Qt Transform setTransform()在鼠标拖动移动视角是一致在原地不动,无法变换视角(细微观察似乎视图有在原地抖动),无法变换视角(细微观察似乎视图有在原地抖动)
  • ¥50 如何利用无人机拍摄的数码照片测量鸟卵的长短径
  • ¥100 github贡献者给与奖励