第10卷第6期 智能系统学报 Vol.10 No.6 2015年12月 CAAI Transactions on Intelligent Systems Dee.2015 D0L:10.11992/is.201507038 网络出版地址:http://www.cnki.net/kcms/detail/23.1538.tp.20151111.1633.004.html 从用户需求语句建立问题可拓模型的研究 王定桥,李卫华,杨春燕2 (1.广东工业大学计算机学院,广东广州510006;2.广东工业大学可拓学与创新方法研究所,广东广州510006) 摘要:准确地建立待解决问题的可拓模型是可拓策略生成的关键步骤。目前的可拓策略生成系统在建立可拓模 型时因自然语言理解的困难,未能充分理解用户需求,所以较雄自动建立问题的可拓模型。提出了解析用户自然语 言需求语句、并自动建立可拓模型的方法。该方法的核心包括4步:1)对用户需求语句进行组块分析得到短语序 列:2)对短语序列进行分类:3)使用匹配规则抽取分类后的短语,得到便于计算机处理的需求信息:4)结合数据库技 术进行可拓模型的建立。以租房问题为案例,实现了该方法。实验结果表明,该方法能较好地理解用户需求信息并 成功建立租房问题可拓模型。 关键词:可拓学:可拓模型;可拓策略生成:信息抽取:分类 中图分类号:TP391文献标志码:A文章编号:1673-4785(2015)06-0865-07 中文引用格式:王定桥,李卫华,杨春燕.从用户需求语句建立问题可拓模型的研究[J].智能系统学报,2015,10(6):865-871. 英文引用格式:WANG Dingqiao,LI Weihua,YANG Chunyan.Research on building an extension model from user requirements [J].CAAI Transactions on Intelligent Systems,2015,10(6):865-871. Research on building an extension model from user requirements WANG Dingqiao',LI Weihua',YANG Chunyan2 (1.School of Computer,Guangdong University of Technology,Guangzhou 510006,China;2.Research Institute of Extenics and Inno- vation Methods,Guangdong University of Technology,Guangzhou 510006,China) Abstract:Building an effective extension model to solve a problem is a key step in generating an extension strategy.Due to the complexity of natural language processing,the current extension strategy generation system is insufficiently clear with respect to user requirements,so it is hard to automatically build an extension model. In this paper,we propose a method for parsing the user requirement sentence in order to then automatically build the extension model.This method contains four core steps.First,chunk parsing is performed on the sen- tence containing the user requirements to obtain the phrase sequence.Secondly,the phrase sequence is classi- fied with a classifier.Thirdly,based on the matching rule,information is extracted from the classified phrase to obtain the information required for computer processing.Next,database technology is used to build the exten- sion model.Using a tenement building as an example,we implemented and tested our proposed method.Based on our experimental results,we proved that the proposed method is effective for understanding user require- ments in order to build an extension model. Keywords:extenics;extension model;extension strategy generation;information extraction;classification 矛盾问题是指在现有条件下无法实现人们要达 到的目标的问题。矛盾问题智能化处理的研究对现 代科学的发展具有重要意义山。可拓学研究的矛 收稿日期:2015-07-23.网络出版日期:2015-11-11. 基金项目:国家自然科学基金资助项目(61273306). 盾问题主要分为不相容问题和对立问题,本文主要 通信作者:王定桥.E-mail:wangdingqiao2012@qg.com. 讨论不相容问题
第 10 卷第 6 期 智 能 系 统 学 报 Vol.10 №.6 2015 年 12 月 CAAI Transactions on Intelligent Systems Dec. 2015 DOI:10.11992 / tis.201507038 网络出版地址:http: / / www.cnki.net / kcms/ detail / 23.1538.tp.20151111.1633.004.html 从用户需求语句建立问题可拓模型的研究 王定桥1 ,李卫华1 ,杨春燕2 (1.广东工业大学 计算机学院,广东 广州 510006; 2.广东工业大学 可拓学与创新方法研究所,广东 广州 510006) 摘 要:准确地建立待解决问题的可拓模型是可拓策略生成的关键步骤。 目前的可拓策略生成系统在建立可拓模 型时因自然语言理解的困难,未能充分理解用户需求,所以较难自动建立问题的可拓模型。 提出了解析用户自然语 言需求语句、并自动建立可拓模型的方法。 该方法的核心包括 4 步:1)对用户需求语句进行组块分析得到短语序 列;2)对短语序列进行分类;3)使用匹配规则抽取分类后的短语,得到便于计算机处理的需求信息;4)结合数据库技 术进行可拓模型的建立。 以租房问题为案例,实现了该方法。 实验结果表明,该方法能较好地理解用户需求信息并 成功建立租房问题可拓模型。 关键词:可拓学;可拓模型;可拓策略生成;信息抽取;分类 中图分类号: TP391 文献标志码:A 文章编号:1673⁃4785(2015)06⁃0865⁃07 中文引用格式:王定桥,李卫华,杨春燕. 从用户需求语句建立问题可拓模型的研究[J]. 智能系统学报, 2015, 10(6): 865⁃871. 英文引用格式:WANG Dingqiao, LI Weihua, YANG Chunyan. Research on building an extension model from user requirements [J]. CAAI Transactions on Intelligent Systems, 2015, 10(6): 865⁃871. Research on building an extension model from user requirements WANG Dingqiao 1 , LI Weihua 1 , YANG Chunyan 2 (1.School of Computer, Guangdong University of Technology, Guangzhou 510006, China; 2. Research Institute of Extenics and Inno⁃ vation Methods, Guangdong University of Technology, Guangzhou 510006, China) Abstract:Building an effective extension model to solve a problem is a key step in generating an extension strategy. Due to the complexity of natural language processing, the current extension strategy generation system is insufficiently clear with respect to user requirements, so it is hard to automatically build an extension model. In this paper, we propose a method for parsing the user requirement sentence in order to then automatically build the extension model. This method contains four core steps. First, chunk parsing is performed on the sen⁃ tence containing the user requirements to obtain the phrase sequence. Secondly, the phrase sequence is classi⁃ fied with a classifier. Thirdly, based on the matching rule, information is extracted from the classified phrase to obtain the information required for computer processing. Next, database technology is used to build the exten⁃ sion model. Using a tenement building as an example, we implemented and tested our proposed method. Based on our experimental results, we proved that the proposed method is effective for understanding user require⁃ ments in order to build an extension model. Keywords: extenics; extension model; extension strategy generation; information extraction; classification 收稿日期:2015⁃07⁃23. 网络出版日期:2015⁃11⁃11. 基金项目:国家自然科学基金资助项目 (61273306). 通信作者:王定桥. E⁃mail: wangdingqiao2012@ qq.com. 矛盾问题是指在现有条件下无法实现人们要达 到的目标的问题。 矛盾问题智能化处理的研究对现 代科学的发展具有重要意义[1] 。 可拓学研究的矛 盾问题主要分为不相容问题和对立问题,本文主要 讨论不相容问题
·866. 智能系统学报 第10卷 解决不相容问题,一般包括6个步骤),其中 参考价值,但仍然不能直接用于建立可拓模型。在 第1个步骤就是建立问题的可拓模型。因此,要借 实际应用中,用户表达的语句通常会出现不完全合 助计算机智能化地处理不相容问题,首要的任务是 乎语法、信息省略、包含错别字、简写、歧义等情况, 准确地建立问题的可拓模型。 为信息抽取增加了难度。因此,结合实际问题需要, 目前,建立可拓模型主要通过2种方式:1)在 本文将从用户需求语句主要抽取的信息分为4类, 人充分理解问题的基础上,利用形式化符号手工建 如下: 立。这种方式主要由少数专家和研究人员使用,对 1)可量化的量值 可拓学专业知识要求较高,不适合广大用户:2)通 这类信息是指,用户表达的明确的属性和量值。 过可拓策略生成系统的界面输入问题相关的参数, 例如: 来辅助系统建模。例如早期研究的自助游可拓策略 例1一个人想在沙坪坝租房,只租1个月,有 生成系统)、租房可拓策略生成系统]、求职问题 空调、卫生间,房租大概350元。 可拓策略生成系统[)等都是采用这种方式。但使 这个语句中用户给出的区域、,租金、租期和配套 用这种方式时存在2个问题:1)当参数过多时,输 设施都属于可量化的量值。 入界面通用设计变得困难:2)如果输入文字稍长, 2)抽象的量值 系统难以快速理解用户问题,建模效率低。 自然语言表达中通常会不自觉地出现一些抽象 描述,当这些描述与可拓策略生成系统期望的量值 1 关键技术及解决思路 类型不一致时,仍然需要抽取,以便做出更合理的决 1.1问题可拓模型建立所涉及到的技术 策。例如 建立不相容问题的可拓模型,实际上是一个收 例2我要在大连市内找工作,想租个房子,月 集与问题P相关的信息,然后界定问题的目标G和 租便宜点、交通方便点的。 条件L,形成可拓模型P=GL的过程。其中主要涉 这里用户提供的租金描述为便宜的、交通状况 及到以下技术: 为方便的,都属于抽象量值,而可拓策略生成系统实 1)信息抽取技术 际需要的为数量值。 信息抽取技术是指从一段文本中抽取指定的事 3)优先级信息 件、事实等信息,形成结构化的数据并存入一个数据 用户语句中很可能通过“必须”、“一定要”、“最 库,供用户查询和使用的过程。从用户需求语句,抽 好”等关键字,来表达他的特殊需求,例如: 取属性及量值,实际上就是一个信息抽取的过程。 例3想在滨州市新北中附近租房。便宜点的, 2)领域本体 合租也可以。一定要有暖气。 领域本体是用于描述特定领域知识的一种专门 用户表达的需求“一定要有暖气”可作为可拓策 本体。它给出了领域实体概念、领域属性概念、领域 略生成的一个筛选条件。 属性值及相互关系,以及该领域所具有的特性和规 4)逻辑关系信息 律的一种形式化描述6)。实际上在可拓策略生成 逻辑关系,主要包括用户表达的并列、或者、否 系统整个过程中,都需要借助领域本体知识。在建 定、反义等逻辑关系。例如: 立模型时领域本体能够为抽取属性的种类、量值范 例4我要在南宁市内租房,一室或者二室都可 围、量值单位提供一致的指导。 以,500元以内,不要中介的,安全的。 3)数据库技术 第1类信息的抽取,是一个命名实体识别的过 可拓策略生成系统需要借助数据库技术,存储基 程。命名实体识别(named entity recognition,NER) 础数据、知识库、规则库等内容。在建立模型时用户 的主要任务是识别出文本中的人名、地名等专有名 提供的需求语句可能只提供了目标或条件之中的一 称和有意义的时间、日期等数量短语并加以归 个,或者提供了不完整的目标和条件,这些情况下需 类。实际研究中,命名实体识别的对象根据不同 要利用数据库中数据对可拓模型进行补充和完善。 应用而有所改变,例如在医学文本中识别生物命名 1.2用户需求语句信息抽取的主要内容 实体[1】、中文旅游景点的识别]等。目前命名实 当前信息抽取还只是面向特定领域开展,能够 体识别主要的方法包括:基于规则和词典的方法、基 真正实现大规模应用的信息抽取系统仍然未出 于统计的方法、二者混合的方法。文献[12]对比并 现)。知网的中文信息语义处理技术[]有一定的 指出了各个方法的优点和局限
解决不相容问题,一般包括 6 个步骤[1] ,其中 第 1 个步骤就是建立问题的可拓模型。 因此,要借 助计算机智能化地处理不相容问题,首要的任务是 准确地建立问题的可拓模型。 目前,建立可拓模型主要通过 2 种方式:1) 在 人充分理解问题的基础上,利用形式化符号手工建 立。 这种方式主要由少数专家和研究人员使用,对 可拓学专业知识要求较高,不适合广大用户;2) 通 过可拓策略生成系统的界面输入问题相关的参数, 来辅助系统建模。 例如早期研究的自助游可拓策略 生成系统[2] 、租房可拓策略生成系统[3] 、求职问题 可拓策略生成系统[4] 等都是采用这种方式。 但使 用这种方式时存在 2 个问题:1) 当参数过多时,输 入界面通用设计变得困难;2) 如果输入文字稍长, 系统难以快速理解用户问题,建模效率低。 1 关键技术及解决思路 1.1 问题可拓模型建立所涉及到的技术 建立不相容问题的可拓模型,实际上是一个收 集与问题 P 相关的信息,然后界定问题的目标 G 和 条件 L,形成可拓模型 P = GL 的过程。 其中主要涉 及到以下技术: 1)信息抽取技术 信息抽取技术是指从一段文本中抽取指定的事 件、事实等信息,形成结构化的数据并存入一个数据 库,供用户查询和使用的过程[5] 。 从用户需求语句,抽 取属性及量值,实际上就是一个信息抽取的过程。 2)领域本体 领域本体是用于描述特定领域知识的一种专门 本体。 它给出了领域实体概念、领域属性概念、领域 属性值及相互关系,以及该领域所具有的特性和规 律的一种形式化描述[6] 。 实际上在可拓策略生成 系统整个过程中,都需要借助领域本体知识。 在建 立模型时领域本体能够为抽取属性的种类、量值范 围、量值单位提供一致的指导。 3)数据库技术 可拓策略生成系统需要借助数据库技术,存储基 础数据、知识库、规则库等内容。 在建立模型时用户 提供的需求语句可能只提供了目标或条件之中的一 个,或者提供了不完整的目标和条件,这些情况下需 要利用数据库中数据对可拓模型进行补充和完善。 1.2 用户需求语句信息抽取的主要内容 当前信息抽取还只是面向特定领域开展,能够 真正实现大规模应用的信息抽取系统仍然未出 现[7] 。 知网的中文信息语义处理技术[ 8 ] 有一定的 参考价值,但仍然不能直接用于建立可拓模型。 在 实际应用中,用户表达的语句通常会出现不完全合 乎语法、信息省略、包含错别字、简写、歧义等情况, 为信息抽取增加了难度。 因此,结合实际问题需要, 本文将从用户需求语句主要抽取的信息分为 4 类, 如下: 1)可量化的量值 这类信息是指,用户表达的明确的属性和量值。 例如: 例 1 一个人想在沙坪坝租房,只租 1 个月,有 空调、卫生间,房租大概 350 元。 这个语句中用户给出的区域、租金、租期和配套 设施都属于可量化的量值。 2)抽象的量值 自然语言表达中通常会不自觉地出现一些抽象 描述,当这些描述与可拓策略生成系统期望的量值 类型不一致时,仍然需要抽取,以便做出更合理的决 策。 例如: 例 2 我要在大连市内找工作,想租个房子,月 租便宜点、交通方便点的。 这里用户提供的租金描述为便宜的、交通状况 为方便的,都属于抽象量值,而可拓策略生成系统实 际需要的为数量值。 3)优先级信息 用户语句中很可能通过“必须”、“一定要”、“最 好”等关键字,来表达他的特殊需求,例如: 例 3 想在滨州市新北中附近租房。 便宜点的, 合租也可以。 一定要有暖气。 用户表达的需求“一定要有暖气”可作为可拓策 略生成的一个筛选条件。 4)逻辑关系信息 逻辑关系,主要包括用户表达的并列、或者、否 定、反义等逻辑关系。 例如: 例 4 我要在南宁市内租房,一室或者二室都可 以,500 元以内,不要中介的,安全的。 第 1 类信息的抽取,是一个命名实体识别的过 程。 命名实体识别 (named entity recognition, NER) 的主要任务是识别出文本中的人名、地名等专有名 称和有 意 义 的 时 间、 日 期 等 数 量 短 语 并 加 以 归 类[ 9 ] 。 实际研究中,命名实体识别的对象根据不同 应用而有所改变,例如在医学文本中识别生物命名 实体[ 10 ] 、中文旅游景点的识别[1 1 ] 等。 目前命名实 体识别主要的方法包括:基于规则和词典的方法、基 于统计的方法、二者混合的方法。 文献[12]对比并 指出了各个方法的优点和局限。 ·866· 智 能 系 统 学 报 第 10 卷
第6期 王定桥,等:从用户需求语句建立问题可拓模型的研究 ·867- 上述第2类信息的抽取是一个分类的过程。对 2.1预处理 于用户提供的不够具体的量值,首先确定其描述的 预处理的主要目的是为了简化后续处理。这一 内容属于什么属性,然后可以按2种方式处理。 阶段完成工作包括:过滤、替换、数据格式调整、分 种是为抽象描述提供预设值,例如为租金构造离散 词。过滤主要是过滤客气词(例如“请问”)、语气词 函数,根据值域分为便宜、一般、高价3个等级,这样 (例如“急求”)、询问相关词(例如“有没有”)。替 用户提供的抽象值也可以量化。另一种是利用抽取 换包括错别字替换(例如“500一下”替换为“500以 的抽象值,指导后续的人机交互过程。 下”)和同义词替换(例如“旁边”、“周围”等替换为 上述第3类和第4类信息,主要是在确定了 “附近”)。数据格式调整,包括数值都使用数字表 属性和量值后,在这个量值所在的上下文环境 示,数值范围调整为统一格式。分词时保留原句中 中,通过有限状态机实现。构造一个包含表达优 的逗号等分隔符,将长语句分割为短语句,得到多个 先级、反义这类信息的关键词的词典,通过有限 短语句的分词序列。 状态机中状态之间转移来实现。例如量词短语 2.2组块分析 “1000元”所在上下文为“租金超过1000元的 组块是一种语法结构,是符合一定语法功能的 就不要了”,首先获取的量值1000元,通过输入 非递归短语14)。组块分析包括组块的划分和识 单词“超过”和“不要”,量值转换为最终的区间 别,也就是识别出语句中像动词短语、形容词短语这 值[0,1000]。 类短语的过程。本文借助Stanford Parser来完成组 1.3问题解决思路 块分析。Stanford Parser中文解析器是基于Chinese 在处理具体问题的用户需求语句时,时间、货 Treebank的,具体的组块标记可参考文献[l5]。 币、日期等实体占据很大比例,其识别比较简单, 在实验的过程中,发现组块切分的粒度,对于抽 可以在分类后采用模式匹配方式实现:而其他实 取的信息数量有较大影响,尤其是当用户语句中量 体类数量比较少,识别比较困难。针对这一情 值信息密度较大时。 况,本文决定采用混合的方法,即分类和规则匹 例52个800块以内的单间。 配结合的方法来完成属性和量值的抽取。文献 预处理后形成的语义树,如图2所示。在此片 [13]中采用混合的方法提高了命名实体识别的 段中,需要抽取包括房间数量(两间),租金(800块 准确率和召回率。受到此方法的启示,本文从用 以内)以及房子样式(单间)在内的3个属性和量 户需求语句中提取信息时,先对用户语句进行组 值。如果仅切分为一个NP短语,那么后续阶段处 块分析获取短语序列:然后对短语序列进行分 理时可能漏掉属性;而切分为QP、DNP和NP,借助 类,通过对分类后的短语使用规则匹配获取属性 上下文信息,则能很好地捕获3个属性信息。 和量值:最后,使用这些属性和量值并结合数据 ROOT 库技术建立问题的可拓模型。 P 2建立可拓模型的步骤 VP NP 建立可拓模型的处理流程如图1所示。 OP DNP NP 用户问句 CD CLP LCP NN 预处理 词序列 两 M QP LC 单间 组块分析 个 CD CLP 以内 短语序列 分类 800 M 分类后的短语序列 块 量值提取 图2例5对应的语法树 属性字典 Fig.2 The parse tree of the fifth example 模型填充 可拓模型 Chinese Treebank提供了17个短语标记,其中 图1建立可拓模型的流程图 CP,P和UCP粒度过大,需要处理其内部节点: Fig.1 Steps to build extension model PRN、LST和DP一般不出现在用户需求语句中,不 予处理:CLP类型需要处理其上级QP短语,VP
上述第 2 类信息的抽取是一个分类的过程。 对 于用户提供的不够具体的量值,首先确定其描述的 内容属于什么属性,然后可以按 2 种方式处理。 一 种是为抽象描述提供预设值,例如为租金构造离散 函数,根据值域分为便宜、一般、高价 3 个等级,这样 用户提供的抽象值也可以量化。 另一种是利用抽取 的抽象值,指导后续的人机交互过程。 上述第 3 类和第 4 类信息,主要是在确定了 属性和量值后,在这个量值所在的 上 下 文 环 境 中,通过有限状态机实现。 构造一个包含表达优 先级、反义这类信息的关键词的词典,通过有限 状态机中状态之间转移来实现。 例如量词短语 “ 1 000 元” 所在上下文为“ 租金超过 1 000 元的 就不要了” ,首先获取的量值 1 000 元,通过输入 单词“超过” 和“ 不要” ,量值转换为最终的区间 值[ 0,1 000] 。 1.3 问题解决思路 在处理具体问题的用户需求语句时,时间、货 币、日期等实体占据很大比例,其识别比较简单, 可以在分类后采用模式匹配方式实现;而其他实 体类数量 比 较 少, 识 别 比 较 困 难。 针 对 这 一 情 况,本文决定采用混合的方法,即分类和规则匹 配结合的方法来完成属性和量值的抽取。 文献 [ 13]中采用混合的方法提高了命名实体识别的 准确率和召回率。 受到此方法的启示,本文从用 户需求语句中提取信息时,先对用户语句进行组 块分析获取短语序列;然后对短语 序 列 进 行 分 类,通过对分类后的短语使用规则匹配获取属性 和量值;最后,使用这些属性和量值并结合数据 库技术建立问题的可拓模型。 2 建立可拓模型的步骤 建立可拓模型的处理流程如图 1 所示。 图 1 建立可拓模型的流程图 Fig.1 Steps to build extension model 2.1 预处理 预处理的主要目的是为了简化后续处理。 这一 阶段完成工作包括:过滤、替换、数据格式调整、分 词。 过滤主要是过滤客气词(例如“请问”)、语气词 (例如“急求”)、询问相关词(例如“有没有”)。 替 换包括错别字替换(例如“500 一下”替换为“500 以 下”)和同义词替换(例如“旁边”、“周围”等替换为 “附近”)。 数据格式调整,包括数值都使用数字表 示,数值范围调整为统一格式。 分词时保留原句中 的逗号等分隔符,将长语句分割为短语句,得到多个 短语句的分词序列。 2.2 组块分析 组块是一种语法结构,是符合一定语法功能的 非递归短语[1 4 ] 。 组块分析包括组块的划分和识 别,也就是识别出语句中像动词短语、形容词短语这 类短语的过程。 本文借助 Stanford Parser 来完成组 块分析。 Stanford Parser 中文解析器是基于 Chinese Treebank 的,具体的组块标记可参考文献[15]。 在实验的过程中,发现组块切分的粒度,对于抽 取的信息数量有较大影响,尤其是当用户语句中量 值信息密度较大时。 例 5 2 个 800 块以内的单间。 预处理后形成的语义树,如图 2 所示。 在此片 段中,需要抽取包括房间数量(两间),租金(800 块 以内)以及房子样式(单间) 在内的 3 个属性和量 值。 如果仅切分为一个 NP 短语,那么后续阶段处 理时可能漏掉属性;而切分为 QP、DNP 和 NP,借助 上下文信息,则能很好地捕获 3 个属性信息。 图 2 例 5 对应的语法树 Fig.2 The parse tree of the fifth example Chinese Treebank 提供了 17 个短语标记,其中 CP、IP 和 UCP 粒度过大,需要处理其内部节点; PRN、LST 和 DP 一般不出现在用户需求语句中,不 予处理;CLP 类型需要处理其上级 QP 短语,VP、 第 6 期 王定桥,等: 从用户需求语句建立问题可拓模型的研究 ·867·
·868· 智能系统学报 第10卷 DNP、DVP需要处理其内部节点:FRAG是不能构建 完整结构的片段元素,也需要处理其内部节点;主要 if(tNode!=null)) 处理的类型包括PP、QP、NP、LCP、ADJP、ADVP6 leaves.remove(tNode.getLeaves()); 种短语。 else leaves.remove(curLeave); 6种主要短语中,最复杂的是NP。NP分为简单 其中pruneTree完成语法树的剪枝工作,移除 名词短语和复合名词短语。简单名词短语由单个普 SP、PN、PU等标记的节点,移除一些常见动词(例如 通名词NN、专有NR,时间名词NT构成;复和名词 “想”),副词AD和形容词Ⅱ仅保留词典中存在的 短语的情况主要包括5种情况,QP-NN复合(例如 词:ancestor为从当前节点向上获取父节点,参数为 “一个月”)、NN-NN复合(例如“个人房源”)、NN- 向上查找层数。handelDefault处理的是默认情况, CC-NN复合(例如“空调和洗衣机”)、多个时间名词 默认情况下仅处理包括动词VV,形容词VA,名词 复合(例如“3月29日”),以及NR与若干个NN复 NN这些单词。对于这类词,不使用包含它们的父 合(例如“北京海淀区附近”)。 节点类型标记它们,而是直接使用它的词性作为标 根据上述分析,采用自底向上的搜索方法来获 记,将他们作为其他短语的上下文环境保留起来,以 取短语序列,实现伪代码如下所示: 便于后续的分类工作。handleQP、handleNP、han getPhraseList(Tree root,List<String>phList) dleLCP3个函数分别处理QP、NP、LCP短语。给定 root =pruneTree(root);leaves root.leaves; 例句: while(!leaves..isEmpty()){ 例6一个人想在郑州中央商务区附近租个 curLeave,tNode leaves[0],null 350块左右单间。 P2=curLeave.ancestor(2,root); 得到短语序列:[QP:一个/CD,NN:人/NN,PP: switch(p2.label) 在/P郑州/NR中央/NN商务区/NN,VV:租/VV, case "QP" QP:个/M,LCP:350/CD块/M左右/LC,NN:单间/ tNode=handleQP(root,p2 phList);break; NN]。 case NP": 2.3分类 tNode=handleNP(root,p2,phList);break; 使用分类算法的关键是找到有效的特征向量。 case "LCP": 本文选取的特征包括:短语类型,包含测试特征,以 tNode=handleLCP(root,P2,phList);break; 及词或者词性特征。包含测试特征是对短语是否包 case ADJP",PP",ADVP": 含某类词,进行测试而得到的整型值。不同短语测 phList.add(chToStr(p2.label,P2); 试后的特征个数也不统一,因此把包含测试特征附 tNode=p2 break; 加到短语类型上,作为一个特征。共选取了6个特 default: 征用于分类,如表1所示。 handleDefault();break; 表1用于分类的特征向量 Table 1 Features used in classification 短语或词 包含测试特征 词或词性特征 QP 连词,序数词 量词,左边名词,左边动词,右边名词,右边动词 PP 地址,时间,数词,连词 量词,首词,末尾词或其词性,左边动词或名词,右边动词或形容词 LCP 地址,时间,数词,连词 量词,末尾词,最后一个名词,左边动词或名词,右边动词 NP 地址,时间连词 名词1,名词2,左边动词,右边名词,右边动词 ADJP 无 形容词刀,左边动词,右边名词,其余置为空 ADVP 无 副词AD,左边名词,右边动词或形容词,其余置为空 VA 无 形容词VA,左边名词,右边名词,其余置为空 NN 无 名词NN,左边动词,右边动词或形容词,其余置为空 V 无 动词VV,左边动词,右边动词,其余置为空
DNP、DVP 需要处理其内部节点;FRAG 是不能构建 完整结构的片段元素,也需要处理其内部节点;主要 处理的类型包括 PP、QP、NP、LCP、ADJP、ADVP 6 种短语。 6 种主要短语中,最复杂的是 NP。 NP 分为简单 名词短语和复合名词短语。 简单名词短语由单个普 通名词 NN、专有 NR、时间名词 NT 构成;复和名词 短语的情况主要包括 5 种情况,QP⁃NN 复合(例如 “一个月”)、NN⁃NN 复合(例如“个人房源”)、NN⁃ CC⁃NN 复合(例如“空调和洗衣机”)、多个时间名词 复合(例如“3 月 29 日”),以及 NR 与若干个 NN 复 合(例如“北京海淀区附近”)。 根据上述分析,采用自底向上的搜索方法来获 取短语序列,实现伪代码如下所示: getPhraseList(Tree root,List<String> phList) { root = pruneTree(root);leaves = root.leaves; while(! leaves.isEmpty()) { curLeave, tNode = leaves[0], null p2 = curLeave.ancestor(2, root); switch( p2 .label) { case "QP" : tNode = handleQP(root, p2 ,phList);break; case "NP" : tNode = handleNP(root, p2 , phList);break; case " LCP" : tNode = handleLCP(root, p2 , phList);break; case "ADJP" ," PP" ,"ADVP" : phList.add(chToStr( p2 .label, p2 ); tNode = p2 ;break; default: handleDefault();break; } if(tNode! = null) leaves.remove(tNode.getLeaves()); else leaves.remove(curLeave); 其中 pruneTree 完成语法树的剪枝工作,移除 SP、PN、PU 等标记的节点,移除一些常见动词(例如 “想”),副词 AD 和形容词 JJ 仅保留词典中存在的 词;ancestor 为从当前节点向上获取父节点,参数为 向上查找层数。 handelDefault 处理的是默认情况, 默认情况下仅处理包括动词 VV,形容词 VA,名词 NN 这些单词。 对于这类词,不使用包含它们的父 节点类型标记它们,而是直接使用它的词性作为标 记,将他们作为其他短语的上下文环境保留起来,以 便于后续的分类工作。 handleQP、 handleNP、 han⁃ dleLCP3 个函数分别处理 QP、NP、LCP 短语。 给定 例句: 例 6 一个人想在郑州中央商务区附近租个 350 块左右单间。 得到短语序列: [ QP:一个/ CD, NN:人/ NN, PP: 在/ P 郑州/ NR 中央/ NN 商务区/ NN, VV:租/ VV, QP:个/ M, LCP:350 / CD 块/ M 左右/ LC, NN:单间/ NN]。 2.3 分类 使用分类算法的关键是找到有效的特征向量。 本文选取的特征包括:短语类型,包含测试特征,以 及词或者词性特征。 包含测试特征是对短语是否包 含某类词,进行测试而得到的整型值。 不同短语测 试后的特征个数也不统一,因此把包含测试特征附 加到短语类型上,作为一个特征。 共选取了 6 个特 征用于分类,如表 1 所示。 表 1 用于分类的特征向量 Table 1 Features used in classification 短语或词 包含测试特征 词或词性特征 QP 连词,序数词 量词,左边名词,左边动词,右边名词,右边动词 PP 地址,时间,数词,连词 量词,首词,末尾词或其词性,左边动词或名词,右边动词或形容词 LCP 地址,时间,数词,连词 量词,末尾词,最后一个名词,左边动词或名词,右边动词 NP 地址,时间,连词 名词 1,名词 2,左边动词,右边名词,右边动词 ADJP 无 形容词 JJ,左边动词,右边名词,其余置为空 ADVP 无 副词 AD,左边名词,右边动词或形容词,其余置为空 VA 无 形容词 VA,左边名词,右边名词,其余置为空 NN 无 名词 NN,左边动词,右边动词或形容词,其余置为空 VV 无 动词 VV,左边动词,右边动词,其余置为空 ·868· 智 能 系 统 学 报 第 10 卷
第6期 王定桥,等:从用户需求语句建立问题可拓模型的研究 ·869- 包含测试特征中,连词是指标记为CC的单词, 用中这种情形出现的概率很小。 序数词是标记为OD的单词,时间是指标记为NT的 2)同类合并和歧义消解 单词,数词是指CD或者OD的单词。包含地址测试 对于集合类型的量值,需要对量值进行归并:对 需要借助分词系统完成,使用单词的词性测试其是 于单一类型的量值,需要根据量值特点,进行歧义消 解。例如用户首先提供了一个范围比较大的地址, 否属于地址类词性。 接着又补充了一个小范围地址,可以使用大地址后 需要注意,某些单个NN(例如“单间”)、VA(例如 加上小地址的方式,准确定位地址。 “便宜”)、VV(例如“合租”)本身就能表达一个量值, 3)量值标准化 用户很可能单独使用它们来表达需求,因此,需要将 同一属性的不同量值需要转换为单位统一的量 这类词记录在词典中。在遇到这类词时,将其添加到 值,以便于处理。例如租房问题中用户提供租期属 分类任务中,这类单词的特征列在表1的末尾3行。 性的量值,可能是“半个月”,“半年”,“一个星期”等 PP短语中,如果末尾词是普通名词则使用单词 可以统一调整到以月为单位的数量值。 经过这一阶段的处理,得到了最终的属性字典。 本身,否则使用其词性。包含单个NN的NP,将以 例6最终得到属性字典如下: NN标记独立处理。对于其他NP,如果包含地址或 {区域:郑州中央商务区,租金:[0,350],样式: 日期,名词1和名词2置为空。对于不包含地址或 单间,住户人数:1,租房数量:1} 日期的复合名词短语,需要特别处理。2.2节中提到2.5模型填充 的NN-NN和NN-CC-NN类短语,将其2个NN作为 这一阶段,使用上一阶段获取的属性字典,并结 名词1和名词2填充:NR与若千NN复合的情形, 合数据库技术,建立可拓模型。首先将属性字典中 将NR与NN连成一个词,作为名词1填充,名词2 各个属性和量值填充到目标或者条件基元中去。对 置为空。 于目标或者条件基元中缺少的部分,则需要根据领 域本体,借助数据库或者人机交互来补充。 在有监督的分类器训练的过程中,根据问题和 经过上述流程的5个阶段,最终从用户语句建 关注的属性,使用不同的标签。与问题无关的短语 立了可拓模型。 或词,统一标记为无关类,在后期过滤掉这些内容。 使用训练后得到的分类器,对短语序列分类,并合并 3实现案例 相邻的同类标签,得到最终分类后的短语序列。 3.1案例介绍 2.4量值提取 文献[3]给出了一个租房问题,下面以此问题为 对分类后的短语,针对每一类别,建立一系列匹 背景来展开实验。实际语料中用户表达的属性通常 都有多个,本文一共关注了16个属性,表2给出了 配规则来抽取量值。匹配时间和数字类表达式的规 部分属性的示例。 则比较通用:对于名词、动词、形容词等可以根据分 表2租房问题中用户表达的属性示例 类结果,借助词典来更准确地确定边界。 Table 2 User expressed attributes in tenement question 例如租房问题中,匹配区域的规则,用正则表达 属性 量值类型 量值单位 量值示例 式书写并按照优先级列出如下: 区域 字符串 无 番禺大学城 ule1:(在?)(.*)(附近) 租金 整数 公 800块 ule2:(在I靠近)?(.*)(租) 面积 整数 平方米 80平米 ule3:(离I靠1距)(.*)(近) 样式 字符串 厅,室 两室一厅 ule4:(在?)(.*)(环) mle5:(在?)(地铁I公交)(.*)(线I路) 楼层 整数 楼,层 10楼 ule6:拼接词性表示地点的单词 房源 字符串 无 个人 除了匹配外,还需进行3项工作: 一般地,上述多个属性,可以根据实际应用情 1)理解优先级、逻辑关系 况,为每个属性分配不同的权重用于指导可拓策略 在短语对应的原文中获取表达这类信息的关键 的生成和评价过程。 词,通过有限状态机,即可获取用户真正要表达的量 在实验过程中使用的资源包括: 值。这种方法仅在用户将关键词混在多个量值之 1)语料资源,在百度和好搜两大网络平台,使用 间,并且不加任何分隔符的情形下失效。在实际应 爬虫程序抓取到与租房问题相关的语句:
包含测试特征中,连词是指标记为 CC 的单词, 序数词是标记为 OD 的单词,时间是指标记为 NT 的 单词,数词是指 CD 或者 OD 的单词。 包含地址测试 需要借助分词系统完成,使用单词的词性测试其是 否属于地址类词性。 需要注意,某些单个 NN(例如“单间”)、VA(例如 “便宜”)、VV(例如“合租”)本身就能表达一个量值, 用户很可能单独使用它们来表达需求,因此,需要将 这类词记录在词典中。 在遇到这类词时,将其添加到 分类任务中,这类单词的特征列在表 1 的末尾 3 行。 PP 短语中,如果末尾词是普通名词则使用单词 本身,否则使用其词性。 包含单个 NN 的 NP,将以 NN 标记独立处理。 对于其他 NP,如果包含地址或 日期,名词 1 和名词 2 置为空。 对于不包含地址或 日期的复合名词短语,需要特别处理。 2.2 节中提到 的 NN⁃NN 和 NN⁃CC⁃NN 类短语,将其 2 个 NN 作为 名词 1 和名词 2 填充;NR 与若干 NN 复合的情形, 将 NR 与 NN 连成一个词,作为名词 1 填充,名词 2 置为空。 在有监督的分类器训练的过程中,根据问题和 关注的属性,使用不同的标签。 与问题无关的短语 或词,统一标记为无关类,在后期过滤掉这些内容。 使用训练后得到的分类器,对短语序列分类,并合并 相邻的同类标签,得到最终分类后的短语序列。 2.4 量值提取 对分类后的短语,针对每一类别,建立一系列匹 配规则来抽取量值。 匹配时间和数字类表达式的规 则比较通用;对于名词、动词、形容词等可以根据分 类结果,借助词典来更准确地确定边界。 例如租房问题中,匹配区域的规则,用正则表达 式书写并按照优先级列出如下: rule 1: (在?)(.∗)(附近) rule 2: (在|靠近)? (.∗)(租) rule 3: (离|靠|距)(.∗)(近) rule 4: (在?)(.∗)(环) rule 5: (在?)(地铁|公交)(.∗)(线|路) rule 6: 拼接词性表示地点的单词 除了匹配外,还需进行 3 项工作: 1)理解优先级、逻辑关系 在短语对应的原文中获取表达这类信息的关键 词,通过有限状态机,即可获取用户真正要表达的量 值。 这种方法仅在用户将关键词混在多个量值之 间,并且不加任何分隔符的情形下失效。 在实际应 用中这种情形出现的概率很小。 2)同类合并和歧义消解 对于集合类型的量值,需要对量值进行归并;对 于单一类型的量值,需要根据量值特点,进行歧义消 解。 例如用户首先提供了一个范围比较大的地址, 接着又补充了一个小范围地址,可以使用大地址后 加上小地址的方式,准确定位地址。 3)量值标准化 同一属性的不同量值需要转换为单位统一的量 值,以便于处理。 例如租房问题中用户提供租期属 性的量值,可能是“半个月”,“半年”,“一个星期”等 可以统一调整到以月为单位的数量值。 经过这一阶段的处理,得到了最终的属性字典。 例 6 最终得到属性字典如下: {区域:郑州中央商务区, 租金:[0,350], 样式: 单间, 住户人数:1, 租房数量:1} 2.5 模型填充 这一阶段,使用上一阶段获取的属性字典,并结 合数据库技术,建立可拓模型。 首先将属性字典中 各个属性和量值填充到目标或者条件基元中去。 对 于目标或者条件基元中缺少的部分,则需要根据领 域本体,借助数据库或者人机交互来补充。 经过上述流程的 5 个阶段,最终从用户语句建 立了可拓模型。 3 实现案例 3.1 案例介绍 文献[3]给出了一个租房问题,下面以此问题为 背景来展开实验。 实际语料中用户表达的属性通常 都有多个,本文一共关注了 16 个属性,表 2 给出了 部分属性的示例。 表 2 租房问题中用户表达的属性示例 Table 2 User expressed attributes in tenement question 属性 量值类型 量值单位 量值示例 区域 字符串 无 番禺大学城 租金 整数 元 800 块 面积 整数 平方米 80 平米 样式 字符串 厅,室 两室一厅 楼层 整数 楼,层 10 楼 房源 字符串 无 个人 一般地,上述多个属性,可以根据实际应用情 况,为每个属性分配不同的权重用于指导可拓策略 的生成和评价过程。 在实验过程中使用的资源包括: 1)语料资源,在百度和好搜两大网络平台,使用 爬虫程序抓取到与租房问题相关的语句; 第 6 期 王定桥,等: 从用户需求语句建立问题可拓模型的研究 ·869·