中文字串的词汇切分系统及其方法 技术领域 本发明涉及一种中文字串的词汇切分系统及其方法, 特别是指一种产生有效切分 字词的中文字串的词汇切分系统及其方法。
背景技术 中文分词 (Chinese Word Segmentation, CWS) 是将一中文词句切分为数个切分字 词, 其应用于信息检索、 人机互交、 信息提取、 文本挖掘、 中外文翻译、 中文校对与自动摘要 等。 以信息检索为例, 搜寻引擎预先将检索资料切分为多个切分字词, 并依照这些切分词建 立索引 ; 搜寻引擎在接收使用者输入的关键字句时, 同样将关键字句切分为一或多个切分 字词, 将其与索引进行比对, 以找出与关键字句相关的检索资料。
但中文不同于英文, 字与字之间没有空格, 所以亦无法按空格提取字串并建立索 引, 故分词遂成为达到有效信息检索的关键技术。以 “我正面临一项挑战” 为例, 现行采用 的交叉二元切分法将切分出 7 个切分字词, 其分别为 “我正” 、 “正面” 、 “面临” 、 “临一” 、 “一 项” 、 “项考” 与 “考验” ; 此交叉二元切分法简单快速, 但会产生大量无意义的切分字词, 导致 索引其储存空间增加而造成负担, 此外, 此种机械切分虽提高关键字句的命中率, 但因未考 虑字句原意, 反而降低了检索结果的相关性。
综上所述, 可知现有技术在切分中文字串的过程中, 一直存在着产生大量无效切 分字词的问题, 因此有必要提出改进的技术手段, 来解决此一问题。
发明内容 有鉴于现有技术于切分中文字串的过程中, 一直存在着产生大量无效切分字词的 问题, 本发明遂提供一种中文字串的词汇切分系统及其方法, 其中 :
本发明所提供的中文字串的词汇切分系统, 其包含一词汇库、 一撷取模块与一查 找模块。 其中, 词汇库包含有复数个词汇 ; 撷取模块用于自接收的一中文字串撷取其第一字 至第二字为第一组合词汇后, 依据该第一组合词汇其后续查找之有无, 选择撷取该第一组 合词汇与其下一字为第一组合累加词汇, 或撷取该第一组合词汇的尾字与其下一字为第二 组合词汇 ; 查找模块用于在词汇库依序进行该第一组合词汇的匹配查找, 以及该第一组合 累加词汇或该第二组合词汇的匹配查找 ; 其中, 当查找模块确认词汇库有该第一组合累加 词汇时, 撷取模块选择撷取该第一组合累加词汇与其下一字为次第一组合累加词汇, 反之, 则撷取该第一组合累加词汇的尾字与其下一字为该第二组合词汇, 并由查找模块进行该次 第一组合累加词汇或该第二组合词汇的匹配查找, 依此类推至任一组合词汇或组合累加词 汇包含有该中文字串的最终字为止。
本发明所提供的中文字串的词汇切分方法, 预建有包含复数个词汇的一词汇库, 该方法首先自一中文字串撷取其第一字至第二字为第一组合词汇 ; 接着, 以该第一组合词 汇至词汇库进行匹配查找, 当确认词汇库有该第一组合词汇时, 撷取该第一组合词汇与其 下一字为第一组合累加词汇, 反之则撷取该第一组合词汇的尾字与其下一字为第二组合词
汇, 并再次在词汇库查找与该第二组合词汇符合的一词汇 ; 以该第一组合累加词汇在词汇 库进行匹配查找, 当确认词汇库有该第一组合累加词汇时, 撷取该第一组合累加词汇与其 下一字为次第一组合累加词汇, 反之则撷取该第一组合累加词汇的尾字与其下一字为该第 二组合词汇, 并再次以该第二组合词汇在词汇库进行匹配查找 ; 依此类推, 直至任一组合词 汇或组合累加词汇包含有该中文字串的最终字为止。
本发明所提供的系统与方法如上, 与现有技术之间的差异在于本发明在确认词汇 库有自该中文字串撷取的组合词汇时, 进一步撷取其与下一字作为组合累加词汇并继续查 找, 反之则撷取该组合词汇的尾字与其下一字进行查找的技术手段, 通过此技术手段, 本发 明可产生有效的组合词汇或组合累加词汇, 在兼顾切分速度与字句原意之下, 达到降低系 统负担的技术功效。 附图说明
图 1 为本发明的中文字串切分系统其方框示意图 ;
图 2 为本发明的中文字串切分方法其步骤流程图 ;
图 3 为本发明的增添识别模块与设定模块的中文字串切分系统其方框示意图 ;
图 4 为本发明的增添识别步骤与设定步骤的中文字串切分方法其步骤流程图 ; 图 5 为本发明的中文字串其长词优先的切分结果的示意图。具体实施方式
以下将配合附图及实施例来详细说明本发明的实施方式, 借此对本发明如何应用 技术手段来解决技术问题并达到技术功效的实现过程能充分理解并据以实施。
图 1 为本发明的中文字串切分系统其方框示意图。 请参照图 1, 中文字串切分系统 100 包含有一词汇库 110、 一撷取模块 120 与一查找模块 130。其中, 词汇库 110 包含有复 数个词汇, 该些词汇是用于作为后续比对的依据 ; 撷取模块 120 用于自接收的一中文字串 101 撷取其第一字至第二字为第一组合词汇后, 依据该第一组合词汇其后续查找之有无, 选 择撷取该第一组合词汇与其下一字为第一组合累加词汇, 或是撷取该第一组合词汇的尾字 与其下一字为第二组合词汇。
举例来说, 一中文字串 101 为 “我最喜欢你的笑容” , 其中 “我” 为第一字, “容” 为 该中文字串 101 的最终字 ; 撷取模块 120 自该中文字串 101 撷取其第一字至第二字为第一 组合词汇, 即 “我最” , 并依据该第一组合词汇 “我最” 后续查找之有无, 选择撷取 “我最” 与 “我最” 于该中文字串 101 的下一字 “喜” 为第一组合累加词汇 “我最喜” , 或是撷取 “我最” 的尾字 “最” 与其下一字 “喜” 为第二组合词汇 “最喜” 。又以中文字串 101“星期一天气晴” 为例, 撷取模块 120 将撷取 “星期” 为第一组合词汇, 并依据后续查找 “星期” 之有无, 选择 撷取第一组合累加词汇 “星期一” 或第二组合词汇 “期一” 。
查找模块 130 用于在词汇库 110 依序进行该第一组合词汇的匹配查找, 以及该第 一组合累加词汇或该第二组合词汇的匹配查找 ; 其中, 当查找模块 130 确认词汇库 110 有该 第一组合累加词汇时, 撷取模块 120 继续选择撷取该第一组合累加词汇与其下一字为次第 一组合累加词汇, 反之, 则撷取该第一组合累加词汇的尾字与其下一字为该第二组合词汇, 由查找模块 130 进行该次第一组合累加词汇或该第二组合累加词汇的匹配查找, 依此类推至任一组合词汇或组合累加词汇包含有该中文字串 101 的最终字为止。
延续上例, 查找模块 130 在词汇库 110 查找与该第一组合词汇 “我最” 相符的一词 汇, 并确定词汇库 110 无 “我最” , 此时, 撷取模块 120 选择撷取该第一组合词汇 “我最” 的尾 字与其下一字为第二组合词汇 “最喜” , 查找模块 130 即在词汇库 110 进行该第二组合词汇 “最喜” 的匹配查找 ; 当查找模块 130 确认词汇库 110 无该第二组合词汇 “最喜” 时, 撷取模块 120 选择撷取该第二组合词汇 “最喜” 的尾字与其下一字为该第三组合词汇, 即 “喜欢” , 并由 查找模块 130 在词汇库 110 进行该第三组合词汇的匹配查找 ; 依此类推, 当查找模块 130 查 找出与该第三组合词汇 “喜欢” 相符的词汇后, 更依序对撷取模块 120 所产生的第三组合累 加词汇 “喜欢你” 、 第四组合词汇 “你的” 、 第五组合词汇 “的笑” 与第六组合词汇 “笑容” 进行 匹配查找, 最后依据该第六组合词汇 “笑容” 包含最终字 “容” 而停止查找, 产生 “我” 、 “最” 、 “喜欢” 、 “你” 、 “的” 与 “笑容” 的切分结果。
在另一例中, 查找模块 130 在词汇库 110 查找出与该第一组合词汇 “星期” 相符的 一词汇, 撷取模块 120 即依据此查找结果选择撷取第一组合累加词汇 “星期一” , 并由查找 模块 130 在词汇库 110 进行 “星期一” 的匹配查找 ; 当查找出该第一组合累加词汇 “星期一” 时, 撷取模块 120 撷取次第一组合累加词汇 “星期一天” , 并由查找模块 130 在词汇库 110 进 行 “星期一天” 的匹配查找 ; 依此类堆, 查找模块 130 确定无该次第一组合累加词汇 “星期 一天” 的词汇时, 更依序对撷取模块 120 所产生的第二组合词汇 “天气” 、 第二组合累加词汇 “天气晴” 与第三组合词汇 “晴” 进行匹配查找, 最后依据该第三组合词汇 “晴” 为最终字而 停止查找, 产生 “星期” 、 “星期一” 、 “天气” 、 “晴” 的切分结果。
此外, 中文字串切分系统 100 可更包含一识别模块 140( 请见图 3), 用于在查找模 块 130 确认词汇库 110 无该第一组合词汇 ( 或该第二组合词汇 ) 时, 将该第一组合词汇 ( 或 该第二组合词汇 ) 的首字识别为第一切分字 ( 或第二切分字 )。在上例产生 “我” 、 “最” 、 “喜欢” 、 “你” 、 “的” 与 “笑容” 的过程中, 识别模块 140 依据该第一组合词汇 “我最” 其查找 结果为无, 将其尾字 “我” 识别为第一切分字 ; 依此类推, “最” 为第二切分字, “你” 为第四切 分字, “的” 为第五切分字, 而 “喜欢” 与 “笑容” 则为上述之第三组合词汇与第六组合词汇。
图 2 为本发明的中文字串切分方法其步骤流程图, 预建包含有复数个词汇的一词 汇库 110。 请参照图 2, 首先自一中文字串 101 撷取其第一字至第二字为第一组合词汇 ; (步 骤 210) ; 以该第一组合词汇至词汇库 110 进行匹配查找, 当确认词汇库 110 有该第一组合 词汇时, 撷取该第一组合词汇与其下一字为第一组合累加词汇, 反之, 则撷取该第一组合词 汇的尾字与其下一字为第二组合词汇, 并再次以该第二组合词汇在词汇库 110 进行匹配查 找 ( 步骤 220) ; 以该第一组合累加词汇至词汇库 110 进行匹配查找, 当确认词汇库 110 有该 第一组合累加词汇时, 撷取该第一组合累加词汇与其下一字为次第一组合累加词汇, 反之, 则撷取该第一组合累加词汇的尾字与其下一字为该第二组合词汇, 并再次以该第二组合词 汇在词汇库 110 进行匹配查找 ( 步骤 230) ; 依此类推至任一组合词汇或组合累加词汇包含 有该中文字串 101 之最终字为止 ( 步骤 240)。
承上, 将第二组合词汇在词汇库 110 进行匹配查找 ( 步骤 220 或步骤 230), 当确认 词汇库 110 有该第二组合词汇时, 撷取该第二组合词汇与其下一字为第二组合累加词汇, 并在词汇库 110 进行该第二组合累加词汇的匹配查找 ; 反之, 则撷取该第二组合词汇的尾 字与其下一字为第三组合词汇, 在词汇库 110 进行该第三组合词汇的匹配查找。其中, 在词汇库 110 进行一组合词汇 ( 包含第一组合词汇、 第二组合词汇、 或是第 三组合词汇及其以上的可能 ) 的匹配查找, 并确认词汇库 110 无该组合词汇时, 更包含将该 组合词汇的首字辨识为一切分字 ( 依序为第一切分字、 第二切分字、 第三切分字及其以上 ) 的步骤。
为求解说详尽, 以下针对本发明的中文字串的词汇切分系统及其方法, 导入撷取 起点、 撷取字数与词汇记录的概念, 以使其实施方式更加具体。
图 3 为本发明的增添识别模块与设定模块的中文字串切分系统其方框示意图。请 参照图 3, 中文字串切分系统 100 较前述更包含一识别模块 140 与一设定模块 150 ; 其中 识别模块 140 如前所述, 而包含有一撷取起点、 一撷取数字与一词汇记录的设定模块 150, 是用于依据查找模块 130 查找之有无, 选择对该撷取字数与该词汇记录分别进行累加与标 记, 或是对该撷取起点进行累加, 并重置该撷取字数与该词汇记录。
以上例 “星期一天气晴” 说明之, 请同时参照图 3、 图 4 与图 5, 设定模块 150 所预 设的该撷取起点 510 为 0, 该撷取字数 520 为 2, 该词汇记录则未标记 ; 首先, 撷取模块 120 以预设的该撷取起点 510 为基准, 自该中文字串 101 撷取符合该撷取字数 520 的字串为第 一组合词汇, 即 “星期” ( 步骤 410) ; 查找模块 130 在确认词汇库 110 有该第一组合词汇 “星 期” 时 ( 步骤 420), 再次确认 “星期” 不包含该中文字串 101 的最终字 “晴” ( 步骤 430) ; 设 定模块 150 依据 “星期” 的查找结果, 选择累加该撷取字数 520 为 3, 并标记该词汇记录 ( 步 骤 440) ; 撷取模块 120 依据该撷取起点 510 与撷取字数 520, 撷取第 0 至第 3 之间的字串 “星期一” 为第一组合累加词汇 ( 步骤 410)。 承上, 查找模块 130 在确认词汇库 110 有该第一组合累加词汇 “星期一” 时 ( 步骤 420), 再次确认 “星期一” 不包含最终字 “晴” ( 步骤 430) ; 设定模块 150 依据 “星期一” 的 查找结果, 选择将该撷取字数 520 累加至 4, 并维持标记的该词汇记录 ( 步骤 440) ; 撷取模 块 120 撷取第 0 至第 4 之间的字串 “星期一天” 为次第一组合累加词汇 ( 步骤 410) ; 查找模 块 130 在确认词汇库 110 不包含该次第一组合累加词汇 “星期一天” ( 步骤 420), 再次确认 该词汇记录为标记状态, 识别模块 140 在确认该词汇记录为标记状态后, 选择不动作 ( 步骤 450) ; 设定模块 150 依据查找结果为无, 将该撷取起点 510 指定为 3(0+4-1), 重新指定该撷 取字数 520 为 2, 并取消该词汇记录的标记 ( 步骤 460) ; 撷取模块 120 撷取第 3 至第 5 之间 的字串 “天气” 为第二组合词汇 ( 步骤 410)。
查找模块 130 在确认词汇库 110 有该第二组合词汇 “天气” 时 ( 步骤 420), 再次确 认 “天气” 不包含最终字 “晴” ( 步骤 430) ; 设定模块 150 将该撷取字数 520 累加至 3, 并标 记该词汇记录 ( 步骤 440) ; 撷取模块 120 撷取第 3 至第 6 之间的字串 “天气晴” 为第二组合 累加词汇 ( 步骤 410) ; 查找模块 130 确认词汇库 110 不包含该第二组合累加词汇 “天气晴” 时 ( 步骤 420), 识别模块 140 确认该词汇记录为标记状态后, 选择不动作 ( 步骤 450) ; 设定 模块 150 依据 “天气晴” 的查找结果为无, 将该撷取起点 510 指定为 5(3+3-1), 重新指定该 撷取字数 520 为 2, 并取消该词汇记录的标记 ( 步骤 460) ; 撷取模块 120 撷取出第 5 至第 7 之间的字串 “晴” 为第三组合词汇 ( 步骤 410) ; 查找模块 130 在词汇库 110 查无 “晴” 时(步 骤 420), 识别模块 140 依据该词汇标记为无, 而将 “晴” 识别为第三切分字 ( 步骤 470), 查找 模块 130 确认 “晴” 包含有该最终字 “晴” ( 步骤 480), 故结束查找, 产生 “星期” 、 “星期一” 、 “天气” 、 “晴” 的切分结果。若查找模块 130 在确认一切分字不包含最终字时 ( 步骤 480),
设定模块 150 则累计该撷取起点 510, 重新给定该撷取数字 520 为 2( 步骤 490), 并重复步 骤 410。图 5 之 “星期一” 、 “天气” 、 “晴” 为此例的长词优先的分词结果, 其中 “星期一” 530 为第一组合累加字汇, “天气” 540 为第二组合词汇, “晴” 550 为第三切分字, 此长词优先的 切分结果适合应用于中外文翻译。
综上所述, 可知本发明与现有技术之间的差异在于具有在确认词汇库有自该中文 字串撷取的组合词汇时, 进一步撷取其与下一字作为组合累加词汇并继续查找, 反之则撷 取该组合词汇的尾字与其下一字进行查找的技术手段, 借由此一技术手段可以解决现有技 术所存在的问题, 进而于兼顾切分速度与字句原意之下, 达到降低系统负担的技术功效。
虽然本发明所公开的实施方式如上, 惟所述的内容并非用于直接限定本发明的专 利保护范围。本领域技术人员在不脱离本发明所揭露的精神和范围的前提下, 可以在实施 的形式上及细节上作些许之更动。本发明的专利保护范围, 仍须以所附权利要求书所界定 为准。