官网首页 › 研究观点 › 观点正文

算法小课堂 | 客户量化研究的背后——文本信息的匹配与查找

发布于 2021-07-15

<section data-role="outer" label="Powered by 135editor.com" data-mpa-powered-by="yiban.io"><section><section><section><section><section><section style="text-align: center;margin-left: 16px;margin-right: 16px;"><img data-backh="121" data-backw="370" data-ratio="0.32741935483870965" data-src="https://mmbiz.qpic.cn/mmbiz_png/AJkYaTAujIzYkyCR8gqlt6ZJJynwTEe8yvZhs0Y0c3ONSbKVq0FJAjCrXBatmXu7gXnIktjEYfjW70wDKtgLjw/640?wx_fmt=png" data-type="png" data-w="620" style="box-sizing: border-box;height: 118px;caret-color: rgb(255, 0, 0);text-indent: 36px;width: 359px;" /><br /></section></section></section></section></section></section><section><section><section><section style="text-align: center;margin-left: 16px;margin-right: 16px;"><br /></section><section style="text-align: center;margin-left: 16px;margin-right: 16px;"><br /></section><section style="margin-left: 16px;margin-right: 16px;"><section style="display: flex;justify-content: center;align-items: center;width: 100%;" data-mid="" mpa-from-tpl="t"><section style="display: flex;justify-content: center;align-items: center;" data-mid="" mpa-from-tpl="t"><section style="display: flex;justify-content: flex-start;align-items: center;flex-direction: column;" data-mid="" mpa-from-tpl="t"><section style="width: 34px;background-color: #fff;margin-bottom: -2px;z-index: 1;" data-mid="" mpa-from-tpl="t"><img data-ratio="0.8823529411764706" data-src="https://mmbiz.qpic.cn/mmbiz_png/CS2O7NW207muNo80JlhsKzuO2UxYnALWq54KGjv71eN1NTCelKrDJgNhLBPKSwkVQ6SSR8b3GibIe7X9abHlDCQ/640?wx_fmt=png" data-type="png" data-w="68" style="display: block;" /></section><section data-mid="" mpa-from-tpl="t"><p style="padding: 2px 8px 0px 8px;border-top: 1px solid #333333;font-size: 16px;font-family: PingFangSC-Semibold, PingFang SC;font-weight: bold;color: #333333;line-height: 22px;letter-spacing: 2px;" data-mid="">算法应用背景</p></section></section></section></section></section><section style="margin-left: 16px;margin-right: 16px;"><br /></section><section style="margin-left: 16px;margin-right: 16px;"><span style="color: rgb(136, 136, 136);font-size: 16px;">定量问卷和客户访谈,是客研相关课题必不可少的环节。</span></section><section style="margin-left: 16px;margin-right: 16px;"><br /></section><section style="margin-left: 16px;margin-right: 16px;"><span style="color: rgb(136, 136, 136);font-size: 16px;">通过这两种形式,研究者可以了解样本范围内用户的特征与需求,进而为对用户群体的研究,提供有力的支撑。</span></section><section style="margin-left: 16px;margin-right: 16px;"><br /></section><section style="margin-left: 16px;margin-right: 16px;"><span style="color: rgb(136, 136, 136);font-size: 16px;">过去的定量问卷和客户访谈,需要大量的人力去做样本信息采集的工作,但现在看来,这种形式是一种“愚蠢”的做法。</span></section><section style="margin-left: 16px;margin-right: 16px;"><br /></section><section style="margin-left: 16px;margin-right: 16px;"><span style="color: rgb(136, 136, 136);font-size: 16px;">得益于互联网信息技术的发展,我们可以用机器去处理。毕竟处理相同或相似的任务,而不犯错误,正是机器所擅长于人之处。</span></section><section style="margin-left: 16px;margin-right: 16px;"><br /></section><section style="margin-left: 16px;margin-right: 16px;"><span style="font-size: 16px;color: rgb(136, 136, 136);">但用机器解决问题,并非十分完美,我们是可以快速的获取大量的信息,然而再将大量信息,转换为标准且有效的信息方面,会给分析人员带来一定的挑战。</span></section><section style="margin-left: 16px;margin-right: 16px;"><br /></section><section style="margin-left: 16px;margin-right: 16px;"><span style="font-size: 16px;"><span style="color: rgb(123, 12, 0);"><strong>这种挑战,可以简单理解为对客户的信息进行匹配和查找</strong></span><span style="color: rgb(136, 136, 136);">,以及后续的分类和统计。</span></span></section><section style="margin-left: 16px;margin-right: 16px;"><br /></section><section style="margin-left: 16px;margin-right: 16px;"><span style="color: rgb(136, 136, 136);font-size: 16px;">不过这种挑战,在工程层面上似乎也比较“容易“。所谓的“容易”是建立在如今发达的网络技术上,我们可以通过搜索引擎得到很多解决方案,然后“Ctrl+C”和“Ctrl+V”,问题解决。</span></section><section style="margin-left: 16px;margin-right: 16px;"><br /></section><section style="margin-left: 16px;margin-right: 16px;"><span style="color: rgb(136, 136, 136);font-size: 16px;">“CV”大法固然屡试不爽,但是完全不符合本专栏的所要强调的理念。</span></section><section style="margin-left: 16px;margin-right: 16px;"><br /></section><section style="margin-left: 16px;margin-right: 16px;"><span style="color: rgb(136, 136, 136);font-size: 16px;">笔者认为“拿来主义”最后终究是要还回去的,很多时候我们为了完成任务,快速发展,往往会不求甚解。但是这样长此以往,终究会有被卡脖子的瓶颈期。</span></section><section style="margin-left: 16px;margin-right: 16px;"><br /></section><section style="margin-left: 16px;margin-right: 16px;"><span style="color: rgb(136, 136, 136);font-size: 16px;">所以本专栏的初衷还是希望通过逻辑思考的角度,去科普一些解决一类问题的通用算法。尽管有时候这些东西并不是很有用,但是比起“CV”大法,似乎有趣的多。</span></section><section style="margin-left: 16px;margin-right: 16px;"><br /></section><section style="margin-left: 16px;margin-right: 16px;"><span style="color: rgb(136, 136, 136);font-size: 16px;">回到问题本身,</span><span style="font-size: 16px;color: rgb(123, 12, 0);"><strong>面对海量的客户信息,如何进行快速且有效的匹配和查找?</strong></span></section><section style="margin-left: 16px;margin-right: 16px;"><br /></section><section style="margin-left: 16px;margin-right: 16px;"><span style="color: rgb(136, 136, 136);font-size: 16px;">比如在设计问卷时,我们会设定一定的规则,让用户在规则范围之内填写信息,譬如“您最喜欢______装修风格”;有些时候,我们也会对一大段的用户访谈的文本进行词频统计,比如一段对于户型看法的文本中,统计用户提到的“客厅”的次数最多,从而推测用户比较关心客厅相关的内容。</span></section><section style="margin-left: 16px;margin-right: 16px;"><br /></section><section style="margin-left: 16px;margin-right: 16px;"><span style="font-size: 16px;"><span style="color: rgb(136, 136, 136);">这两个例子中,前者可以被定义为“</span><span style="color: rgb(123, 12, 0);"><strong>模式匹配</strong></span><span style="color: rgb(136, 136, 136);">”,后者可以被定义为</span>“<span style="color: rgb(123, 12, 0);"><strong>精准文本查找</strong></span>”<span style="color: rgb(136, 136, 136);">,所以接下来,笔者将介绍如何解决这两类文本问题的通用办法。</span></span></section><section style="margin-left: 16px;margin-right: 16px;"><br /></section><section style="margin-left: 16px;margin-right: 16px;"><br /></section><section style="margin-left: 16px;margin-right: 16px;"><section style="display: flex;justify-content: center;align-items: center;width: 100%;" data-mid="" mpa-from-tpl="t"><section style="display: flex;justify-content: center;align-items: center;" data-mid="" mpa-from-tpl="t"><section style="display: flex;justify-content: flex-start;align-items: center;flex-direction: column;" data-mid="" mpa-from-tpl="t"><section style="width: 34px;background-color: #fff;margin-bottom: -2px;z-index: 1;" data-mid="" mpa-from-tpl="t"><img data-ratio="0.8823529411764706" data-src="https://mmbiz.qpic.cn/mmbiz_png/CS2O7NW207muNo80JlhsKzuO2UxYnALWq54KGjv71eN1NTCelKrDJgNhLBPKSwkVQ6SSR8b3GibIe7X9abHlDCQ/640?wx_fmt=png" data-type="png" data-w="68" style="display: block;" /></section><section data-mid="" mpa-from-tpl="t"><p style="padding: 2px 8px 0px 8px;border-top: 1px solid #333333;font-size: 16px;font-family: PingFangSC-Semibold, PingFang SC;font-weight: bold;color: #333333;line-height: 22px;letter-spacing: 2px;" data-mid="">两类文本问题的通用办法</p></section></section></section></section></section><section style="margin-left: 16px;margin-right: 16px;"><br /></section><section style="margin-left: 16px;margin-right: 16px;"><br /></section><section style="margin-left: 16px;margin-right: 16px;"><span style="color: rgb(0, 0, 0);"><strong>1、模式匹配与有限自动机</strong></span></section><section style="margin-left: 16px;margin-right: 16px;"><br /></section><section style="margin-left: 16px;margin-right: 16px;"><span style="color: rgb(136, 136, 136);font-size: 16px;">有些时候,我们会设计一些规则,让文本的内容符合我们的设定,后续对信息进行检索时可以快速匹配。</span></section><section style="margin-left: 16px;margin-right: 16px;"><span style="color: rgb(136, 136, 136);font-size: 16px;"><br /></span></section><section style="margin-left: 16px;margin-right: 16px;"><span style="color: rgb(136, 136, 136);font-size: 16px;">工程上针对模式匹配,早就给出了一套完整的解决方案,这种方案被称为“正则表达式”。</span></section><section style="margin-left: 16px;margin-right: 16px;"><span style="color: rgb(136, 136, 136);font-size: 16px;"><br /></span></section><section style="margin-left: 16px;margin-right: 16px;"><span style="color: rgb(136, 136, 136);font-size: 16px;">“正则”本义为正其礼仪法则,用到这里即为符合规则的表达式模板。利用正则表达式,可以进行快速的模式匹配。那“正则表达式”是如何做到这一点的?</span></section><section style="margin-left: 16px;margin-right: 16px;"><span style="color: rgb(136, 136, 136);font-size: 16px;"><br /></span></section><section style="margin-left: 16px;margin-right: 16px;"><span style="color: rgb(136, 136, 136);font-size: 16px;">我们来看下面这个例子:</span></section><section style="text-align: center;margin-left: 16px;margin-right: 16px;"><img class="rich_pages" data-galleryid="" data-ratio="0.3645833333333333" data-s="300,640" data-src="https://mmbiz.qpic.cn/mmbiz_png/AJkYaTAujIxgXqtJ7x2ATMbtIm1oBmTMHshfJJ41xiaSogOYZ7ZwU9H4LOTMmElANOEASWk9yto0RoFeK6nEt6w/640?wx_fmt=png" data-type="png" data-w="672" style="" /></section><section style="margin-left: 16px;margin-right: 16px;"><span style="color: rgb(136, 136, 136);font-size: 16px;"><br /></span></section><section style="margin-left: 16px;margin-right: 16px;"><span style="color: rgb(136, 136, 136);font-size: 16px;">上图即为一个正则表达式的模板。</span></section><section style="margin-left: 16px;margin-right: 16px;"><span style="color: rgb(136, 136, 136);font-size: 16px;"><br /></span></section><section style="margin-left: 16px;margin-right: 16px;"><span style="color: rgb(136, 136, 136);font-size: 16px;">由左图可知,这个正则表达式只允许输入有“a”和“b”两种字符,状态为0代表不可以接受,1代表可以接受,初始状态为0。</span></section><section style="margin-left: 16px;margin-right: 16px;"><span style="color: rgb(136, 136, 136);font-size: 16px;"><br /></span></section><section style="margin-left: 16px;margin-right: 16px;"><span style="color: rgb(136, 136, 136);font-size: 16px;">右图是一个等价的状态转换图,你可以试试,初始状态为0,不停的输入“a“或”b”,当接受状态为1时,必然是以奇数个字符“a”结尾,所以这就是符合某种规则的模式匹配。</span></section><section style="margin-left: 16px;margin-right: 16px;"><span style="color: rgb(136, 136, 136);font-size: 16px;"><br /></span></section><section style="margin-left: 16px;margin-right: 16px;"><span style="font-size: 16px;"><span style="color: rgb(136, 136, 136);">上述实现这种模式匹配的方法,被成为</span><span style="color: rgb(123, 12, 0);"><strong>有限自动机</strong></span><span style="color: rgb(136, 136, 136);">。</span></span></section><section style="margin-left: 16px;margin-right: 16px;"><span style="color: rgb(136, 136, 136);font-size: 16px;"><br /></span></section><section style="margin-left: 16px;margin-right: 16px;"><span style="font-size: 16px;color: rgb(136, 136, 136);">“有限”二字代表自动机的状态是有限的,即上例中只有0和1两种状态。设定好规则模式后,自动机可以根据输入,自动生成当前的状态,我们还可以设定哪些状态是可接受的,获取符合规则的内容。<br /></span></section><section style="margin-left: 16px;margin-right: 16px;"><span style="color: rgb(136, 136, 136);font-size: 16px;"><br /></span></section><section style="margin-left: 16px;margin-right: 16px;"><span style="color: rgb(136, 136, 136);font-size: 16px;">这里还可以再看一个更复杂但更能解决实际问题的例子,如何判断一段文本是有效数字?比如“+3.1415e926“是有效的数字,”+-3“则明显不是。</span></section><section style="margin-left: 16px;margin-right: 16px;"><span style="color: rgb(136, 136, 136);font-size: 16px;"><br /></span></section><section style="margin-left: 16px;margin-right: 16px;"><span style="color: rgb(136, 136, 136);font-size: 16px;">同样我们需要根据有效数字的特征设定一定的规则,具体如下:</span></section><section style="margin-left: 16px;margin-right: 16px;"><br /></section><section style="text-align: center;margin-left: 16px;margin-right: 16px;"><img class="rich_pages" data-backh="770" data-backw="545" data-croporisrc="https://mmbiz.qlogo.cn/mmbiz_png/AJkYaTAujIxgXqtJ7x2ATMbtIm1oBmTMuhyetJhYtItpsr9WjvFtyg2BQsmk7vwiaxw8y94SBr5zic0R7xShkbDQ/0?wx_fmt=png" data-cropx1="9" data-cropx2="297.5294117647059" data-cropy1="7.9411764705882355" data-cropy2="414" data-galleryid="" data-ratio="1.4131944444444444" data-s="300,640" data-src="https://mmbiz.qpic.cn/mmbiz_jpg/AJkYaTAujIxgXqtJ7x2ATMbtIm1oBmTMvyu3rPZ8eA9drgzLjRUbHHpW3tpGZNicoXXgz0Ftq9KfDSyU3ZRy5Ww/640?wx_fmt=jpeg" data-type="jpeg" data-w="288" style="width: 416px;height: 588px;" /></section><section style="margin-left: 16px;margin-right: 16px;"><br /></section><section style="margin-left: 16px;margin-right: 16px;"><span style="color: rgb(136, 136, 136);font-size: 16px;">针对这个问题,我们可以将输入分为6类(包括空格、正负号、数字、点、指数符号e和其他),并设定该自动机可能会出现的状态共8种(-1代表该文本必不可能是有效数字,对该文本的匹配可以停止),并判断3、5、6为可接收的状态。</span></section><section style="margin-left: 16px;margin-right: 16px;"><span style="color: rgb(136, 136, 136);font-size: 16px;"><br /></span></section><section style="margin-left: 16px;margin-right: 16px;"><span style="color: rgb(136, 136, 136);font-size: 16px;">那么这个自动机可以对任意的文本进行判断识别其是否为有效数字。</span></section><section style="margin-left: 16px;margin-right: 16px;"><br /></section><section style="text-align: center;margin-left: 16px;margin-right: 16px;"><img class="rich_pages" data-backh="308" data-backw="575" data-galleryid="" data-ratio="0.5356521739130434" data-s="300,640" data-src="https://mmbiz.qpic.cn/mmbiz_png/AJkYaTAujIxgXqtJ7x2ATMbtIm1oBmTMK7crb0bPaOkWfUvpcX5RclzTicUIpcjB7hGjfhh5iblu1MfjOsLB7Izw/640?wx_fmt=png" data-type="png" data-w="575" style="width: 100%;height: auto;" /></section><section style="margin-left: 16px;margin-right: 16px;"><img class="rich_pages" data-galleryid="" data-ratio="0.3650057937427578" data-s="300,640" data-src="https://mmbiz.qpic.cn/mmbiz_png/AJkYaTAujIxgXqtJ7x2ATMbtIm1oBmTMd3NPiaia6zLRRnGqTr3NT8wXjxza6FDt9QtcX7hEMse0ibEibH7YsOwC0g/640?wx_fmt=png" data-type="png" data-w="863" style="text-align: center;white-space: normal;" /></section><section style="margin-left: 16px;margin-right: 16px;"><br /></section><section style="margin-left: 16px;margin-right: 16px;"><span style="color: rgb(136, 136, 136);font-size: 16px;">有限自动机的应用层面很广,图灵在此基础上提出了功能更强大的“图灵机”,被称为是现代计算机的原型。除了工程上的正则表达式之外,有限自动机与计算机的编译原理也有着十分密切的关联。</span></section><section style="text-align: center;margin-left: 16px;margin-right: 16px;"><br /></section><section style="margin-left: 16px;margin-right: 16px;"><span style="color: rgb(136, 136, 136);"><br /></span></section><section style="margin-left: 16px;margin-right: 16px;"><span style="color: rgb(0, 0, 0);font-size: 16px;"><strong>2、精准文本查找与KMP、Rabin-Karp</strong></span></section><section style="margin-left: 16px;margin-right: 16px;"><br /></section><section style="margin-left: 16px;margin-right: 16px;"><br /></section><section style="margin-left: 16px;margin-right: 16px;"><span style="color: rgb(136, 136, 136);font-size: 16px;">另一类文本问题可以称之为精准文本查找,此类问题是需要在一段文本中查找是否存在某个具体的关键词。</span></section><section style="margin-left: 16px;margin-right: 16px;"><span style="color: rgb(136, 136, 136);font-size: 16px;"><br /></span></section><section style="margin-left: 16px;margin-right: 16px;"><span style="color: rgb(136, 136, 136);font-size: 16px;">比如你需要在文本“ababaababc”中查找是否存在”ababc”这个关键词,你打算如何进行查找?一个简单暴力的办法就是逐个匹配,具体如下图所示:</span></section><section style="margin-left: 16px;margin-right: 16px;"><span style="color: rgb(136, 136, 136);font-size: 16px;">&nbsp;</span></section><section style="text-align: center;margin-left: 16px;margin-right: 16px;"><img class="rich_pages" data-galleryid="" data-ratio="0.8326271186440678" data-s="300,640" data-src="https://mmbiz.qpic.cn/mmbiz_png/AJkYaTAujIxgXqtJ7x2ATMbtIm1oBmTMQUQeUia1dUiaqia6MWniacvzwZwju4UZf6rbKnWDOK0EWkNpySSuKiaM62Q/640?wx_fmt=png" data-type="png" data-w="472" style="" /></section><section style="margin-left: 16px;margin-right: 16px;"><span style="color: rgb(136, 136, 136);font-size: 16px;">我们将关键词逐格移动,每次移动之前,都将关键词的每个字符和对应文本的每个字符进行匹配,直到所有字符都和对应文本的字符匹配,说明找到了一个匹配方案。</span></section><section style="margin-left: 16px;margin-right: 16px;"><span style="color: rgb(136, 136, 136);font-size: 16px;"><br /></span></section><section style="margin-left: 16px;margin-right: 16px;"><span style="font-size: 16px;"><span style="color: rgb(136, 136, 136);">这种匹配方法被称为“</span><span style="color: rgb(123, 12, 0);"><strong>朴素法</strong></span><span style="color: rgb(136, 136, 136);">”,顾名思义,按部就班地移动和匹配,平平无奇,简单且暴力。</span><br /></span></section><section style="margin-left: 16px;margin-right: 16px;"><span style="color: rgb(136, 136, 136);font-size: 16px;"><br /></span></section><section style="margin-left: 16px;margin-right: 16px;"><span style="color: rgb(136, 136, 136);font-size: 16px;">那有没有更优秀的查找匹配方案?</span></section><section style="margin-left: 16px;margin-right: 16px;"><span style="color: rgb(136, 136, 136);font-size: 16px;"><br /></span></section><section style="margin-left: 16px;margin-right: 16px;"><span style="color: rgb(136, 136, 136);font-size: 16px;">请联系第一节的有限自动机思考一下,其实对于关键词本身,何尝不是一种符合某些特定规则的匹配模式,但是这种匹配模式是特殊的,因为只有它自己本身符合,而不是具有某种通解性质。</span></section><section style="margin-left: 16px;margin-right: 16px;"><span style="color: rgb(136, 136, 136);font-size: 16px;"><br /></span></section><section style="margin-left: 16px;margin-right: 16px;"><span style="color: rgb(136, 136, 136);font-size: 16px;">因此我们同样可以用有限自动机的思想,指导解决精准查找的问题。我们可以将关键词,拆分成可能会匹配的状态,如下图所示:</span></section><section style="margin-left: 16px;margin-right: 16px;"><span style="color: rgb(136, 136, 136);"><br /></span></section><section style="text-align: center;margin-left: 16px;margin-right: 16px;"><img class="rich_pages" data-galleryid="" data-ratio="0.7913043478260869" data-s="300,640" data-src="https://mmbiz.qpic.cn/mmbiz_png/AJkYaTAujIxgXqtJ7x2ATMbtIm1oBmTM3XnT0jrcD9ib7GYdablwVic1fYXwhVPlZaaTbfgBjtTgCL8Y5NVckzZQ/640?wx_fmt=png" data-type="png" data-w="460" style="width: 460px;height: auto;" /></section><section style="margin-left: 16px;margin-right: 16px;"><br /></section><section style="margin-left: 16px;margin-right: 16px;"><br /></section><section style="margin-left: 16px;margin-right: 16px;"><span style="font-size: 16px;"><span style="color: rgb(136, 136, 136);">当状态对应编号为5时,说明找到了一个匹配方案。这里注意到,后面增加了叫做“</span><span style="color: rgb(123, 12, 0);"><strong>最长前缀</strong></span><span style="color: rgb(136, 136, 136);">“的一列。</span></span></section><section style="margin-left: 16px;margin-right: 16px;"><span style="color: rgb(136, 136, 136);font-size: 16px;"><br /></span></section><section style="margin-left: 16px;margin-right: 16px;"><span style="color: rgb(136, 136, 136);font-size: 16px;">”最长前缀“即指对于某个词,满足其前缀等于该词后缀的最长长度的前缀,比如”abab“的最长前缀为”ab“,因为”aba“不满足等于”abab“的后缀。</span></section><section style="margin-left: 16px;margin-right: 16px;"><span style="color: rgb(136, 136, 136);font-size: 16px;"><br /></span></section><section style="margin-left: 16px;margin-right: 16px;"><span style="color: rgb(136, 136, 136);font-size: 16px;">而最长前缀,则是促进状态变化和提高匹配效率的关键。</span></section><section style="margin-left: 16px;margin-right: 16px;"><span style="color: rgb(136, 136, 136);font-size: 16px;"><br /></span></section><section style="margin-left: 16px;margin-right: 16px;"><span style="color: rgb(136, 136, 136);font-size: 16px;">比如在首次进行匹配时,观察下图,我们注意到,前面4个字符都匹配成功,但是最后一个字符匹配失败,这时我们注意到”abab“的最长前缀为”ab“,并且”ab“后面一个字符”a“与文本中不匹配的字符相同,因此我们可以直接将状态转移到图中所示的最下面一行再继续匹配,而不是逐个字符进行比较。</span></section><section style="margin-left: 16px;margin-right: 16px;"><span style="color: rgb(136, 136, 136);"><br /></span></section><section style="text-align: center;margin-left: 16px;margin-right: 16px;"><img class="rich_pages" data-galleryid="" data-ratio="0.622895622895623" data-s="300,640" data-src="https://mmbiz.qpic.cn/mmbiz_png/AJkYaTAujIxgXqtJ7x2ATMbtIm1oBmTMr0ESF22hBy2kib5ma5Yb0yDSIbsBBpfedVnQTLricgVtbeUUEOqQMUfw/640?wx_fmt=png" data-type="png" data-w="594" style="" /></section><section style="margin-left: 16px;margin-right: 16px;"><br /></section><section style="margin-left: 16px;margin-right: 16px;"><span style="color: rgb(136, 136, 136);font-size: 16px;">这种利用最长前缀进行匹配的方式,在大部分情况(除非你的文本基本上是重复的一个字符)下,可以大幅提高精准匹配效率。</span></section><section style="margin-left: 16px;margin-right: 16px;"><span style="color: rgb(136, 136, 136);font-size: 16px;"><br /></span></section><section style="margin-left: 16px;margin-right: 16px;"><span style="font-size: 16px;"><span style="color: rgb(136, 136, 136);">这种字符的匹配算法被称为</span><span style="color: rgb(123, 12, 0);"><strong>KMP算法</strong></span><span style="color: rgb(136, 136, 136);">,KMP是它的提出者们 Knuth、Morria和Pratt 首字母的缩写,这种算法是目前公认,最高效的处理文本精准查找的办法。</span></span></section><section style="margin-left: 16px;margin-right: 16px;"><br /></section><section style="margin-left: 16px;margin-right: 16px;"><span style="font-size: 16px;"><span style="color: rgb(136, 136, 136);">另一种文本精准查找的算法</span><span style="color: rgb(123, 12, 0);"><strong>Rabin-Karp,</strong></span><span style="color: rgb(136, 136, 136);">也提供了处理此类问题一个非常巧妙的思路。</span></span></section><section style="margin-left: 16px;margin-right: 16px;"><span style="color: rgb(136, 136, 136);font-size: 16px;"><br /></span></section><section style="margin-left: 16px;margin-right: 16px;"><span style="color: rgb(136, 136, 136);font-size: 16px;">概括言之,这种算法是通过字符和对应数值之间的映射关系,将字符匹配转换为数值比较来提高查找的效率。</span></section><section style="margin-left: 16px;margin-right: 16px;"><span style="color: rgb(136, 136, 136);font-size: 16px;"><br /></span></section><section style="margin-left: 16px;margin-right: 16px;"><span style="color: rgb(136, 136, 136);font-size: 16px;">我们还是以上面的例子作为示范,我们首先需要检索文本中出现的字符,并将不同的字符设为不同的值,比如将a设为1,b设为2,c设为3,接下来,通过这种字符和数字之间的关系映射,计算“ababc“的数值和为1*2+2*2+3*1=8,然后也是逐格对文本进行匹配。</span></section><section style="margin-left: 16px;margin-right: 16px;"><span style="color: rgb(136, 136, 136);"><br /></span></section><section style="text-align: center;margin-left: 16px;margin-right: 16px;"><img class="rich_pages" data-galleryid="" data-ratio="0.6580882352941176" data-s="300,640" data-src="https://mmbiz.qpic.cn/mmbiz_png/AJkYaTAujIxgXqtJ7x2ATMbtIm1oBmTMPB9IAclSYjt8rFqq9BLl1C1gkHxjgtYODJvTfZMsr26J3deMqVXd3g/640?wx_fmt=png" data-type="png" data-w="272" style="width: 272px;height: auto;" /></section><section style="margin-left: 16px;margin-right: 16px;"><br /></section><section style="margin-left: 16px;margin-right: 16px;"><span style="color: rgb(136, 136, 136);font-size: 16px;">具体如图所示:“ababa”的数值和为7,不等于“ababc“的数值和,接下来就移动一格,得到下一个文本待匹配项”babaa“,此时只需减去头部字符的值,再加上尾部字符的值即可,得到的结果仍为7,那么便继续逐格移动下去……</span></section><section style="margin-left: 16px;margin-right: 16px;"><span style="color: rgb(136, 136, 136);"><br /></span></section><section style="text-align: center;margin-left: 16px;margin-right: 16px;"><img class="rich_pages" data-galleryid="" data-ratio="0.6673511293634496" data-s="300,640" data-src="https://mmbiz.qpic.cn/mmbiz_png/AJkYaTAujIxgXqtJ7x2ATMbtIm1oBmTMKxXbtWlHAzv0aZm7sVlC7niaMAGsJ9ibTBy61n3KPcuZPxesglPztgOw/640?wx_fmt=png" data-type="png" data-w="487" style="" /></section><section style="margin-left: 16px;margin-right: 16px;"><br /></section><section style="margin-left: 16px;margin-right: 16px;"><span style="color: rgb(136, 136, 136);font-size: 16px;">这种算法的策略是,只有当文本的待匹配项的数值和等于关键词的数值和时,我们再进行逐字符匹配验证。Rabin-Karp算法在大部分情况下也能明显提高匹配的效率。</span></section><section style="margin-left: 16px;margin-right: 16px;"><br /></section><section style="margin-left: 16px;margin-right: 16px;"><br /></section><section style="margin-left: 16px;margin-right: 16px;"><section style="display: flex;justify-content: center;align-items: center;width: 100%;" data-mid="" mpa-from-tpl="t"><section style="display: flex;justify-content: center;align-items: center;" data-mid="" mpa-from-tpl="t"><section style="display: flex;justify-content: flex-start;align-items: center;flex-direction: column;" data-mid="" mpa-from-tpl="t"><section style="width: 34px;background-color: #fff;margin-bottom: -2px;z-index: 1;" data-mid="" mpa-from-tpl="t"><img data-ratio="0.8823529411764706" data-src="https://mmbiz.qpic.cn/mmbiz_png/CS2O7NW207muNo80JlhsKzuO2UxYnALWq54KGjv71eN1NTCelKrDJgNhLBPKSwkVQ6SSR8b3GibIe7X9abHlDCQ/640?wx_fmt=png" data-type="png" data-w="68" style="display: block;" /></section><section data-mid="" mpa-from-tpl="t"><p style="padding: 2px 8px 0px 8px;border-top: 1px solid #333333;font-size: 16px;font-family: PingFangSC-Semibold, PingFang SC;font-weight: bold;color: #333333;line-height: 22px;letter-spacing: 2px;" data-mid="">小结<br /><br /></p></section></section></section></section></section><section style="margin-left: 16px;margin-right: 16px;"><span style="color: rgb(136, 136, 136);font-size: 16px;">本文介绍了关于文本信息的匹配与查找的几种基本算法,这些算法渗透了西方科学家多年努力的智慧结晶,并作为信息时代的基础建设,造福于当今的世界。</span></section><section style="margin-left: 16px;margin-right: 16px;"><span style="color: rgb(136, 136, 136);font-size: 16px;"><br /></span></section><section style="margin-left: 16px;margin-right: 16px;"><span style="font-size: 16px;"><span style="color: rgb(136, 136, 136);">人工智能时代的到来,对文本信息的处理,提出了更高的要求,</span><span style="color: rgb(123, 12, 0);"><strong>如何让机器精准理解,客户在文本所要表达的意义和情绪?</strong></span></span></section><section style="margin-left: 16px;margin-right: 16px;"><span style="color: rgb(136, 136, 136);font-size: 16px;"><br /></span></section><section style="margin-left: 16px;margin-right: 16px;"><span style="color: rgb(136, 136, 136);font-size: 16px;">基于统计学的模型和对海量数据的训练拟合,或许能接近解决这个问题。</span></section><section style="margin-left: 16px;margin-right: 16px;"><span style="color: rgb(136, 136, 136);font-size: 16px;"><br /></span></section><section style="margin-left: 16px;margin-right: 16px;"><span style="color: rgb(136, 136, 136);font-size: 16px;">其实一些人们自然而然、毫无困难或者下意识做的事情,用算法表达却最为困难,我们都能理解自然语言,但至今为止还没有人能解释我们是如何做到的,至少没办法用算法解释。</span></section><section style="margin-left: 16px;margin-right: 16px;"><br /></section><section style="margin-left: 16px;margin-right: 16px;"><br /></section><section style="text-align: center;margin-left: 16px;margin-right: 16px;"><span style="color: rgb(136, 136, 136);font-size: 12px;">-&nbsp;TO BE&nbsp;CONTINUED -</span><br /></section><section style="text-align: center;margin-left: 16px;margin-right: 16px;"><br /></section><section data-role="paragraph" style="white-space: normal;box-sizing: border-box;"><section style="max-width: 100%;font-family: -apple-system, BlinkMacSystemFont, &quot;Helvetica Neue&quot;, &quot;PingFang SC&quot;, &quot;Hiragino Sans GB&quot;, &quot;Microsoft YaHei UI&quot;, &quot;Microsoft YaHei&quot;, Arial, sans-serif;letter-spacing: 0.544px;white-space: normal;background-color: rgb(255, 255, 255);box-sizing: border-box !important;overflow-wrap: break-word !important;"><section style="max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;"><p style="text-align: center;max-width: 100%;min-height: 1em;box-sizing: border-box !important;overflow-wrap: break-word !important;"><span style="background-color: rgb(136, 136, 136);color: rgb(255, 255, 255);font-family: PingFangTC-Light;font-size: 12px;letter-spacing: 0.544px;caret-color: red;">&nbsp;-&nbsp; 小程序 -&nbsp;</span><br /></p></section></section><section style="margin-right: 8px;margin-left: 8px;max-width: 100%;letter-spacing: 0.544px;white-space: normal;background-color: rgb(255, 255, 255);font-family: -apple-system-font, BlinkMacSystemFont, &quot;Helvetica Neue&quot;, &quot;PingFang SC&quot;, &quot;Hiragino Sans GB&quot;, &quot;Microsoft YaHei UI&quot;, &quot;Microsoft YaHei&quot;, Arial, sans-serif;text-align: center;min-height: 1em;line-height: 1.75em;box-sizing: border-box !important;overflow-wrap: break-word !important;"><span style="color: rgb(127, 127, 127);font-family: PingFangTC-Light;font-size: 12px;letter-spacing: 0.544px;text-align: center;caret-color: rgb(255, 0, 0);background-color: rgb(255, 255, 255);">&nbsp;·「禾略问答」·</span></section><p><a class="weapp_image_link js_weapp_entry" data-miniprogram-appid="wxf051804df9944e68" data-miniprogram-path="pages/index/index" data-miniprogram-nickname="禾略问答" href="" data-miniprogram-type="image" data-miniprogram-servicetype="" href=""><img class="rich_pages" data-ratio="0.33830455259026687" data-s="300,640" data-src="https://mmbiz.qpic.cn/mmbiz_png/AJkYaTAujIxgXqtJ7x2ATMbtIm1oBmTM5cLtzxaHKiaJINP1DiaedwSS8oUuQadhFxpcXZiaWxTvWyWxXichXeiaGHw/640?wx_fmt=png" data-type="png" data-w="1274" style="" /></a></p><section style="margin-right: 8px;margin-left: 8px;max-width: 100%;letter-spacing: 0.544px;white-space: normal;background-color: rgb(255, 255, 255);font-family: -apple-system-font, BlinkMacSystemFont, &quot;Helvetica Neue&quot;, &quot;PingFang SC&quot;, &quot;Hiragino Sans GB&quot;, &quot;Microsoft YaHei UI&quot;, &quot;Microsoft YaHei&quot;, Arial, sans-serif;text-align: center;min-height: 1em;line-height: 1.75em;box-sizing: border-box !important;overflow-wrap: break-word !important;"><br /></section><section style="margin-right: 8px;margin-left: 8px;max-width: 100%;letter-spacing: 0.544px;white-space: normal;background-color: rgb(255, 255, 255);font-family: -apple-system-font, BlinkMacSystemFont, &quot;Helvetica Neue&quot;, &quot;PingFang SC&quot;, &quot;Hiragino Sans GB&quot;, &quot;Microsoft YaHei UI&quot;, &quot;Microsoft YaHei&quot;, Arial, sans-serif;text-align: center;min-height: 1em;line-height: 1.75em;box-sizing: border-box !important;overflow-wrap: break-word !important;"><span style="max-width: 100%;caret-color: red;color: rgb(127, 127, 127);font-family: PingFangTC-Light;font-size: 12px;box-sizing: border-box !important;overflow-wrap: break-word !important;">&nbsp;·<span style="max-width: 100%;color: rgb(127, 127, 127);font-family: PingFangTC-Light;letter-spacing: 0.544px;text-align: center;caret-color: rgb(255, 0, 0);background-color: rgb(255, 255, 255);">「HotTina」</span>·</span></section></section><section data-role="paragraph" style="white-space: normal;"><section style="text-align: center;margin-left: 8px;margin-right: 8px;"><a class="weapp_image_link js_weapp_entry" data-miniprogram-appid="wxdcdd1e610d71ae74" data-miniprogram-path="pages/serch/serch" data-miniprogram-nickname="HotTina" href="" data-miniprogram-type="image" data-miniprogram-servicetype="" href=""><img class="rich_pages" data-backh="120" data-backw="389" data-ratio="0.30973451327433627" data-s="300,640" data-src="https://mmbiz.qpic.cn/mmbiz_png/AJkYaTAujIxBKiaQNH3yAajSVKNDghYCq5gnROOAWjmdwIqhP9gBLpU9iaicBb19EGQVKpTzeP0lOXYyF5icG1y74Q/640?wx_fmt=png" data-type="png" data-w="791" style="width: 100%;height: auto;" /></a></section><p style="text-align: center;"><span style="color: rgb(123, 127, 131);font-family: -apple-system, BlinkMacSystemFont, &quot;Helvetica Neue&quot;, &quot;PingFang SC&quot;, &quot;Hiragino Sans GB&quot;, &quot;Microsoft YaHei UI&quot;, &quot;Microsoft YaHei&quot;, Arial, sans-serif;font-size: 12px;letter-spacing: 0.544px;text-align: center;background-color: rgb(255, 255, 255);"><br /></span></p><p style="text-align: center;"><span style="color: rgb(127, 127, 127);font-family: PingFangTC-Light;font-size: 12px;letter-spacing: 0.544px;text-align: center;caret-color: rgb(255, 0, 0);background-color: rgb(255, 255, 255);">*</span></p><p style="text-align: center;"><span style="color: rgb(123, 127, 131);font-family: -apple-system, BlinkMacSystemFont, &quot;Helvetica Neue&quot;, &quot;PingFang SC&quot;, &quot;Hiragino Sans GB&quot;, &quot;Microsoft YaHei UI&quot;, &quot;Microsoft YaHei&quot;, Arial, sans-serif;font-size: 12px;letter-spacing: 0.544px;text-align: center;background-color: rgb(255, 255, 255);"><br /></span></p><section data-role="outer" label="Powered by 135editor.com" style="max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;"><section data-role="outer" label="Powered by 135editor.com" style="max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;"><section style="margin-right: 8px;margin-left: 8px;max-width: 100%;box-sizing: border-box;font-family: -apple-system, BlinkMacSystemFont, &quot;Helvetica Neue&quot;, &quot;PingFang SC&quot;, &quot;Hiragino Sans GB&quot;, &quot;Microsoft YaHei UI&quot;, &quot;Microsoft YaHei&quot;, Arial, sans-serif;letter-spacing: 0.544px;background-color: rgb(255, 255, 255);text-align: left;line-height: 1.75em;overflow-wrap: break-word !important;"><span style="max-width: 100%;color: rgb(89, 89, 89);letter-spacing: 1.5px;text-align: center;-webkit-text-stroke-width: 0.2px;font-size: 12px;font-family: 微软雅黑, &quot;Microsoft YaHei&quot;;box-sizing: border-box !important;overflow-wrap: break-word !important;">▷往期文章彩蛋:不要戳开!!!</span></section><section style="margin: 5px 8px;text-align: center;line-height: 1.5em;"><a target="_blank" href="http://mp.weixin.qq.com/s?__biz=MzIxMTUxMzE2Mw==&amp;mid=2247500345&amp;idx=1&amp;sn=93797fca0ea11825bcc9e5e1c0109c52&amp;chksm=9756b81da021310ba7a377bdce7ef2877fb30eb246731c626bffd343008b77703527595ad2ed&amp;scene=21#wechat_redirect" textvalue="你已选中了添加链接的内容" data-itemshowtype="0" tab="innerlink" data-linktype="1"><span class="js_jump_icon h5_image_link" data-positionback="static" style="top: auto;left: auto;margin: 0px;right: auto;bottom: auto;"><img class="rich_pages" data-backh="86" data-backw="562" data-ratio="0.15350877192982457" data-s="300,640" data-src="https://mmbiz.qpic.cn/mmbiz_png/AJkYaTAujIyWURddlHITkZgKz53a4xugLLibwPxIshPkhYb8rUpx6OiaokEiaiaoQAs4pBYvOk4KlGWhp5OagMyWaw/640?wx_fmt=png" data-type="png" data-w="912" style="width: 100%;height: auto;margin: 0px;" /></span></a></section><section style="margin: 5px 8px;text-align: center;line-height: 1.5em;"><a target="_blank" href="http://mp.weixin.qq.com/s?__biz=MzIxMTUxMzE2Mw==&amp;mid=2247500355&amp;idx=2&amp;sn=2c6ce758ab3881befb2fbba0ba3603f1&amp;chksm=9756b867a021317120bad43bc938ebb4cdb2953af8c54167618f6a0d2e10e4a0c0dbbeb90f65&amp;scene=21#wechat_redirect" textvalue="你已选中了添加链接的内容" data-itemshowtype="0" tab="innerlink" data-linktype="1"><span class="js_jump_icon h5_image_link" data-positionback="static" style="top: auto;left: auto;margin: 0px;right: auto;bottom: auto;"><img class="rich_pages" data-backh="86" data-backw="562" data-ratio="0.15350877192982457" data-s="300,640" data-src="https://mmbiz.qpic.cn/mmbiz_png/AJkYaTAujIyWURddlHITkZgKz53a4xug2z2ZNw3efskOCCTiaR2MZIrkVnqNUUySzc8kPhT5aLfLE1SvHGhoJUw/640?wx_fmt=png" data-type="png" data-w="912" style="width: 100%;height: auto;margin: 0px;" /></span></a></section><section style="margin: 5px 8px;text-align: center;line-height: 1.5em;"><a target="_blank" href="http://mp.weixin.qq.com/s?__biz=MzIxMTUxMzE2Mw==&amp;mid=2247500384&amp;idx=1&amp;sn=ce96c211a2ed19ee560b34d30d321292&amp;chksm=9756b844a0213152bb36ae4ebc877ea634416495af8892942074d23f0d1b5581b32b705c0835&amp;scene=21#wechat_redirect" textvalue="你已选中了添加链接的内容" data-itemshowtype="0" tab="innerlink" data-linktype="1"><span class="js_jump_icon h5_image_link" data-positionback="static" style="top: auto;left: auto;margin: 0px;right: auto;bottom: auto;"><img class="rich_pages" data-backh="86" data-backw="562" data-ratio="0.15350877192982457" data-s="300,640" data-src="https://mmbiz.qpic.cn/mmbiz_png/AJkYaTAujIyWURddlHITkZgKz53a4xugNEZT4DD88icwcAl08ZuziaiadYt82wzZG5n14t7224xWjyeK8SNXNIp8A/640?wx_fmt=png" data-type="png" data-w="912" style="width: 100%;height: auto;margin: 0px;" /></span></a></section><section style="margin: 5px 8px;text-align: center;line-height: 1.5em;"><a target="_blank" href="http://mp.weixin.qq.com/s?__biz=MzIxMTUxMzE2Mw==&amp;mid=2247500776&amp;idx=1&amp;sn=6f4fcd10bc90a8f72744416eda3995a4&amp;chksm=9756b9cca02130da9094518319d318ca4fd11413c1213d18be9cc9d8302528b34816fdd34394&amp;scene=21#wechat_redirect" textvalue="你已选中了添加链接的内容" data-itemshowtype="0" tab="innerlink" data-linktype="1"><span class="js_jump_icon h5_image_link" data-positionback="static" style="top: auto;left: auto;margin: 0px;right: auto;bottom: auto;"><img class="rich_pages" data-backh="86" data-backw="562" data-ratio="0.15350877192982457" data-s="300,640" data-src="https://mmbiz.qpic.cn/mmbiz_png/AJkYaTAujIyWURddlHITkZgKz53a4xugA8lpBib3AWM95x6tIIxu56bryKOYOVyRWzd6jsYRjicIiaF1hohgrpN1w/640?wx_fmt=png" data-type="png" data-w="912" style="width: 100%;height: auto;margin: 0px;" /></span></a></section><section style="margin: 5px 8px;text-align: center;line-height: 1.5em;"><a target="_blank" href="http://mp.weixin.qq.com/s?__biz=MzIxMTUxMzE2Mw==&amp;mid=2247500347&amp;idx=1&amp;sn=dffbd70a87a2f5610cf728e4970ec869&amp;chksm=9756b81fa0213109c740e135c93ac90c20e029871a10bf1ad6d116f9d663d7a26b7d8a673bbe&amp;scene=21#wechat_redirect" textvalue="你已选中了添加链接的内容" data-itemshowtype="0" tab="innerlink" data-linktype="1"><span class="js_jump_icon h5_image_link" data-positionback="static" style="top: auto;left: auto;margin: 0px;right: auto;bottom: auto;"><img class="rich_pages" data-backh="86" data-backw="562" data-ratio="0.15350877192982457" data-s="300,640" data-src="https://mmbiz.qpic.cn/mmbiz_png/AJkYaTAujIyWURddlHITkZgKz53a4xugMQjVx8C1LeClYXAgR1lKe771SGnJj9TxohSmoF4W79ORTDc52UmmNQ/640?wx_fmt=png" data-type="png" data-w="912" style="width: 100%;height: auto;margin: 0px;" /></span></a></section></section></section><section data-role="paragraph" style="max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;"><section data-tools="135编辑器" data-id="86134" style="max-width: 100%;font-family: -apple-system, BlinkMacSystemFont, Arial, sans-serif;letter-spacing: 0.544px;background-color: rgb(255, 255, 255);box-sizing: border-box !important;overflow-wrap: break-word !important;"><section data-tools="135编辑器" data-id="86134" style="max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;"><section style="margin: 5px 8px;max-width: 100%;min-height: 1em;text-align: right;letter-spacing: 0.544px;line-height: 1.5em;box-sizing: border-box !important;overflow-wrap: break-word !important;"><br /></section></section></section><section data-tools="135编辑器" data-id="86134" style="max-width: 100%;letter-spacing: 0.544px;font-family: -apple-system, BlinkMacSystemFont, Arial, sans-serif;background-color: rgb(255, 255, 255);box-sizing: border-box !important;overflow-wrap: break-word !important;"><section data-tools="135编辑器" data-id="86134" style="max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;"><section style="margin-right: 8px;margin-left: 8px;max-width: 100%;min-height: 1em;text-align: right;letter-spacing: 0.544px;line-height: 1.75em;box-sizing: border-box !important;overflow-wrap: break-word !important;"><span style="max-width: 100%;color: rgb(136, 136, 136);letter-spacing: 0.544px;font-size: 13px;font-family: PingFangTC-Light;box-sizing: border-box !important;overflow-wrap: break-word !important;">2021 | 真好野</span></section><section style="margin-right: 8px;margin-left: 8px;max-width: 100%;min-height: 1em;text-align: right;letter-spacing: 0.544px;line-height: 1.75em;box-sizing: border-box !important;overflow-wrap: break-word !important;"><br /></section></section></section><section data-role="outer" label="Powered by 135editor.com" style="max-width: 100%;font-family: -apple-system, BlinkMacSystemFont, &quot;Helvetica Neue&quot;, &quot;PingFang SC&quot;, &quot;Hiragino Sans GB&quot;, &quot;Microsoft YaHei UI&quot;, &quot;Microsoft YaHei&quot;, Arial, sans-serif;letter-spacing: 0.544px;background-color: rgb(255, 255, 255);box-sizing: border-box !important;overflow-wrap: break-word !important;"><section data-role="paragraph" style="max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;"><section data-role="outer" label="Powered by 135editor.com" style="max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;"><section style="margin-right: 8px;margin-left: 8px;max-width: 100%;letter-spacing: 0.544px;min-height: 1em;text-align: center;font-family: -apple-system-font, BlinkMacSystemFont, &quot;Helvetica Neue&quot;, &quot;PingFang SC&quot;, &quot;Hiragino Sans GB&quot;, &quot;Microsoft YaHei UI&quot;, &quot;Microsoft YaHei&quot;, Arial, sans-serif;box-sizing: border-box !important;overflow-wrap: break-word !important;"><section data-tools="135编辑器" data-id="93717" data-width="95%" style="margin-right: auto;margin-left: auto;max-width: 100%;box-sizing: border-box;width: 627.938px;flex: 0 0 95%;overflow-wrap: break-word !important;"><section style="max-width: 100%;box-sizing: border-box;background-image: url(&quot;https://mmbiz.qpic.cn/mmbiz_png/7QRTvkK2qC6tIGvc3ozCHcBonywI7fDV4Ksmoy5hWQHibq7TQpAQ5tricOQ7dnLg81iapxGeoUkic5Ob8vHOSI24xQ/640?wx_fmt=png&quot;);background-size: 100%;overflow-wrap: break-word !important;"><section style="padding: 1em;max-width: 100%;box-sizing: border-box;line-height: 1.75em;letter-spacing: 1px;overflow-wrap: break-word !important;"><section style="max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;"><section style="margin-right: 8px;margin-left: 8px;max-width: 100%;box-sizing: border-box;min-height: 1em;color: rgb(0, 0, 0);font-size: 14px;line-height: 1.75em;overflow-wrap: break-word !important;"><span style="max-width: 100%;font-size: 13px;caret-color: red;color: rgb(255, 255, 255);background-color: rgb(0, 0, 0);font-family: PingFangTC-Light;box-sizing: border-box !important;overflow-wrap: break-word !important;"><img data-ratio="1.4151260504201681" data-src="https://mmbiz.qpic.cn/mmbiz_png/AJkYaTAujIyWURddlHITkZgKz53a4xugicDNgxJwtUNwSbyTwoKMeKhpicXuMUPzremXkHSdoKAkunXaicYu2AOtw/640?wx_fmt=png" data-type="png" data-w="595" style="height: 555px;box-sizing: border-box;color: rgb(51, 51, 51);font-size: 17px;letter-spacing: 0.544px;z-index: -1;cursor: pointer;font-family: -apple-system-font, system-ui, &quot;Helvetica Neue&quot;, &quot;PingFang SC&quot;, &quot;Hiragino Sans GB&quot;, &quot;Microsoft YaHei UI&quot;, &quot;Microsoft YaHei&quot;, Arial, sans-serif;width: 392px;max-inline-size: 100%;overflow-wrap: break-word !important;outline: none 0px !important;visibility: visible !important;" title="好.png" /></span></section><section style="margin-right: 8px;margin-left: 8px;max-width: 100%;box-sizing: border-box;min-height: 1em;color: rgb(0, 0, 0);font-size: 14px;line-height: 1.75em;overflow-wrap: break-word !important;"><span style="max-width: 100%;caret-color: red;color: rgb(255, 255, 255);background-color: rgb(0, 0, 0);font-family: PingFangTC-Light;font-size: 12px;box-sizing: border-box !important;overflow-wrap: break-word !important;">&nbsp;「 www.urasr.com」&nbsp;</span></section><section style="margin-right: 8px;margin-left: 8px;max-width: 100%;box-sizing: border-box;min-height: 1em;color: rgb(0, 0, 0);font-size: 14px;line-height: 1.75em;overflow-wrap: break-word !important;"><span style="max-width: 100%;color: rgb(127, 127, 127);caret-color: red;font-family: PingFangTC-Light;font-size: 10px;box-sizing: border-box !important;overflow-wrap: break-word !important;">#BE TRUE&nbsp; #BE WELL&nbsp; #BE WILD</span></section><section style="margin-right: 8px;margin-left: 8px;max-width: 100%;box-sizing: border-box;min-height: 1em;color: rgb(0, 0, 0);font-size: 14px;line-height: 1.75em;overflow-wrap: break-word !important;"><br /></section></section></section></section></section><section style="margin-right: 8px;margin-left: 8px;max-width: 100%;color: rgb(163, 163, 163);letter-spacing: 1.5px;font-family: 微软雅黑, Arial, sans-serif;line-height: 1.75em;box-sizing: border-box !important;overflow-wrap: break-word !important;"><br /></section></section></section></section></section><section style="margin-right: 8px;margin-left: 8px;max-width: 100%;font-family: -apple-system-font, BlinkMacSystemFont, &quot;Helvetica Neue&quot;, &quot;PingFang SC&quot;, &quot;Hiragino Sans GB&quot;, &quot;Microsoft YaHei UI&quot;, &quot;Microsoft YaHei&quot;, Arial, sans-serif;letter-spacing: 0.544px;text-align: center;min-height: 1em;line-height: 1.75em;box-sizing: border-box !important;overflow-wrap: break-word !important;"><span style="letter-spacing: 0.544px;color: rgb(127, 127, 127);font-family: PingFangTC-Light;font-size: 12px;caret-color: red;background-color: rgb(255, 255, 255);">*</span><br /></section></section><section data-role="outer" label="Powered by 135editor.com"><section data-role="outer" label="Powered by 135editor.com"><section data-role="paragraph" style="max-width: 100%;letter-spacing: 0.544px;background-color: rgb(255, 255, 255);font-family: -apple-system, BlinkMacSystemFont, &quot;Helvetica Neue&quot;, &quot;PingFang SC&quot;, &quot;Hiragino Sans GB&quot;, &quot;Microsoft YaHei UI&quot;, &quot;Microsoft YaHei&quot;, Arial, sans-serif;box-sizing: border-box !important;overflow-wrap: break-word !important;"><section data-role="outer" label="Powered by 135editor.com" style="max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;"><section data-role="paragraph" style="max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;"><section style="margin-right: 8px;margin-left: 8px;max-width: 100%;letter-spacing: 0.544px;min-height: 1em;text-align: center;font-family: -apple-system-font, BlinkMacSystemFont, &quot;Helvetica Neue&quot;, &quot;PingFang SC&quot;, &quot;Hiragino Sans GB&quot;, &quot;Microsoft YaHei UI&quot;, &quot;Microsoft YaHei&quot;, Arial, sans-serif;box-sizing: border-box !important;overflow-wrap: break-word !important;"><section style="margin-right: 8px;margin-left: 8px;max-width: 100%;box-sizing: border-box;min-height: 1em;color: rgb(0, 0, 0);font-size: 14px;line-height: 1.75em;overflow-wrap: break-word !important;"><span style="max-width: 100%;color: rgb(127, 127, 127);font-size: 12px;letter-spacing: 0.544px;font-family: PingFangTC-Light;box-sizing: border-box !important;overflow-wrap: break-word !important;">关注分享</span></section><section style="margin-right: 8px;margin-left: 8px;max-width: 100%;line-height: 1.75em;box-sizing: border-box !important;overflow-wrap: break-word !important;"><span style="max-width: 100%;caret-color: red;color: rgb(127, 127, 127);font-size: 12px;font-family: PingFangTC-Light;box-sizing: border-box !important;overflow-wrap: break-word !important;">FOLLOW US &amp; SHARE ON MOMENTS</span></section><section style="margin-right: 8px;margin-left: 8px;max-width: 100%;line-height: 1.75em;box-sizing: border-box !important;overflow-wrap: break-word !important;"><br style="max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;" /></section></section></section></section></section><section data-role="outer" style="max-width: 100%;letter-spacing: 0.544px;background-color: rgb(255, 255, 255);font-family: -apple-system, BlinkMacSystemFont, &quot;Helvetica Neue&quot;, &quot;PingFang SC&quot;, &quot;Hiragino Sans GB&quot;, &quot;Microsoft YaHei UI&quot;, &quot;Microsoft YaHei&quot;, Arial, sans-serif;box-sizing: border-box !important;overflow-wrap: break-word !important;"><section data-role="paragraph" style="max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;"><section data-tools="135编辑器" data-id="98910"><section data-role="layout" style="flex-flow: row nowrap;display: flex;word-break: break-all;"><section data-role="layout" data-width="20%" style="box-sizing: border-box;width: 115.594px;"><section data-role="layout-inner"><section data-role="paragraph"><p style="text-align: center;"><span style="max-width: 100%;color: rgb(127, 127, 127);font-size: 12px;letter-spacing: 0.544px;font-family: PingFangTC-Light;box-sizing: border-box !important;overflow-wrap: break-word !important;">官网</span></p></section></section></section><section data-role="layout" data-width="20%" style="box-sizing: border-box;width: 115.594px;"><section data-role="layout-inner"><section data-role="paragraph"><p style="text-align: center;"><span style="max-width: 100%;color: rgb(127, 127, 127);font-size: 12px;letter-spacing: 0.544px;font-family: PingFangTC-Light;box-sizing: border-box !important;overflow-wrap: break-word !important;">微博</span></p></section></section></section><section data-role="layout" data-width="20%" style="box-sizing: border-box;width: 115.594px;"><section data-role="layout-inner"><section data-role="paragraph"><p style="text-align: center;"><span style="max-width: 100%;color: rgb(127, 127, 127);font-size: 12px;letter-spacing: 0.544px;font-family: PingFangTC-Light;box-sizing: border-box !important;overflow-wrap: break-word !important;">视频号</span></p></section></section></section><section data-role="layout" data-width="20%" style="box-sizing: border-box;width: 115.594px;"><section data-role="layout-inner"><section data-role="paragraph"><p style="text-align: center;"><span style="max-width: 100%;color: rgb(127, 127, 127);font-size: 12px;letter-spacing: 0.544px;font-family: PingFangTC-Light;box-sizing: border-box !important;overflow-wrap: break-word !important;">知乎</span></p></section></section></section><section data-role="layout" data-width="20%" style="box-sizing: border-box;width: 115.594px;"><section data-role="layout-inner"><section data-role="paragraph"><p style="text-align: center;"><span style="max-width: 100%;color: rgb(127, 127, 127);font-size: 12px;letter-spacing: 0.544px;font-family: PingFangTC-Light;box-sizing: border-box !important;overflow-wrap: break-word !important;">b站</span></p></section></section></section></section></section><p style="max-width: 100%;min-height: 1em;box-sizing: border-box !important;overflow-wrap: break-word !important;"><br /></p></section><section data-tools="135编辑器" data-id="98910"><section data-role="layout" style="flex-flow: row nowrap;display: flex;word-break: break-all;"><section data-role="layout" data-width="20%" style="box-sizing: border-box;width: 115.594px;"><section data-role="layout-inner"><section data-role="paragraph"><p style="text-align: center;"><img class="rich_pages" data-backh="13" data-backw="13" data-cropselx1="0" data-cropselx2="50" data-cropsely1="0" data-cropsely2="50" data-ratio="1" data-s="300,640" data-src="https://mmbiz.qpic.cn/mmbiz_png/AJkYaTAujIycoMZjGF8RrRlGEzqzackrSSVqK5SzNApiaN9vmWpNcEuzuMInkGCcu5SiaAn2iba30oI1cPAeJVnqw/640?wx_fmt=png" data-type="png" data-w="300" data-width="50px" style="box-sizing: border-box;color: rgb(0, 0, 0);caret-color: rgb(255, 0, 0);width: 50px;font-family: 微软雅黑, &quot;Microsoft YaHei&quot;, Arial, sans-serif;max-inline-size: 100%;overflow-wrap: break-word !important;outline: none 0px !important;visibility: visible !important;height: 50px;" /></p></section></section></section><section data-role="layout" data-width="20%" style="box-sizing: border-box;width: 115.594px;"><section data-role="layout-inner"><section data-role="paragraph"><p style="text-align: center;"><img class="rich_pages" data-cropselx1="1" data-cropselx2="103" data-cropsely1="0" data-cropsely2="104" data-s="300,640" data-type="png" data-width="50px" width="50px" data-backw="18" data-backh="18" data-src="https://mmbiz.qpic.cn/mmbiz_png/AJkYaTAujIy3kArrxGazyPIK26bO7zZfQibibfZGIkjRNwTHwQ4KNp3zu2sgMcS5VLib1OHNDwOibjnPpUoribI5IcQ/640?wx_fmt=png" data-ratio="1" data-w="300" style="box-sizing: border-box;color: rgb(0, 0, 0);caret-color: rgb(255, 0, 0);width: 50px;font-family: 微软雅黑, &quot;Microsoft YaHei&quot;, Arial, sans-serif;max-inline-size: 100%;overflow-wrap: break-word !important;outline: none 0px !important;visibility: visible !important;" /></p></section></section></section><section data-role="layout" data-width="20%" style="box-sizing: border-box;width: 115.594px;"><section data-role="layout-inner"><section data-role="paragraph"><p style="text-align: center;"><img data-ratio="1.0044247787610618" data-src="https://mmbiz.qpic.cn/mmbiz_png/AJkYaTAujIzdKK1pWxDY25IjWC6hzyuZPClD30iaLtAVGt7UszT4kJMlymjsJz0yLneTFRIJS1jvpr56X0OGLrQ/640?wx_fmt=png" data-type="png" data-w="226" data-width="50px" height="71" style="box-sizing: border-box;width: 50px;" width="50px" /></p></section></section></section><section data-role="layout" data-width="20%" style="box-sizing: border-box;width: 115.594px;"><section data-role="layout-inner"><section data-role="paragraph"><p style="text-align: center;"><img class="rich_pages" data-s="300,640" data-type="png" data-width="50px" width="50px" data-backw="47" data-backh="47" data-src="https://mmbiz.qpic.cn/mmbiz_png/AJkYaTAujIy3kArrxGazyPIK26bO7zZficyibw72OWmSMvgNNjSWoDHlf7aSgplp7dtCDAEFtJKHBnC8qaLHSIeQ/640?wx_fmt=png" data-ratio="1" data-w="300" style="box-sizing: border-box;z-index: -1;cursor: pointer;color: rgb(0, 0, 0);caret-color: rgb(255, 0, 0);width: 50px;font-family: 微软雅黑, &quot;Microsoft YaHei&quot;, Arial, sans-serif;max-inline-size: 100%;overflow-wrap: break-word !important;outline: none 0px !important;visibility: visible !important;" /></p></section></section></section><section data-role="layout" data-width="20%" style="box-sizing: border-box;width: 115.594px;"><section data-role="layout-inner"><section data-role="paragraph"><p style="text-align: center;"><img class="rich_pages" data-backh="13" data-backw="13" data-cropselx1="0" data-cropselx2="69" data-cropsely1="0" data-cropsely2="69" data-s="300,640" data-type="png" data-width="50px" data-src="https://mmbiz.qpic.cn/mmbiz_png/AJkYaTAujIwaUyIuHQngl5c5PD5uQEXrh3UfLLLmbNNIYHsl0uM1fFRJCOicUgwgiaAoBNbUmeBiahGEFZBm9uXAw/640?wx_fmt=png" data-ratio="1" data-w="300" width="50px" style="box-sizing: border-box;z-index: -1;cursor: pointer;color: rgb(0, 0, 0);caret-color: rgb(255, 0, 0);width: 50px;font-family: 微软雅黑, &quot;Microsoft YaHei&quot;, Arial, sans-serif;max-inline-size: 100%;overflow-wrap: break-word !important;outline: none 0px !important;visibility: visible !important;" /></p></section></section></section></section></section></section></section></section><section data-role="paragraph" style="max-width: 100%;font-family: -apple-system, BlinkMacSystemFont, &quot;Helvetica Neue&quot;, &quot;PingFang SC&quot;, &quot;Hiragino Sans GB&quot;, &quot;Microsoft YaHei UI&quot;, &quot;Microsoft YaHei&quot;, Arial, sans-serif;letter-spacing: 0.544px;background-color: rgb(255, 255, 255);box-sizing: border-box !important;overflow-wrap: break-word !important;"><section data-role="paragraph" style="max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;"><p style="max-width: 100%;min-height: 1em;box-sizing: border-box !important;overflow-wrap: break-word !important;"><br /></p></section></section><section style="margin-right: 8px;margin-left: 8px;max-width: 100%;box-sizing: border-box;font-family: -apple-system, BlinkMacSystemFont, &quot;Helvetica Neue&quot;, &quot;PingFang SC&quot;, &quot;Hiragino Sans GB&quot;, &quot;Microsoft YaHei UI&quot;, &quot;Microsoft YaHei&quot;, Arial, sans-serif;letter-spacing: 0.544px;background-color: rgb(255, 255, 255);text-align: right;line-height: 1.75em;overflow-wrap: break-word !important;"><br /></section><section style="margin-right: 8px;margin-left: 8px;max-width: 100%;box-sizing: border-box;font-family: -apple-system, BlinkMacSystemFont, &quot;Helvetica Neue&quot;, &quot;PingFang SC&quot;, &quot;Hiragino Sans GB&quot;, &quot;Microsoft YaHei UI&quot;, &quot;Microsoft YaHei&quot;, Arial, sans-serif;letter-spacing: 0.544px;background-color: rgb(255, 255, 255);text-align: right;line-height: 1.75em;overflow-wrap: break-word !important;"><span style="max-width: 100%;color: rgb(89, 89, 89);letter-spacing: 1.5px;text-align: center;-webkit-text-stroke-width: 0.2px;font-size: 12px;font-family: 微软雅黑, &quot;Microsoft YaHei&quot;;box-sizing: border-box !important;overflow-wrap: break-word !important;">感谢你的每一个分享 | 点赞 | 在看</span></section><section style="margin-right: 8px;margin-left: 8px;max-width: 100%;box-sizing: border-box;font-family: -apple-system, BlinkMacSystemFont, &quot;Helvetica Neue&quot;, &quot;PingFang SC&quot;, &quot;Hiragino Sans GB&quot;, &quot;Microsoft YaHei UI&quot;, &quot;Microsoft YaHei&quot;, Arial, sans-serif;letter-spacing: 0.544px;background-color: rgb(255, 255, 255);text-align: right;line-height: 1.75em;overflow-wrap: break-word !important;"><span style="max-width: 100%;color: rgb(89, 89, 89);letter-spacing: 1.5px;text-align: center;-webkit-text-stroke-width: 0.2px;font-size: 12px;font-family: 微软雅黑, &quot;Microsoft YaHei&quot;;box-sizing: border-box !important;overflow-wrap: break-word !important;">SPECIAL THANKS</span></section><section style="margin-right: 8px;margin-left: 8px;max-width: 100%;box-sizing: border-box;font-family: -apple-system, BlinkMacSystemFont, &quot;Helvetica Neue&quot;, &quot;PingFang SC&quot;, &quot;Hiragino Sans GB&quot;, &quot;Microsoft YaHei UI&quot;, &quot;Microsoft YaHei&quot;, Arial, sans-serif;letter-spacing: 0.544px;background-color: rgb(255, 255, 255);text-align: right;line-height: 1.75em;overflow-wrap: break-word !important;"><span style="max-width: 100%;color: rgb(89, 89, 89);letter-spacing: 1.5px;text-align: center;-webkit-text-stroke-width: 0.2px;font-size: 12px;font-family: 微软雅黑, &quot;Microsoft YaHei&quot;;box-sizing: border-box !important;overflow-wrap: break-word !important;">▼▼▼</span></section></section><section style="text-align: center;margin-left: 16px;margin-right: 16px;"><span style="color: rgb(136, 136, 136);font-size: 12px;"><br /></span><br /></section></section></section></section></section>

← 返回观点全库