具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
图1为本发明提供的专用词不拆行处理方法一个实施例的流程图,如图1所示,该方法包括:
S101、对文章段落换行位置附近的字符与预先设置的专用词索引表中的关键字的字符进行匹配,识别出包括关键字的专用词,专用词索引表包括多个关键字以及每个关键字相匹配的至少一个专用词;
S102、根据所识别出的专用词中所包括的字符与换行位置的位置关系,调整文章段落的换行位置,以使设定类型的每个专用词中包括的所有字符位于段落中的同一行。
一方面,可以预先创建并维护专用词库,分类管理专用词。
其中,该专用词库中可以包括多个专用词分类,例如:地名分类,国家分类,名人分类等等。每个专用词分类可以包含下列内容:
分类名称,指定该专用词分类的名称;
分类对应的优先级别,指在段落换行处,该专用词分类中专用词项的匹配优先次序;
忽略标记,指在段落换行处,该专用词分类中专用词项是否允许拆行;
专用词项(M个,M≥0),指在该专用词分类中包括的专用词。
进一步的,专用词项中包括下列内容:文本,指定该专用词项的内容;优先级别,指在段落拆行处,该专用词项的匹配优先次序;忽略标记,指在段落拆行处,该专用词项是否允许拆行。
另一方面,基于专用词库,可以预先建立专用词索引表,该专用词索引表包括多个专用词索引项,专用词索引项包含以下内容:关键字以及每个关键字相匹配的匹配项。其中,关键字,指该专用词索引项的检索关键字,为专用词项的文本中相邻的2个字符;匹配项(N个,N≥0),指定该专用词索引项对应的匹配项数组,可以按照计算出匹配项的优先级从高到低的顺序进行排序。
可以通过以下步骤来建立专用词索引表:依次遍历设定的专用词库确定专用词所属的分类,专用词库中包括专用词分类、每个分类对应的优先级别和是否拆行的忽略标识;每个专用词分类中包括至少一个专用词项、每个专用词项的优先级别和是否拆行的忽略标识;根据专用词库中每个专用词项中的相邻2个字符,确定专用词项对应的关键字以及关键字在专用词项中的匹 配位置信息;根据专用词所属的分类,对应的关键字以及关键字在专用词中的匹配位置信息,建立专用词索引表。
具体的,对于当前专用词项的文本中的第N组相邻字符,构建新的关键字[字符N,字符N+1],构建新的匹配项,将其专用词项指针设置为当前专用词项,匹配位置设置为N;在专用词索引表中,根据新的关键字查找对应的专用词索引项,如果找到,将当前的专用词索引项设置为找到的专用词索引项,转入执行:计算出新的匹配项的优先级,并按照高低顺序,加入到当前的专用词索引项;否则,转入执行:构建新的专用词索引项,设置其关键字为新的关键字,其匹配项数组为空,加入专用词索引表,并将当前的专用词索引项设置为新的专用词索引项。
可选的,对于同一关键字对应的多个专用词项,还可以根据各个专用词项的:文本长度,分类优先级别,分类顺序,词优先级别,词顺序,和匹配位置中的一种或多种,确定该关键字对应的各专用词项的匹配优先级。
其中,文本长度,指定对应的专用词项的文本长度;分类优先级别,指定对应的专用词分类的优先级别;分类顺序,指定对应的专用词分类在库中的位置;词优先级别,指定对应的专用词项的优先级别;词顺序,指定对应的专用词项在分类中的位置;匹配位置,指定该匹配项的匹配位置。
其中,优先级的比较可以按照文本长度,分类优先级别,分类顺序,词优先级别,词顺序,和匹配位置的顺序依次进行,例如:文本长度越大,优先级越高;分类级别越高,优先级越高;分类顺序越靠前,优先级越高;匹配位置越靠后,优先级越高。
专用词索引表可以如下表一所示,同时参见图2:
上表中包括多个关键字,例如:郁金,金香,库肯等,用于指定该专用词索引项的检索关键字,关键字可以为专用词项的文本中相邻的两个字符。每个关键字可以对应多个匹配项(每个匹配项可以包括一个专用词),匹配项(N个,N≥0),用于指定该专用词索引项对应的匹配项数组,按照计算出匹配项的优先级从高到低进行排序。
可选的,上述步骤S101中的对文章段落换行位置附近的字符与预先设置的专用词索引表中的关键字的字符进行匹配,识别出包括关键字的专用词,具体可以包括如下步骤:
从段落中自动换行的第P个字符向前计算专用词识别的起始位置Ps;
从起始位置Ps开始向后,依次识别匹配出是否存在关键字中包括的字符的专用词,确定识别区间,直到识别位置大于P;识别区间包括:段落起始字符位置、段落结束字符位置、识别出的专用词;
进一步的,根据所识别出的专用词中所包括的字符与换行位置的位置关系,调整文章段落的换行位置,具体可以为:如果换行位置位于专用词所包括的字符之间,则可以将识别区间内的专用词调整到段落中的同一行,例如:可以将当前行末尾包括的专用词中的部分字符和下一行起始包括的专用词中的另一部分全部调整到当前行,即将当前行的换行位置向后调整一个或多个字符;或者,还可以将当前行末尾包括的专用词中的部分字符和下一行起始包括的专用词中的另一部分全部调整到下一行,即将当前行的换行位置向前调整一个或多个字符。
作为一种较佳的实施方式,从段落中自动换行的第P个字符向前计算专用词识别的起始位置Ps,具体可以包括如下步骤:
a1、设置起始位置Ps为自动换行位置P减1;
b1、构建关键字[字符Ps,字符Ps+1],在专用词索引表中,根据所构建的关键字查找对应的匹配项,若查找不到,则返回所述起始位置Ps;
c1、根据所构建的关键字对应的专用词中的位置和专用词的文本长度,确定最大前缀字符个数L,在起始位置Ps开始向前遍历字符,直到遍历到分隔位置或遍历个数等于L;例如:关键字为“共和”,对应的专用词为“中华人民共和国”,则最大前缀字符个数L等于4。
d1、如果遍历到分隔位置,则将起始位置Ps设置为分隔位置后返回起始 位置Ps;e1、如果遍历个数等于L,则将起始位置Ps设置为Ps减L+1后转入执行b1。
作为一种较佳的实施方式,从起始位置Ps开始向后,依次识别匹配出是否存在关键字中包括的字符专用词,确定识别区间,直到识别位置大于P,具体可以包括如下步骤:
a2、设置当前识别位置为Pc为起始位置Ps;
b2、构建关键字[字符Pc,字符Pc+1],在专用词索引表中,根据所构建的关键字查找对应的匹配项,如果不存在,则将当前识别位置Pc加1,转入执行e2;否则,转入执行c2;
c2、根据所构造的关键字,以及对应的匹配项,对从当前识别位置Pc开始的段落,按照匹配优先级的顺序进行专用词匹配;如果未查找到,则将当前识别位置Pc加1,转入步骤e2;
d2、确定识别区间,其中,段落起始字符位置为当前识别位置Pc,段落结束字符位置为当前识别位置Pc加上专用词文本长度,识别出的专用词为与所构建的关键字匹配成功的专用词项;将当前识别位置Pc加上专用词文本长度;
e2、如果当前识别位置Pc大于自动换行位置P,则退出;否则,转入执行b2。
根据所识别出的专用词,调整文章段落的换行位置,以使设定类型的每个专用词中包括的所有字符位于段落中的同一行。需要说明的是,在上述步骤中,对于一些专用词,可以允许在换行处进行拆分,即一部分在前一行的末尾,另一部分在下一行的开头,对于这些专用词,可以设置成忽略标记,则将可以其标记为专用词可拆分,并据此计算正确的拆分位置。
图3为本发明提供的专用词不拆行处理方法专用词处理效果示意图。
例如,在文章中间部分的段落(“…尽情的寻找梦想中的黑郁金香吧。”)拆行处中,假设段落的自动换行位置P在“香”字之前,向前计算出的专用词识别的起始位置Ps为“黑”字所在的位置;从Ps开始向后,识别出专用词(“郁金香”),并据此计算拆分位置,在当前行记录了拆分结果。
本实施例提供的专用词不拆行处理方法,对文章段落换行位置附近的字符与预先设置的专用词索引表中的关键字的字符进行匹配,识别出包括关键 字的专用词,再根据所识别出的专用词中所包括的字符与所述换行位置的位置关系,调整所述文章段落的换行位置,以使设定类型的每个所述专用词中包括的所有字符位于所述段落中的同一行。从而提高对专用词在同一行中不拆分的处理效率。
图4为本发明提供的专用词不拆行处理装置一个实施例的结构示意图,如图4所示,该装置包括:
识别模块11,用于对文章段落换行位置附近的字符与预先设置的专用词索引表中的关键字的字符进行匹配,识别出包括关键字的专用词,所述专用词索引表包括多个关键字以及每个所述关键字相匹配的至少一个专用词;
调整模块12,用于根据所识别出的专用词中所包括的字符与所述换行位置的位置关系,调整所述文章段落的换行位置,以使设定类型的每个所述专用词中包括的所有字符位于所述段落中的同一行。
可选的,所述专用词索引表中还包括:与所述专用词相匹配的匹配项,所述匹配项包括:所述关键字对应的专用词项以及所述关键字在所述专用词项中的匹配位置信息。
如图5所示,在图4所示实施例的基础上,可选的,该装置还可以包括:创建模块13:用于依次遍历设定的专用词库确定所述专用词所属的分类,所述专用词库中包括专用词分类、每个分类对应的优先级别和是否拆行的忽略标识;每个所述专用词分类中包括至少一个专用词项、每个所述专用词项的优先级别和是否拆行的忽略标识;根据所述专用词库中每个专用词项中的相邻2个字符,确定所述专用词项对应的关键字以及所述关键字在所述专用词项中的匹配位置信息;根据所述专用词所属的分类,对应的关键字以及所述关键字在所述专用词中的匹配位置信息,建立所述专用词索引表。
可选的,所述创建模块13还用于:对于同一关键字对应的多个所述专用词项,根据各个所述专用词项的:文本长度,分类优先级别,分类顺序,词优先级别,词顺序,和匹配位置中的一种或多种,确定该关键字对应的各所述专用词项的匹配优先级。
可选的,所述识别模块11具体用于:从段落中自动换行的第P个字符向前计算所述专用词识别的起始位置Ps;从所述起始位置Ps开始向后,依次识 别匹配出是否存在所述关键字中包括的字符的专用词,确定识别区间,直到识别位置大于P;所述识别区间包括:所述段落起始字符位置、段落结束字符位置、识别出的专用词。
可选的,所述识别模块11还具体用于:a1、设置所述起始位置Ps为所述自动换行位置P减1;b1、构建关键字[字符Ps,字符Ps+1],在所述专用词索引表中,根据所构建的关键字查找对应的匹配项,若查找不到,则返回所述起始位置Ps;c1、根据所构建的关键字在对应的专用词中的位置和专用词的文本长度,确定最大前缀字符个数L,在所述起始位置Ps开始向前遍历字符,直到遍历到分隔位置或遍历个数等于L;d1、如果遍历到所述分隔位置,则将所述起始位置Ps设置为分隔位置后返回所述起始位置Ps;e1、如果遍历个数等于所述L,则将所述起始位置Ps设置为Ps减L+1后转入执行所述b1。
可选的,所述识别模块还具体用于:a2、设置当前识别位置为Pc为所述起始位置Ps;b2、构建关键字[字符Pc,字符Pc+1],在所述专用词索引表中,根据所构建的关键字查找对应的匹配项,如果不存在,则将当前识别位置Pc加1,转入执行所述e2;否则,转入执行所述c2;c2、根据所构造的关键字,以及对应的匹配项,对从当前识别位置Pc开始的段落,按照匹配优先级的顺序进行专用词匹配;如果未查找到,则将当前识别位置Pc加1,转入步骤e2;d2、确定所述识别区间,其中,段落起始字符位置为当前识别位置Pc,段落结束字符位置为当前识别位置Pc加上专用词文本长度,识别出的专用词为与所构建的关键字匹配成功的专用词项;将当前识别位置Pc加上所述专用词文本长度;e2、如果当前识别位置Pc大于所述自动换行位置P,则退出;否则,转入执行所述b2。
本实施例提供的专业词不拆行处理装置,为本发明提供的专用词不拆行处理方法的执行装置,其执行上述的方法的具体过程可参见方法实施例中的相关描述,在此不再赘述。
本实施例提供的专用词不拆行处理装置,对文章段落换行位置附近的字符与预先设置的专用词索引表中的关键字的字符进行匹配,识别出包括关键字的专用词,再根据所识别出的专用词中所包括的字符与所述换行位置的位置关系,调整所述文章段落的换行位置,以使设定类型的每个所述专用词中 包括的所有字符位于所述段落中的同一行。从而提高对专用词在同一行中不拆分的处理效率。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或处理器(processor)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存 储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,以上实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的精神和范围。