当前位置: 首页 > 科技观察

如何根据匹配的预设句型动态提取用户评价标签

时间:2023-03-14 16:29:30 科技观察

互联网经济的发展,让我们的消费渠道不再局限于实体场景。用户的在线评价已经成为影响我们消费行为决策的重要因素。背景在网上购物时,即使您已经阅读了商品的描述,您仍然不会立即决定购买,因为您不确定描述是否准确。那时您会从其他购买过该商品的用户那里寻找评论,这可能最终会说服您。购买旅游产品也是如此。每天都有大量用户在马蜂窝平台上使用“评论”来记录和评价自己在旅行中的感受和经历。基于评论内容深度挖掘生成的标签,将评论信息中的重要内容以更加简洁直观的方式进行归纳,展示给更多的用户作为参考。因此,如何保证标签内容的准确性,同时体现更符合用户语言习惯、更易被用户理解的标签含义,将提升用户在马蜂窝平台的体验,做出更符合用户需求的出行决策。符合自身需求,提高平台转化率,更好地监督商家服务质量等方面都有很大的价值。从评论中提取标签的方法有很多,但在实际应用中存在一些问题,例如:1.预设标签:一些固定的标签是预先定义好的,用户在发表评论时可以自主选择。缺点:固定标签数量有限,无法覆盖所有用户需求,标签与用户内容可能不匹配。2.句法分析法:对用户发表的评论内容进行解构,提取主题词和描述符的组合作为标签。缺点:当评价量很大时,该方法会产生大量标签,对计算性能要求高,不方便维护。3、多级标签定义方式:预先定义好标签的类别,逐级细分,然后生成具体的标签。不足:产生大量维护工作。并且定义层次不够灵活,匹配的标签是关键词加索引词,不能很好的表达用户的说话习惯。为了解决上述问题,马蜂窝推荐搜索研发团队提出了一种通过匹配预设句型灵活动态提取用户评论标签的方法,将每个预设句型分配给一个固定的标签类别,并在类别中展示动态采用最大标签数作为整个分类标签的展示方式,大大减少了固定标签的数量,每个句型由任意数量的词组组成,使得最终提取的标签内容更符合用户的语言习惯的同时,更能体现不同评论内容标签的个性化和差异化。基于匹配的预设句子模板动态提取用户评价标签首先,我将向您解释几个关键概念。标签:标签可以理解为对给定信息的具体描述。例如“近望京地铁站”、“步行至大望路地铁站1分钟”等;句型:这里,我们可以简单理解为同类标签的集合,可以理解为“评价方法”,比如上面关于标签的句子示例,都是对“靠近地铁站”的评价";标签类:同样,我们先简单理解为同类句型的集合,即“评价”的一类。例如,上述句型包括在对“交通便利”的评价中。三者的关系可以描述为,一个标签类别包含m个句型;一个句型会产生n个标签,所以一个标签类别最多对应m*n个标签。标记系统的总体结构该系统主要有两部分:标记句型的定义和句型的自动生成。今天主要介绍句型的定义和标签的生成。图1标注系统结构具体方法及实现步骤1.建立句型库顾名思义,句型库是所有预设句型的集合。接下来,我们将详细说明如何定义句型和生成标签。图2-句子数据库示意图1.创建同义词库同义词库由短语和它们包含的单词组成。每个短语和单词都有一个唯一的标识符;词组是其所含词语的概括和总结;词是代表词组的同义词、俗语、外来词、英语、缩写词等。例如:词组:“shuttlebus”的名称词的集合:shuttlebus,shuttlebus,shuttlebus,shuttlebus等都是词组中的词Phrase也可以表示一类描述性信息,例如:词组:表示“近距离”的词集合:near、notfar、verynear、walkfor1minutes等。图3-词库图4-词组说明此外,还要建立排除词库。排除词库,以后不处理这些词。被排除的词库大多是没有特定意义的词,如“我们”、“他们”等代词,以及“呀”、“是”、“哦”等语气词。,“after”,“then”,“so”等连词没有转义。2.对句型进行分类,得到标签类别。标签类别是对用户评论信息的汇总和分类,将同一类型的句型归为一个标签类别,每个标签类别代表一类相似的评价内容。例如,“服务好”类别代表所有描述服务良好的评价信息。这个标签类别由多个句型组成,比如“{boss}{enthusiasm}”,“{frontdesk}{professional}”,都是关于酒店和民宿服务的句型,生成的标签这些句型都会属于同一个类型,但是不同业务的UGC生成的具体标签会有自己的特点。图5-句型分类3.基于短语的句型组合每个句型代表一种逻辑语义。句型由词组组合定义,表达不同的内容,只有一个标识符。每个句子短语使用特定的词组合得到的结果定义为它生成的标签,比如“离牡丹园地铁站很近”、“离牡丹园地铁站很近”等都是{distance}{subwaystation}{near}句子生成的标签。句子组合中涉及的词组分为四类,即常用词组、独立词组、POI和固定文本。构造句型时,在并列关系的词组之间使用OR,可以减少句型定义的次数。例如:句型:{provide}[{地铁站}OR{码头}OR{汽车站}OR{火车站}OR{机场}OR{市中心}]{班车}常用词组:“提供”、“shuttlebus”独立词组:当匹配到句型的独立词组时,需要单独显示,以突出标签的独特性。即“地铁站”、“码头”等。与“provide-subwaystation-shuttlebus”和“provide-dock-shuttlebus”搭配时,代表着不同的含义或特殊的含义。虽然它们都属于提供班车的同一标签类别,但它们需要单独显示。同理,如果匹配到POI中的任意一条记录(目的地下的景点、景点、地点等,如故宫、泰山、火车站、汽车站、医院等),标签需要单独显示。2.句型匹配,生成标签1.生成标签从UGC内容中提取一段评价文本,根据常用标点符号和常用用户符号进行拆分,得到若干个分句。图6——UGC评价原文1)。顺序匹配标签类别库中的每个句型。从一个词组开始,用词组中的每个单词按长度排序,然后依次匹配从句。如果一个句型中的词与从句中的词相匹配,则记录该词和该词在从句中的位置,然后根据该词组在句型中的顺序继续匹配下一个词组中的词,以及匹配的起始位置是最后一个匹配词的结束位置的最后一位,继续逐个匹配词组中的词信息,以此类推,不断循环这个过程,直到这个词组的每个词组中的一个词句型匹配成功,则记录每个词组中的匹配词组合即为该句型匹配的标签。例如句型{service}{good},词组中前一个词{service}匹配的词是“hotelservice”,第二个词组{good}匹配的词是“nice”,则标签“酒店良好的服务”。另一个条款中可能的匹配标签是“良好的酒店服务”。虽然它们表示为不同的标签,但它们都是句型生成的同一类型的标签。2).顺序匹配例如“机场有班车到酒店”和“酒店有班车到机场”,汉字完全一样,但表达的意思不同。3).词距离阈值在匹配过程中,如果两个相邻词组之间的距离大于某个阈值,则认为不匹配。比如句型是“{room}{big}”,评价从句是“酒店房间里有一幅蓝天大海的油画”。如果不判断词距,评价从句会匹配“{room}{big}”的参考句型,但评价从句的意思与标签“roomislarge”所表达的意思明显不同.假设第二预定阈值设置为三个字符的词距,评价从句中“room”和“big”的词距超过三个字符,则可以判断参考句型与评价不匹配子句,避免错误匹配。由于句型中的词之间可能存在一定的位置相关性,通过判断匹配词之间的距离是否满足阈值,从句中匹配成功但不代表符合意思的内容的词句型被淘汰。4).一个“不”就是没有。当句型与标签匹配时,判断句子与句型之间是否存在负相关关系,如果存在则认为不匹配。比如食物不好吃,就不能匹配句型{phrasecontainingfood}{phrasecontainingdelicious}。匹配正确后,记录从句与标签的对应关系,在标签类别库中查找句型对应的标签类别编号,建立匹配的从句与其所属标签类别的关系。如果从句没有成功匹配到对应的句型,则将其存储在未匹配的从句存储中,然后用于继续挖掘可用的标签信息。关于匹配的方法,这里有一些经验分享给大家:对于容易混淆的词,应该先建立一个混淆词库,比如“好”这个词,混淆库中对应的词有“like”、“喜欢”等。.当匹配到一个词,发现是混淆词,则检查对应的混淆词是否在该词的位置,如果是,则认为是不匹配,例如,themealseems从以前开始。那么像{phrasecontainingmeals}{phrasecontainingdeliciousfood}这样的句型是无法匹配的。对于一些繁体字的评论,先转换成简体字,再进行匹配。之前,我们也对其他一些匹配方法进行了研究。比如先把从句分词,然后根据每个词来查找句型中的词是否存在。这样效率更高,因为是用hash的方法来查找的。但是,这取决于分词的准确性,不能满足用户的个性化需求。特别是在评价语句中,有大量的语法、口语表达和网络词的使用,很难做到非常准确的分词。得到的标签匹配效果也不理想。图7-生成的标签2.确保展示标签在不同目标下有不同的评价方式,展示的标签也应体现相应的个性化和差异化。根据目标所有评论对应的标签类别编号,统计每个标签类别中所有句子产生的标签的出现频率,将出现频率最高的标签作为标签类别的显示名称。例如,标签类别“性价比好”有三种句型{性价比}{很好}、{性价比}{高}、{价格}{便宜},在一个目标的评价统计中,标签“goodcostperformance”和“highcostperformance”“affordable”分别出现了5次、10次和7次,则该标签类别显示的标签为“highcostperformance”。这里有一个特例:如果在同一个标??签类别下的句型定义中有一个标签需要独立显示,则该句型生成的标签不会与其他句型标签合并,而是将在出现频率较高的句型标签中独立显示。例如句型{provide}{go}[{trainstation}OR{airport}]{shuttlebus},其中{trainstation}和{airport}设置为需要独立显示的标签,则后面两个词会对应生成“Provideashuttletothestation”和“Provideashuttletotheairport”这两个词出现频率比较高的标签结果,不会和该分类下其他频率比较高的标签合并(提供ashuttle),例如“去车站方便”显示为两个单独的选项卡。再比如,标签类别“好位置”包含了{距离}{POI}{近}和{POI}{步行}{3}{分钟}两种句型,因为设置了POI独立显示的类别,如果生成标签“故宫附近”的频次为10,“景山附近”的频次为15,“故宫步行3分钟”的频次为17,则标签类别下的“好”位置”,标签分别显示“离故宫步行3分钟”和“离景山近”。3.不符从句分词处理不符从句自动生成句型,利用内容分类、句法分析、依存分析、词义分析等方法,自动生成每个类别下的标签分类和句型,用户可以查看和调整这些标签句型。它还可以为现有短语推荐同义词,以丰富短语中的单词数量。4.定位子句因为之前保存了标签和匹配子句的关系,所以当点击标签时,对应的子句会高亮显示。总结本文介绍的预设句模板定义,可以通过灵活的词组组合动态匹配大量标签,解决了标签定义过多的问题。由于句型的定义符合用户评价目标的习惯,可以覆盖更多的用户评论,提高召回率,模板生成的标签更符合评价语言的表达方式。【本文为专栏作者马蜂窝科技原创文章,作者微信公众号马蜂窝科技(ID:mfwtech)】点此查看作者更多好文