具体实施方式
本发明实施例的短消息合并方法及装置结合附图及实施例详细说明如下。
如图1所示,本发明实施例提供了一种短消息合并方法,包括步骤:
S1:获得同一发送方在设定时间间隔内发送的至少两条短消息;
由较长的短消息分拆形成的多条乱序的短消息是来自同一发送方,并且通常在发送时间上非常接近,因此这里步骤S1获得的同一发送方在设定时间间隔内发送的至少两条短消息就比较有可能是同一较长的短消息分拆得到的,这里的设定时间间隔根据设计需要设置;
S2:根据所述短消息的文本内容判断所述至少两条短消息是否相关联:
若相关联,则转到步骤S3;
S3:将所述至少两条短消息进行排序后合并。
在本发明实施例的方法中,步骤S2对经步骤S1获得的有可能是同一较长的短消息拆分得到的至少两条短消息进行进一步的判断,步骤S3在确认得到的短消息为同一较长的短消息拆分形成的之后对这些短消息进行合并,使得其重新顺序排列,方便用户阅读。
如图2所示,在本发明实施例的一个可能的实施方式中,所述步骤S1包括以下步骤:
S1.1a:接收当前短消息;
S1.2a:获取所有与所述当前短消息发送方相同、并且与所述当前短消息的接收时间差在第一设定阈值内的其它短消息;
其中,所述第一设定阈值根据设计需要设定,例如,可以取所述第一设定阈值为2秒、5秒或10秒等。
这里接收的当前短消息以及获取的其它短消息即为同一发送方在设定时间间隔内发送的至少两条短消息,这些短消息很有可能属于同一条较长的短消息。
当然,上述步骤S1.1a和S1.2a只是本发明实施例的一种可能的实施方式,本发明其它可能的实施例中还可以通过其它方法获得所述同一发送方在设定时间间隔内发送的至少两条短消息,例如:针对每一条接收到的短消息,查找在该短消息之后设定时间内收到的来自于同一发送方的其它短消息,再获取这些短消息。
在本发明实施例的一个可能的实施方式中,上述步骤S1.2a中的所述第一设定阈值可以根据当前网络信号状况自动调整。其中,一种优选的自动调整的方式为:根据所述当前网络信号状况的由好至坏,自动将所述第一设定阈值由小到大进行调整。例如,当网络信号较好时,所述第一设定阈值的值较小,例如取2秒;当网络信号不佳或没信号时,自动将所述第一设定阈值调大,例如为30秒。这里,优选地,所述第一设定阈值最长不超过1分钟。通过自动调整第一设定阈值的方式,可以在网络信号不稳定时也能较为准确的获取到需要的短消息。
如图3所示,在本发明实施例的一个可能的实施方式中,所述步骤S1包括以下步骤:
S1.1b:接收当前短消息;
S1.2b:获取所有与所述当前短消息发送方相同、并且与所述当前短消息的发送时间差在第二设定阈值内的其它短消息。
通常,被分拆形成的多条短消息会在同一时间发送或在很短的时间差之内(例如1秒之内)发送,而对于来自同一发送方的多条单独的短消息来说,基本不可能在这么短的时间差之内一起发送。因此这里第二设定阈值设定为合适的值,例如为1秒,那么获得的至少两条短消息的服务器发送时间之差在所述第二设定阈值之内的话则表明这些短消息很有可能是属于同一条短消息分拆形成的。
在本发明实施例的一个可能的实施方式中,所述步骤S2根据所述短消息的文本内容判断所述至少两条短消息是否相关联的步骤包括:
S2.2a判断所述至少两条短消息的文本内容的开头或结尾中是否包含页码信息:
若包含,则所述至少两条短消息相关联。
通常,较长的短消息被分拆形成的至少两条短消息中会包括页码信息,所述页码信息一般位于短消息文本内容的开头或结尾;所述页码信息包括本条短消息的页码数,例如一种可能的页码信息为“第1页”;在一些优选的实施方式中,所述页码信息还包括总页数信息,即较长的短消息被分拆成了共计多少条短消息的信息,例如一种可能的页码信息为“1/3”,其中的3表示总页数,即较长的短消息被分成了三条短消息,1表示本条短消息为该三条短消息中的第一条;在其它可能的实施方式中,页码信息还可以表示为例如“1/2”、“第2页共3页”等多种形式。
如果在步骤1获得的至少两条短消息中包括上述的页码信息,即可以判断这些短消息是相关联的信息,这里的至少两条短消息相关联指的是认为至少两条短消息有可能是同一条较长的短消息分拆形成的;不关联表示认为所述至少两条短消息不是由同一条较长的短消息分拆形成的。
本发明实施例一种可能的实施方式为:经过步骤S1获得了两条短消息,其中一条短消息的开头具有页码信息(1/2),另一条短消息的开头具有页码信息(2/2);经过上述步骤判断得到该两条短消息文本内容的开头都包含页码信息,因此认为所述两条短消息相关联,是由同一条较长的短消息分拆形成的。
通过本实施方式的方法可以确认具有页码信息的短消息是否关联。
在本发明实施例的一个可能的实施方式中,所述步骤S2根据所述短消息的文本内容判断所述至少两条短消息是否相关联的步骤包括:
S2.3a判断所述至少两条短消息的文本内容的最后一个字符是否是结束符;
若不均是结束符,则所述至少两条短消息相关联。
在本发明实施例的一个可能的实施方式中,所述步骤S2在根据所述短消息的文本内容判断所述至少两条短消息是否相关联之前还包括步骤:
S2.1a判断所述至少两条短消息中,是否有至少一条短消息的文本容量达到或接近最大值:
若均没有达到或接近最大值,则所述至少两条短消息不相关联;否则,转到所述根据所述短消息的文本内容判断所述至少两条短消息是否相关联的步骤,例如转到所述步骤S2.2a(如图4a所示)或S2.3a(如图4b所示)。
通常,由一条较长的短消息分拆形成的至少两条短消息中,一般至少会有一条短消息的文本容量达到或接近最大值,这里文本容量的最大值一般定义为1120个字节或70个汉字,在一些其它可能的实施方式中,所述文本容量的最大值还可以根据需要定义为其它大小。由于对短消息文本容量的大小比较容易获得,因此通过步骤S2.1a对步骤S1获得的至少两条短消息的文本容量进行判断来排除掉文本容量都没有接近最大值的短消息的话,可以为后续的文本内容判断减少一些工作量。
在本实施例的一些实施方式中,若设所述至少两条短消息的个数为N,其中N为不小于2的自然数;则所述步骤S2.1a判断所述至少两条短消息中,是否有至少一条短消息的文本容量达到或接近最大值的步骤优选为:判断所述N条短消息中,是否有至少N-1条短消息的文本内容达到或接近最大值,如果不是,则所述至少两条短消息不关联。这是由于一般情况下,当较长的短消息被分拆成多条短消息时,这些多条短消息中最多只会有一条的文本容量没有达到或接近最大值。例如:一条较长短消息被分拆形成5条短消息,那么这5条短消息中前4条短消息的容量都会达到或接近最大值,而最后一条短消息则从只有一两个字符到容量达到或接近最大值都有可能。因此,本发明实施例的实施方式中,优选最多只有一条短消息的文本容量没有达到或接近最大值,进一步筛选掉不属于容易较长短消息的短消息。
如图5所示,在本发明实施例的一种可能的实现方式中,所述步骤S2判断所述至少两条短消息是否相关联的步骤包括:
S2.1b判断所述至少两条短消息中,是否有至少一条短消息的文本容量达到或接近最大值:
若均没有达到或接近最大值,则所述至少两条短消息不相关联;
否则,转到步骤S2.2b;
S2.2b判断所述至少两条短消息的文本内容的开头或结尾中是否包含页码信息:
若包含,则所述至少两条短消息相关联;
否则,转到步骤S2.3b;
S2.3b判断所述至少两条短消息的文本内容的最后一个字符是否是结束符;
若不均是结束符,则所述至少两条短消息相关联。
在较长的短消息被分拆成至少两条短消息时,通常会在分拆后形成的短消息中增加页码信息,但是也有一些较长的短消息被分拆后形成的短消息中不具有页码信息,而是顺序上相邻的两条短消息中,前一条短消息的最后一个字符与后一条短消息的第一个字符之间有相互关联的关系,例如为词组或词组的一部分。因此本实施方式中在步骤S2.2b判断到所述至少两条短消息文本内容的开头或结尾不包含页码信息时,优选地,还要判断是否至少一条短消息文本内容的结尾无结束符。这里的结束符是指句号、叹号、问号或省略号等表示语句结束的符号;而文字、逗号、顿号、引号或冒号等则不属于所述结束符,通常一条短消息的结尾无结束符时,表明该短消息是不完整的,则认为其属于被分拆形成的短消息,并且顺序上不是最后一条短消息。
例如:通过步骤S1获得了三条短消息;其中,通过步骤S2.1b的判断,得到其中有两条短消息的文本容量接近最大值;然后再通过步骤S2.2b对这三条短消息的文本内容进行查看,发现文本内容的开头和结尾都不包含页码信息;然后再通过步骤S2.3b判断得到文本容量接近最大值的两条短消息的文本内容的结尾为都为文字,即无结束符,因此认为这三条短消息属于同一较长的短消息分拆形成,相关联。
通过本实施方式,更加准确、全面的对于属于被拆分形成的多条短消息经过容量、页码和字符依次进行确认,进一步方便用户阅读。
在本发明实施例的一个可能的实施方式中,当所述至少两条短消息的文本内容的开头或结尾中都包含页码信息、并且所述至少两条短消息相关联时,所述步骤S3包括:
根据所述的页码信息中的页码顺序将所述至少两条短消息进行排序后合并。
其中,优选地,在进行合并时,将所述至少两条短消息中的页码信息去除。以使得合并后的短消息阅读起来更加流畅连贯,提高用户体验。
在本发明实施例的一种可能的实施方式中,所述步骤S3包括:
根据所述短消息中的文本含义,将所述至少两条短消息进行排序后合并。
这里,优选地,判断所述至少两条短消息中是否有文本内容开头的字符与所述文本内容的结尾无结束符的短消息结尾的字符相匹配的短消息:
如果有,则将无结束符的短消息与相匹配的短消息按照先后顺序排列合并。
其中,优选地,在本发明实施例的一个实施方式中,判断所述至少两条短消息中是否有文本内容开头的字符与所述文本内容的结尾无结束符的短消息结尾的字符相匹配的短消息的步骤包括:
根据设定的第一字符长度,由所述无结束符的短消息的结尾向前取长度不超过所述第一字符长度的所有字符构成第一字符集;
根据设定的第二字符长度,由其它短消息的开头向后取长度不超过所述第二字符长度的所有字符构成第二字符集;
将所述第二字符集中的字符分别与所述第一字符集中的字符进行匹配,若可以匹配,则相匹配的两个字符所在的两个短消息为相匹配的短消息。
这里设定的第一字符长度和第二字符长度,根据文字使用的习惯,例如词组的长度限制等进行设定。例如:假设常用的中文词组的长度最长为7个汉字的长度,那么这里的第一字符长度和第二字符长度可以设为6个汉字的长度。例如,假设无结束符的短消息文本内容的最后的内容为“......新疆古称西域,历史上乌鲁”,另外一个短消息文本内容的开头的内容为“木齐就是古丝绸之路新北道上的重镇......”。那么这里第一字符集中包含的字符包括“鲁;乌鲁;上乌鲁;史上乌鲁;历史上乌鲁;,历史上乌鲁”六个,第二字符集中包含的字符包括“木;木齐;木齐就;木齐就是;木齐就是古;木齐就是古丝”六个,在进行匹配时发现“乌鲁”和“木齐”能够匹配成常用的词组,因此“乌鲁”和“木齐”所在的两个短消息为相匹配的短消息。最后将含有“乌鲁”的短消息排列在所述含有“木齐”的短消息之前再进行合并。
其中,在一种可能的实施方式中,优选地,当所述至少两条短消息中有一条短消息的文本容量没有接近最大值,并且其文本内容的结尾为如句号、叹号、问号或省略号等表示语句结束的结束符时,则认定该短消息为分拆后的短消息中的最后一条短消息。对于其它短消息可以根据以下逻辑排序,即获取短消息a的最后一个字符,与短消息b的第一个字符组合,判断是否是词库中的词语或为其它惯用的字符组合(例如短消息a的最后一个字符为“吗”,短消息b的第一个字符为“?”,则该两个字符的组合为惯用的字符组合),如果是,则判定短消息a在短消息b之前。
通过上面的步骤,可以进一步对不包含页码信息的分拆短消息进行排序合并,方便用户阅读,提高用户体验。
下面以一条短消息被分拆为三条短消息,并且每个分拆后的短消息文本内容的开头都包含页码信息为例对本发明实施例的一个可能的实施方式进行进一步的描述:
获得上述分拆后形成的三条短消息;
提取所述三条短消息的文本内容;
判断得到所述三条短消息的文本内容的开头分别包含页码信息:(1/3)、(2/3)以及(3/3),因此这三条短消息相关联;
根据所述三条短消息的页码顺序对所述三条短消息进行排序;
将所述三条短消息中的页码信息删除后合并;
对合并后得到的较长的短消息进行显示。
下面再以一条短消息被分拆为两条短消息(分别为短消息a和短消息b,所述两条短消息文本内容的开头和结尾都不包含页码信息、并且短消息a的最后一个字符为汉字“约”,短消息b的第一个字符为汉字“定”、最后一个字符为句号)为例对本发明实施例的一个可能的实施方式进行进一步的描述:
获得上述分拆后形成的两条短消息;
提取所述两条短消息的文本内容;
判断得到所述短消息a的文本容量达到最大值,短消息b的文本容量较少;
判断得到所述两条短消息的开头或结尾都不含有页码信息;
判断得到短消息a的最后一个字符无结束符,短消息b的最后一个字符为结束符;
判断得到短消息b的文本内容开头的字符“定”与短消息a结尾的字符“约”组成的字符组合“约定”为词库中的词语,因此两个短消息可以合并;
由于短消息b的文本容量较少并且结尾的字符为结束符,因此短消息b为最后一个短消息,同时由于短消息a结尾的字符与短消息b开头的字符可以组成词语,因此排序使得短消息a的顺序位于短消息b的前面并合并两条短消息;
对所述两条短消息合并后的内容进行显示。
综上,本发明的实施例对由一条较长短消息分拆形成的多条短消息进行合并,使得用户可以直接看到合并后的顺序正确并且完整的短消息,方便用户阅读,用户体验好。
如图6所示,本发明实施例还提供了一种短消息合并装置600,包括获取模块610、关联判断模块620以及合并模块630。其中:
获取模块610,用于获得同一发送方在设定时间间隔内发送的至少两条短消息;
关联判断模块620,用于根据所述短消息的文本内容判断所述获取模块610获得的至少两条短消息是否相关联;在相关联时,生成关联信息并传送至合并模块630;
合并模块630,用于根据关联信息将所述至少两条短消息进行排序后合并。
其中,通过获取模块610获得的至少两条短消息由于是来自同一发送方并且发送时间接近,因此极有可能是由同一较长短消息分拆得到的;通过关联判断模块620的判断以确认所述两条短消息是否为同一较长短消息分拆形成;并在确认之后通过合并模块630对这些短消息进行合并,使得其重新顺序排列,方便用户阅读。
如图7所示,在本发明实施例的一个可能的实施方式中,所述获取模块610可包括接收单元611和第一获取单元612或接收单元和第二获取单元,各单元按照图2或图3所示的方法实施例中的原理以及上文中的相应描述实施其功能,具体为:
接收单元611用于接收当前短消息;
第一获取单元612用于获取所有与所述当前短消息发送方相同、并且与所述当前短消息的接收时间差在第一设定阈值内的其它短消息。
接收单元用于接收当前短消息;
第二获取单元用于获取所有与所述当前短消息发送方相同、并且与所述当前短消息的发送时间差在第二设定阈值内的其它短消息。
如图7所示,在本发明实施例的一个可能的实施方式中,优选地,所述获取模块610进一步包括:
第一设定阈值调整单元613,用于根据当前网络信号状况自动调整所述第一设定阈值。
其中优选地,所述第一设定阈值调整单元根据所述当前网络信号状况的由好至坏,自动将所述第一设定阈值由小到大进行调整,以在网络信号不稳定时也能较为准确的获取到需要的短消息。
如图7所示,在本发明实施例的一个可能的实施方式中,所述关联判断模块620包括页码关联判断单元622,各单元按照方法实施例中的相应描述实施其功能。具体为:
页码关联判断单元622用于判断所述至少两条短消息的文本内容的开头或结尾中是否包含页码信息,并在包含页码信息时生成页码关联信息并传送至合并模块630。
为了提高判断的效率和准确度,在本发明实施例的一个可能的实施方式中,所述关联判断模块620除了页码关联判断单元622之外,进一步包括容量关联判断单元621,各单元按照图4a所示的方法实施例中的原理及上文中的相应描述实施其功能。具体为:
容量关联判断单元621用于判断所述至少两条短消息中,是否有至少一条短消息的文本容量达到或接近最大值;在所述至少两条短消息均没有达到或接近最大值时,所述至少两条短消息不相关联,所述合并模块630不对所述至少两条短消息进行合并;在有至少一条短消息的文本容量达到或接近最大值时,生成容量关联信息并传送至页码关联判断单元622;
页码关联判断单元622,用于判断所述至少两条短消息的文本内容的开头或结尾中是否包含页码信息,并在包含页码信息时生成页码关联信息并传送至合并模块630。
在本发明实施例的一个可能的实施方式中,所述合并模块630包括页码合并单元631,其按照上文方法实施例中的相应描述实施其功能。具体为:用于根据页码合并信息,按照页码顺序将所述至少两条短消息进行合并。优选地,所述页码合并单元631还用于将所述至少两条短消息中的页码信息去除。
如图8所示,为了提高关联判断的准确度,在本发明实施例的一个可能的实施方式中,所述关联判断模块620进一步包括字符关联判断单元623,各单元按照图5所示的方法实施例中的原理以及上文中的相应描述实施其功能。具体为:
容量关联判断单元621用于判断所述至少两条短消息中,是否有至少一条短消息的文本容量达到或接近最大值;在所述至少两条短消息均没有达到或接近最大值时,所述至少两条短消息不相关联,所述合并模块630不对所述至少两条短消息进行合并;在有至少一条短消息的文本容量达到或接近最大值时,生成容量关联信息并传送至页码关联判断单元622;
页码关联判断单元622用于根据容量关联信息判断所述至少两条短消息的文本内容的开头或结尾中是否包含页码信息,并在包含页码信息时生成页码关联信息并传送至合并模块630;当不包含时,生成页码不关联信息并传送至字符关联判断单元623;
字符关联判断单元623,用于根据所述页码不关联信息判断所述至少两条短消息的文本内容的最后一个字符是否是结束符;并在不均是结束符时,生成字符关联信息并传送至合并模块630。
所述至少两条短消息的个数为N,其中N为不小于2的自然数;在图7和图8所示的实施方式中,优选地,所述容量关联判断单元622用于判断所述N条短消息中,是否有至少N-1条短消息的文本内容达到或接近最大值;并在有至少N-1条短消息的文本内容达到或接近最大值时,生成容量关联信息并传送至所述页码关联判断单元622。
如图8所示,在本发明实施例的一个可能的实施方式中,所述合并模块630包括页码合并单元631和字符合并单元632,其按照上文方法实施例中的相应描述实施其功能。具体为:
页码合并单元631用于在收到所述页码关联信息后根据所述页码信息将所述至少两条短消息进行排序后合并;
字符合并单元632用于在收到所述字符关联信息后根据所述短消息中的文本含义,将所述至少两条短消息进行排序后合并。
在本发明实施例中,所述短消息合并装置600尤指具有显示模块640(显示屏)的移动终端,该移动终端包括但不限于手机。所述显示模块640用于对合并后的短消息进行显示。
图9为本发明实施例提供的又一种短消息合并装置700的结构示意图,本发明具体实施例并不对短消息合并装置的具体实现做限定。如图9所示,该短消息合并装置700可以包括:
处理器(processor)710、通信接口(Communications Interface)720、存储器(memory)730、以及通信总线740。其中:
处理器710、通信接口720、以及存储器730通过通信总线740完成相互间的通信。
通信接口720,用于与比如客户端等的网元通信。
处理器710,用于执行程序732,具体可以执行上述图1至图5所示的方法实施例中的相关步骤。
具体地,程序732可以包括程序代码,所述程序代码包括计算机操作指令。
处理器710可能是一个中央处理器CPU,或者是特定集成电路ASIC(ApplicationSpecific Integrated Circuit),或者是被配置成实施本发明实施例的一个或多个集成电路。
存储器730,用于存放程序732。存储器730可能包含高速RAM存储器,也可能还包括非易失性存储器(non-volatile memory),例如至少一个磁盘存储器。程序732具体可以包括:
获取模块,用于获得同一发送方在设定时间间隔内发送的至少两条短消息;
关联判断模块,用于根据所述短消息的文本内容判断所述获取模块获得的至少两条短消息是否相关联,并在所述至少两条短消息相关联时,生成关联信息并传送至合并模块;
合并模块,用于根据关联信息将所述至少两条短消息进行排序后合并。
程序732中各单元的具体实现可以参见图7或图8所示实施例中的相应单元,在此不赘述。所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的设备和模块的具体工作过程,可以参考前述方法实施例中的对应过程描述,在此不再赘述。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及方法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明实施例的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
以上实施方式仅用于说明本发明,而并非对本发明的限制,有关技术领域的普通技术人员,在不脱离本发明的精神和范围的情况下,还可以做出各种变化和变型,因此所有等同的技术方案也属于本发明的范畴,本发明的专利保护范围应由权利要求限定。