本文力图用作者有限的知识和经验解释清楚“什么是文本相似”“什么是语义相似”“什么是搜索相关”。

前几个月,我的一个跟了好几个月的客户忽然说他们打算借助某大公司的平台自己做问答了。

我说,你们怎么做呢?

他说,大公司的平台上就有工具能计算文本相似性。

我说,那个文本相似是搜索用的。咱机器人是问答,需要用的是语义相似计算。文本相似只给两段文本的相似值,这个值是从0-1之间的一个绝对值。两段不相干的文本也有文本相似值。你们在用的时候还得自己确定一个阈值,明确相似和不相似的界限。确定这个阈值才是最有技术含量的事情,最难的事情。大公司恰恰没有帮你们解决这个问题。

后来没多久,客户就和我们签约了。

我闲来无事的时候,偶尔翻看了几家大公司的AI平台。看到的东西简直让我大跌眼镜。(我其实不戴眼镜,只是夸张一下。)有的公司居然分不清文本相似和语义相似。他们明明做的是文本相似,却把它叫语义相似。阿里居然把文本相似当成一项语义理解技术。文本是文本,语义是语义。把文本相似技术放在语义理解分类里,就是误导用户。相比之下,百度还算比较客观,他们就没把他们的工具叫语义相似度对比工具,只叫文本相似,并且加了“短”的限制。但百度这个工具叫文本相似也不对,其实是搜索相关。

从百度举的例子足以看出来,这根本不是文本相似。所谓相似是指看起来像,是外形相近的意思。从百度举的例子,哪里能看出来外形相近了?“浙富股份”和“万事通自考网”,有一个字相同吗?难道是因为有相同的笔画就相似了?

这是百度早前放置在网站上的另一个例子。原句(一般用户输入)是“车头如何放置车牌”,对比的一组句子(一般是知识库里现存的知识)是“前牌照怎么装”“如何办理北京车牌”“后牌照怎么装”。对比句子和原句的相似度分别是0.761517、0.486205,0.697181。于是认为,“前牌照怎么装”,和原句最相似。

问题来了,如果在对比的一组句子里“如何办理北京车牌”“后牌照怎么装”,他们和原句的相似度都挺高的,究竟应该输出哪个呢?

如果从问答的角度看,输出哪个都是错的。

问题就在这里,很多人其实不理解问答和搜索的区别,把问答当成搜索,用搜索技术做问答。

问答的结果有明确的对错评价。问答是需要给准确结果的,给相似结果就是错的。而搜索没有明确的对错评价。搜索只能给相似的结果列表,需要用户自己从列表中判断。

问答处理的是语义相似性,搜索处理的是文本相关性。语义相似性有就有,没有就没有。搜索的相关性则很少出现0,八竿子打不着的两段文本都有文本相似性。“爸爸”“妈妈”“爷爷”“奶奶”“叔叔”“阿姨”“老虎”“大象”“树袋熊”“金毛”都有文本相似性。人家问“你爸爸在家不?”搜索技术给出的结果很可能是“我家树袋熊在家。”

问答处理语义离不开对话场景,离开场景计算语义有时候会出错。搜索计算文本相似则不考虑对话场景,不考虑上下文。

百度本身是一家擅长做搜索的公司。把搜索相关性叫文本相似性是一种误导。很多人会把文本相似性当成语义相似性。

“爸爸”和“树袋熊”有搜索的相关性,没有文本相似性,更没有语义相似性。

“贾宝玉”和“孙悟空”有搜索的相关性,没有文本相似性,更没有语义相似性。

“浙富股份”和“万事通自考网”有搜索的相关性,没有文本相似性,更没有语义相似性。

搜索相关性是因为文本之间有某种关联,建立起来的关联关系。比如,它们可能是创建者和被创建者关系,可能共同在一篇文章中出现过,可能在知识图谱里的距离比较近等等。

文本相似性则是文本外形相似。文本相似很大程度上就有搜索相关性。但有搜索相关性的文本却未必相似。

语义相似性是语义计算的概念。很多人把文本相似理解为语义相似,这是误解。文本是有形的,语义是抽象的。文本是固定不变的,语义是随对话场景变化的。两句话文本没相似性,但语义可能是相似的。比如“朋友的泰山仙逝了”和“那个兄弟的老丈人走了”这两句话只有虚词相同,语义却是一样的。两段话文本高度相似,语义却是不相似的。比如“老张把老王打了”,“老张被老王打了”,两句话看起来很想,主语和谓语却是完全不同的,没有语义相似性。把搜索的相关性叫做语义的相似性就更错得离谱了。“爸爸”和“树袋熊”只有搜索的相关性,没有语义的相似性。

什么是语义?对语义的内涵和外延,很多人没搞很清楚。我们认为句子主干就是语义,句子主干相同才有语义相似性,句子主干不通没有语义相似性。“老张把老王打了”,“老张被老王打了”句子主干就不一样。语义是个圈,两句话语义相似,它们语义的圈子就有重叠的部分。反之,它们的圈子没有重叠的部分,就没有语义相似性。语义才是自然语言的本质。而搜索就不在乎语义,只在乎文本。

发明“文本相似”这个词本身就是个错误,本质就是搜索的相关性。叫“相似”就会让人误解为语义相似。

很多不明就里的开发者真的用“文本相似”去计算语义相似了。这不是害人么?百度,请出来解释下,你们是不是故意的?

——原文最先发表于本人微信公众号《语文的力量》

本人是氖星智能机器人大脑创始人,句子主干语义相似对比技术发明人。

百度,你出来解释下什么是文本相似?相关推荐

  1. linux如何编译tex,Linux下优秀的文本编辑器(Markdown、LaTeX、MathJax)

    这样一个标题可能不太准确,因为确实无法准确地解释什么叫"Linux下优秀的文本编辑器".其实我这篇随笔主要是想探讨Markdown.LaTeX.MathJax,有兴趣的朋友可以继续 ...

  2. [html] 解释下什么是CDATA?

    [html] 解释下什么是CDATA? CDATA 指的是不由 XML 解析器进行解析的文本数据.XML 文档中的所有文本均会被解析器解析.只有 CDATA 区段中的文本会被解析器忽略. 个人简介 我 ...

  3. 详细解释下头条图文和微头条发布建议

    详细解释下头条图文和微头条发布建议,我说不建议发图文板块是因为图文相当于之前的博客产品形态,微头条相当于微博产品形态,显然微博打败了博客,同理图文也会被微头条打败,这个大趋势不变且不可逆. 我之所以这 ...

  4. 直播实录|百度大脑EasyDL是如何帮助NLP文本提升标注效率的?又如何进行复杂文本分类的?

    百度大脑EasyDL是如何帮助NLP文本分类用户提升标注效率的?业界领先的文本分类智能标注产品效果如何?在百度产品经理夜巡的带领下,你将会学习到EasyDL专业版文本分类模型最新上线的智能标注功能的具 ...

  5. linux环境编程 百度云,linux环境下使用百度云网盘

    linux环境下使用百度云网盘 linux下经常需要备份一些文件到云端,现在能用的也就只有度娘的百度云网盘了,在github上发现一个挺好的项目,bypy,用来在linux下使用百度云. 项目地址:h ...

  6. .net下的富文本编辑器FCKeditor的配置方法(图)原创

    .net下的富文本编辑器FCKeditor的配置方法(图)原创 FCKeditor是一款开源的富文本编辑器,几乎支持所有流行的Web开发语言,版本稳定,用户多,可配置性好. 以前做Java和php的时 ...

  7. Linux下常见的文本处理命令

    众所周知,在Linux下"一切皆文件"的原则,一切配置文件都可以以文本的方式进行编辑.存储.故对文本文件的操作能力,决定着你是否能够在Linux下操纵自如.今天,就写下几个关于Li ...

  8. 为什么都要鄙视 PHP 程序员? Java联盟 百家号 07-24 21:43 前几天发表了一篇文章《图解:程序员之间是如何相互鄙视的?》,有人就在留言处留言。 可以解释下:为什么都鄙视PHP工程师

    为什么都要鄙视 PHP 程序员? Java联盟 百家号 07-24 21:43 前几天发表了一篇文章<图解:程序员之间是如何相互鄙视的?>,有人就在留言处留言. 可以解释下:为什么都鄙视P ...

  9. [转].NET下读取PDF文本

    本文转自:http://blog.csdn.net/wangqiuyun/article/details/8548779 在.NET下读取PDF文本用到的类库主要有两个:PDFBox和iTextSha ...

  10. js实现按下删除键清空文本框内容

    //HTML部分<input type="text" placeholder="pls input"> /*CSS部分*/ input {margi ...

最新文章

  1. Spring3.0中的前置通知、后置通知、环绕通知、异常通知
  2. spring security源码分析之一springSecurityFilterChain
  3. Go简单的Goroutine示例
  4. 李宏毅机器学习课程11~~~为何要深?
  5. java中content啥意思_JSTL标签中的body-content标签体内容输出格式的介绍
  6. 机器学习中的特征建模(特征工程)和算法选型建模 - 以暴力破解识别为例
  7. error: Your local changes to the following files would be overwritten by merge:
  8. timequest静态时序分析学习笔记之工具使用
  9. antd 日期选择框如何提交_基于Ant Design的Modal组件来实现一个可拖拽的React模态框...
  10. JS实现文字向上无缝滚动轮播
  11. c语言地心坐标转当地水平坐标,中国2000坐标系与地心参心坐标系转换实现
  12. 微信公众平台如何审核
  13. 最简行阶梯矩阵生成器
  14. 云杰恒指:8.16恒指期货指导交易周小结
  15. 活动(已结束)--我们是冠军,啊呸,我们是CSDN VIP
  16. HP G42-474TX在Win分区方法
  17. 适合年轻人的副业项目,想要赚钱养家就不要再懒了
  18. 模拟cmos集成电路(8)
  19. 1638_chdir函数的功能
  20. Screenshots of Super Head Go-puzzle of colors

热门文章

  1. JVM年轻代和老年代垃圾回收
  2. 远程桌面提示 “终端服务器超出了最大允许连接数” 的解决方法
  3. win7网上邻居_win7系统网上邻居在哪
  4. 论坛刷访客神器-Header自定义工具
  5. android 系统时间不准确,小米手机时间不准确怎么调小米手机时间不准确怎样调...
  6. gitlab 版本升级
  7. php composer 安装报错 Package fxp/composer-asset-plugin has a PHP requirement incompatible with your PHP
  8. 电商销售分析之制作销售看板
  9. SitePoint Podcast#167:炉边聊天
  10. Keys配置及使用说明