具体实施方式
下面结合附图和实施例对本发明进行详细说明。
首先请参见图1,图1是根据本发明第一实施例的搜索系统的结构示意图。如图1所示,在本实施例中,本发明的搜索系统包括用户接口模块201、目标数据库202、专业词库203、反馈模块204、分词模块205、查询模块206、索引模块207以及排序模块208。
并请参见图2,图2是根据本发明第一实施例的搜索方法的流程图。如图2所示,本发明的搜索方法包括如下步骤:
步骤301:获取用户在用户接口模块201输入的第一语句以及用户在用户接口模块201中选择的第一技术领域。
本步骤可由反馈模块204执行,具体而言,用户接口模块201可优选为浏览器,通过向浏览器推送相关的网页,从而供用户在网页的输入框上输入对应的第一语句,或在网页上显示技术领域选择菜单,如第一技术领域、第二技术领域、以及第三技术领域(具体可为太阳能技术领域、物联网技术领域以及汽车技术领域),用户通过浏览器输入第一语句并选取对应的第一技术领域,浏览器将相关信息通过网络协议发送至反馈模块204204,从而获取用户在用户接口模块201输入的第一语句以及用户在用户接口模块201中选择的第一技术领域。
举例而言,目标数据库202可为专利数据库,其存储有海量的专利文档;而第一语句可例如为“我公司拟开发一种太阳能薄膜电池组件,主要解决透光太阳能薄膜电池组件容易短路的问题,进而提升透光太阳能薄膜电池组件的输出电性能”,而用户在用户接口模块201选择了“太阳能技术领域”。
并且,专业词库203可由开发者根据各个技术领域的常用关键词在本搜索系统的后台定义,如可定义太阳能技术领域所对应的第一专业词库203为:
太阳能,薄膜,电池,电池组件,透光,短路,充电,辐射,发电,光电转换,集热器,光伏,光伏矩阵,发电板阵,二极管,逆变器,晶体状,无序结构,收集器。
步骤302:对第一语句进行分词处理,以获取第一分词结果,并根据第一技术领域选取对应的第一专业词库203,其中第一分词结果包括多个第一词汇以及对应词频。
本步骤可由分词模块205执行,具体而言,本发明所采用的分词处理技术可使用现有的各种分词方法实现,本发明对其不作具体限定,分词模块205的作用在于将用户输入的语句转换成一个个词汇。由于汉字的词之间没有分隔符,而用户输入的又是一整段的文字,中间肯定不会有空格分隔,所以必须要对用户输入的第一语句进行分词操作。经过这一步之后,用户输入的语句就会变成语句中的词以及其在语句中出现的次数(即词频)的集合,然后将这些词以及频率交给查询模块206进行进一步的分析。
对于中文的分词,可以采用中科院的分词系统ICTCLAS(http://ictclas.org/)进行。这个分词系统可以说是目前中文分词方面准确率最高,效率最好的一个分词系统。同时该系统是用c(dll格式)编写的,可以很方便的在其他高级语言中调用。
而在本实施例中,分词模块205产生的第一分词结果具体为:
{我,公司,拟,开发,一,种,太阳能 3,薄膜 3,电池组件 3,主要,解决,透光 2,容易,短路,的 2,问题,进而,提升,输出,电,性能}
步骤303:根据第一分词结果、第一专业词库203以及目标数据库202分别对第一词汇进行评分,以获取第一目标词汇以及与第一目标词汇对应的第一相关度权重值。
在该步骤中,承上所述,第一分词结果为:
{我,公司,拟,开发,一,种,太阳能 3,薄膜 3,电池组件 3,主要,解决,透光 2,容易,短路,的 2,问题,进而,提升,输出,电,性能}
第一专业词库203为:太阳能,薄膜,电池,电池组件,透光,短路,充电,辐射,发电,光电转换,集热器,光伏,光伏矩阵,发电板阵,二极管,逆变器,晶体状,无序结构,收集器。
而目标数据库202则为包括多个专利文档的海量数据库。
因此,在本步骤中,根据以下等式获取第一词汇的第一相关度权重值:
其中,为多个第一词汇中的一者,为对应的第一相关度权重值,为在语句中出现的词频,为在目标数据库202中包含的文档的个数,为目标数据库202中的文档数量,为在第一专业词库203的加权值;
根据公式(1),在目标数据库202中,包含第一词汇的文档数的所有文档中的比例为(),结果近似为{我=10.07, 公司=8.61, 拟=8.25, 开发=6.82, 一=1.46, 种=1.52, 太阳能=6.09, 薄膜=5.71, 电池组件=9.02, 主要=3.84, 解决=4.17, 透光=6.89, 容易=4.76, 短路=7.13, 的=1.26, 问题=4.29, 进而=5.93, 提升=5.92, 输出=4.06, 电=4.37, 性能=4.27 }。
将以上向量与(在语句中出现的词频)即可获取第一词汇的第一相关度权重值,其结果为:
{电池组件=27.05, 太阳能=18.27, 薄膜=17.13, 透光=13.78, 我=10.07, 公司=8.61, 拟=8.25, 短路=7.13, 开发=6.82, 进而=5.93, 提升=5.92, 容易=4.76, 电=4.37, 问题=4.29, 性能=4.27, 解决=4.17, 输出=4.06, 主要=3.84, 的=2.52, 种=1.52, 一=1.46}
可见,薄膜,太阳能,电池组件,透光这几个词的重要性远高于其他词,
进一步地,而在第一专业词库203中,包含太阳能,薄膜,电池组件,透光,短路,这几个词。则这几个词的权重都要在之前得到的结果上乘以2,即将上述结果与(在第一专业词库203的加权值,于此取为2)相乘,最终结果如下:
{一=1.46, 种=1.52, 的=2.52, 主要=3.84, 输出=4.06, 解决=4.17, 性能=4.27, 问题=4.29, 电=4.37, 容易=4.76, 提升=5.92, 进而=5.93, 开发=6.82, 拟=8.25, 公司=8.61, 我=10.07, 短路=14.25, 透光=27.56, 薄膜=34.26, 太阳能=36.55, 电池组件=54.10}
可以看到,在词“短路”之前的词都没在第一专业词库203中出现,因此,可选取第一相关度权重值大于预定阈值的词汇作为第一目标词汇。在本实施例中,设定预定阈值为12.45。第一相关度权重值小于该预定阈值的词在索引装置中将被过滤,最后生成的第一目标词汇以及其对应的第一相关度权重值为:{短路=14.25, 透光=27.56, 薄膜=34.26, 太阳能=36.55, 电池组件=54.10}。
步骤304:在目标数据库202中查找包括第一目标词汇的第一文档集合,并根据第一目标词汇以及与其对应的第一相关度权重值对第一文档集合中的每一文档进行评分,以获取第一文档集合中每一文档基于第一目标词汇的第二相关度权重值,并根据第二相关度权重值从大到小对第一文档集合进行排序以产生第一文档列表。
该步骤由索引模块207执行,具体地,索引模块207根据第一目标词汇以及其对应的第一相关度权重值{短路=14.25, 透光=27.56, 薄膜=34.26, 太阳能=36.55, 电池组件=54.10}在目标数据库202中查找包括第一目标词汇的第一文档集合,根据这个查询条件,索引模块207返回的结果共103091项文档,其中该103091项文档即为第一文档集合。
根据第一目标词汇以及与其对应的第一相关度权重值对第一文档集合中的每一文档进行评分,其中,该评分方法具体如下:
其中,为第一文档集合中的文档,为第一目标词汇, 为对应的第二相关度权重值,为的反文档频率,为中出现的次数,为的词长度,为的第一相关度权重值。
按照从大到小排列第一文档集合中的每个文档即可形成第一文档列表。
步骤305:选取第一文档列表中排名靠前的预定数目个文档,并根据第一目标词汇出现的次数对预定数目个文档进行评分,以获取预定数目个文档基于第一目标词汇出现的次数的第三相关度权重值,并根据第三相关度权重值从大到小对预定数目个文档进行排序以产生第二文档列表。
本步骤由排序模块208执行,于此定义预定数目为400,根据以下等式获取所述第三相关度权重值:
其中,为的第三相关度权重值,为对应的第二相关度权重值,为的tf-idf向量,为中包含的词的个数。
在本步骤中,对索引模块207返回的第一文档列表进行进一步排序。由于索引模块207的排序结果只考虑查询模块206产生的第一目标词汇,同时索引模块207的排序对包含多个第一目标词汇的文档不做加权处理(比如搜索“太阳能 照明”,那么包含一个太阳能和一个照明的文档的重要性通常应该远大于包含10个太阳能的文档),直接返回索引模块207的结果往往是不准确的。所以要对索引模块207返回的结果进行重新排序。考虑到效率问题,可以只对前400个文档进行重新排序。
最终耗时0.4秒,前十项为:(去除标题完全相同的类似结果)
CN200920154558.X: 透光太阳能薄膜电池组件
搜索得分: 18.78, Cosine:0.68, 5个搜索词中有5个在描述中出现 最终得分: 12.79
CN200920154557.5: 透光太阳能薄膜电池组件
搜索得分: 18.51, Cosine:0.63, 5个搜索词中有5个在描述中出现 最终得分: 11.60
CN200920154556.0: 透光太阳能薄膜电池组件
搜索得分: 15.87, Cosine:0.60, 5个搜索词中有4个在描述中出现 最终得分: 7.61
CN200810129566.9: 薄膜太阳能电池组件及其封装方法
搜索得分: 16.66, Cosine:0.52, 5个搜索词中有4个在描述中出现 最终得分: 6.91
CN201010221628.6: 一种透光型薄膜太阳能电池组件的制作方法
搜索得分: 20.60, Cosine:0.41, 5个搜索词中有4个在描述中出现 最终得分: 6.76
CN200810128991.6: 薄膜太阳能电池组件及其封装方法
搜索得分: 15.16, Cosine:0.61, 5个搜索词中有3个在描述中出现 最终得分: 5.55
CN201030100636.6: 快速接线盒(薄膜太阳能电池组件)
搜索得分: 16.90, Cosine:0.49, 5个搜索词中有3个在描述中出现 最终得分: 5.01
CN200680000810.0: 太阳能电池组件和太阳能电池组件的制造方法
搜索得分: 13.03, Cosine:0.54, 5个搜索词中有3个在描述中出现 最终得分: 4.18
CN200710113564.6: 用于建筑的非晶硅薄膜太阳能电池组件及其加工方法
搜索得分: 13.77, Cosine:0.47, 5个搜索词中有3个在描述中出现 最终得分: 3.90
CN200920134421.8: 一种具有薄膜太阳能电池的电子产品壳体
搜索得分: 7.98, Cosine:0.61, 5个搜索词中有4个在描述中出现 最终得分: 3.87而使用传统的查询方法,返回的结果共3989351项,耗时2.4秒,前十项为:
CN201010221628.6: 一种透光型薄膜太阳能电池组件的制作方法
CN200920154558.X: 透光太阳能薄膜电池组件
CN200920154557.5: 透光太阳能薄膜电池组件
CN200920154556.0: 透光太阳能薄膜电池组件
CN200710113564.6: 用于建筑的非晶硅薄膜太阳能电池组件及其加工方法
CN200810129566.9: 薄膜太阳能电池组件及其封装方法
CN201030100636.6: 快速接线盒(薄膜太阳能电池组件)
CN200810128991.6: 薄膜太阳能电池组件及其封装方法
CN201010301255.3: 一种薄膜太阳能透光组件的制造方法
CN00124098.6: 生产薄膜单晶器件的方法、太阳能电池组件和其生产方法
可以很明显的看出,前者不仅过滤了大量的无关结果,提高搜索效率,同时返回的结果以及排序结果也更符合用户的需求。
步骤306:将第二文档列表推送至用户接口模块201并显示。其中,本步骤由反馈模块204执行。
以上的模块可由编程实现,如具体可采用C/C++、Java、Python或Ruby等各种编程语言结合SQL、access等各种现有的数据库实现。本发明对此不作赘述。
因此,在本实施例中,提供了一种搜索方法及搜索系统,通过将用户输入的语句进行分词,并设置专业词库203对分词结果进行评分,从而获取目标词汇以及对应的第一相关度权重值,并在目标数据库202中查找包括目标词汇的文档进行第二次评分并排序以获取第一文档列表,通过对第一文档列表中相关度较高的预定数目个文档进行基于目标词汇出现次数的评分并排序以产生第二文档列表并显示,从而可使得用户可获取与输入的语句相关度很高的文档,可有效提供搜索的准确度。
在本发明的第一实施例中,主要针对用户没有注册直接登录的情况,但,考虑到用户群体的不断增大,为了方便维护,并记录下用户的信息,因此需要在本发明搜索系统中设置注册登录机制,用户可选择注册帐号,通过帐号来登录本搜索系统。而在用户通过帐号登录本搜索系统时,本发明进一步设置有相关的用户信息记录机制,从而进一步根据用户的习惯来进行更为精确的文档查找。以下的第二和第三实施例在第一实施例的基础上将详细揭示用户采用帐号进行登录后本搜索系统的工作方式。
请参见图3,图3是根据本发明第二实施例的搜索系统的结构示意图。如图3所示,本发明的第二实施例在前述的第一实施例的基础上进一步设置有常用词库209,其中,用户词库210是由分词模块205产生,其利用分词模块205通过保存第一分词结果而产生用户词库210,并且在产生用户词库210后,每当分词模块205产生新的分词结果时,均可并入到用户词库210中;常用词库209是由查询模块206产生,其利用查询模块206通过保存第一目标词汇以产生常用词库209,且在产生常用词库209后,每当查询模块206针对不同的分词结果产生不同的目标词汇时,均可并入常用词库209中,从而记录到该用户的常用词库209。
并请参见图4,图4是根据本发明第二实施例的搜索方法的流程图。如图4所示,假设常用词库209包括:
太阳能,薄膜,发电,光伏,二极管(其他词未在第三语句中出现)
本发明第二实施例的搜索方法包括如下步骤:
步骤401:获取用户在用户接口模块201输入的第二语句以及用户在用户接口模块201中选择的第二技术领域。在本实施例中,为了进一步体现增设常用词库209的效果,并简化说明,于此假设用户输入的第二语句与第一语句相同,选择的第二专业词库203与第一专业词库203相同(实际应用中可为不同)。
步骤402:对第二语句进行分词处理,以获取第二分词结果并保存至用户词库210,根据第二技术领域选取对应的第二专业词库203,其中第二分词结果包括多个第二词汇以及对应词频。由于假设用户输入的第二语句与第一语句相同,选择的第二专业词库203与第一专业词库203相同,因此这里的第二分词结果与第一分词结果完全一致。
步骤403:根据第二分词结果、第二专业词库203、目标数据库202以及常用词库209分别对第二词汇进行评分,以获取第二目标词汇以及基于第二目标词汇的第四相关度权重值,并将第二目标词汇保存至常用词库209。
具体地,根据以下等式获取第四相关度权重值:
其中,为多个第二词汇中的一者,为对应的第四相关度权重值,为在语句中出现的词频,为在目标数据库202中,包含的文档的个数,为目标数据库202中文档的个数,为在第二专业词库203的加权值,为在常用词库209的加权值;
选取第四相关权重值大于预定阈值的词汇作为目标词汇。
查询模块206获取的第四相关权重值为:
{一=1.46, 种=1.52, 的=2.52, 主要=3.84, 输出=4.06, 解决=4.17, 性能=4.27, 问题=4.29, 电=4.37, 容易=4.76, 提升=5.92, 进而=5.93, 开发=6.82, 拟=8.25, 公司=8.61, 我=10.07, 短路=14.25, 透光=27.56, 电池组件=54.10, 薄膜=112.98, 太阳能=120.51}
步骤404:在目标数据库202中查找包括第二目标词汇的第二文档集合,并根据第二目标词汇以及第四相关度权重值对第二文档集合中的每一文档进行评分,以获取第二文档集合中每一文档基于第二目标词汇的第五相关度权重值,并根据第五相关度权重值从大到小对第二文档集合进行排序以产生第三文档列表。
根据以下等式获取第五相关度权重值:
其中,为第二文档集合中的文档,为目标词汇, 为对应的第五相关度权重值,为的反文档频率,为中出现的次数,为的词长度。
步骤405:选取第三文档列表中排名靠前的预定数目个文档,并根据第二目标词汇出现的次数对预定数目个文档进行评分,以获取预定数目个文档基于第二目标词汇出现的次数的第六相关度权重值,并根据第二相关度权重值从大到小对预定数目个文档进行排序以产生第四文档列表。
根据以下等式获取第六相关度权重值:
其中,为的第六相关度权重值,为对应的第五相关度权重值,为的tf-idf向量,为中包含的词的个数。
最终的排序结果为:
CN200920154558.X: 透光太阳能薄膜电池组件
搜索得分: 21.05, Cosine:0.55, 5个搜索词中有5个在描述中出现 最终得分: 11.49
CN200920154557.5: 透光太阳能薄膜电池组件
搜索得分: 20.90, Cosine:0.51, 5个搜索词中有5个在描述中出现 最终得分: 10.67
CN200810129566.9: 薄膜太阳能电池组件及其封装方法
搜索得分: 17.18, Cosine:0.57, 5个搜索词中有4个在描述中出现 最终得分: 7.82
CN200920154556.0: 透光太阳能薄膜电池组件
搜索得分: 18.01, Cosine:0.49, 5个搜索词中有4个在描述中出现 最终得分: 7.06
CN201010221628.6: 一种透光型薄膜太阳能电池组件的制作方法
搜索得分: 18.97, Cosine:0.38, 5个搜索词中有4个在描述中出现 最终得分: 5.82
CN200920134421.8: 一种具有薄膜太阳能电池的电子产品壳体
搜索得分: 11.02, Cosine:0.66, 5个搜索词中有4个在描述中出现 最终得分: 5.79
CN200810128991.6: 薄膜太阳能电池组件及其封装方法
搜索得分: 15.50, Cosine:0.61, 5个搜索词中有3个在描述中出现 最终得分: 5.70
CN201030100636.6: 快速接线盒(薄膜太阳能电池组件)
搜索得分: 17.31, Cosine:0.50, 5个搜索词中有3个在描述中出现 最终得分: 5.23
CN200710008129.7: 透光型薄膜太阳能电池模块及其制造方法
搜索得分: 13.75, Cosine:0.45, 5个搜索词中有4个在描述中出现 最终得分: 4.99
CN200810004995.3: 透光型薄膜太阳能电池模块及其制造方法
搜索得分: 13.75, Cosine:0.45, 5个搜索词中有4个在描述中出现 最终得分: 4.90
步骤406:将第四文档列表推送至用户接口模块201并显示。
请参见图5,图5是根据本发明第三实施例的搜索系统的结构示意图。如图5所示,本发明的第三实施例进一步在第二实施例的基础上增设有用户词库210。
并请参见图6,图6是根据本发明第三实施例的搜索方法的流程图。如图6所示,假设常用词库209包括:
太阳能,薄膜,发电,光伏,二极管(其他词未在第三语句中出现)
假设用户词库210包括:
电池组件,电池,性能(其他词未在第三语句中出现)
本发明第三实施例的搜索方法包括如下步骤:
步骤501:获取用户在用户接口模块201输入的第三语句以及用户在用户接口模块201中选择的第三技术领域。在本实施例中,为了进一步体现增设常用词库209和用户词库210的效果,并简化说明,于此假设用户输入的第三语句与第三语句相同,选择的第三专业词库203与第一专业词库203相同(实际应用中可为不同)。
步骤502:对第三语句进行分词处理,以获取第三分词结果并保存至用户词库210,根据第三技术领域选取对应的第三专业词库203,其中第三分词结果包括多个第三词汇以及对应词频。
步骤503:根据第三分词结果、第三专业词库203、目标数据库202、常用词库209以及用户词库210分别对每一第三词汇进行评分,以获取第三目标词汇以及基于第三目标词汇的第七相关度权重值,并将第三目标词汇保存至常用词库209。 具体地,根据以下等式获取第七相关度权重值:
其中,为多个词汇中的一者,为对应的第七相关度权重值,为在语句中出现的词频,为在目标数据库202中,包含的文档的个数,为目标数据库202中文档的个数,为在专业词库203的加权值,为在常用词库209的加权值,为在用户词库210的加权值;
选取第七相关权重值大于预定阈值的词汇作为目标词汇。
步骤504:在目标数据库202中查找包括第三目标词汇的第三文档集合,并根据第三目标词汇以及第七相关度权重值对第三文档集合中的每一文档进行评分,以获取第三文档集合中每一文档基于第三目标词汇的第八相关度权重值,并根据第七相关度权重值从大到小对第三文档集合进行排序以产生第五文档列表。
具体地,根据以下等式获取第八相关度权重值:
其中,为第三文档集合的文档,为目标词汇, 为对应的第八相关度权重值,为的反文档频率,为中出现的次数,为的词长度。
步骤505:选取第五文档列表中排名靠前的预定数目个文档,并根据第三目标词汇出现的次数对预定数目个文档进行评分,以获取预定数目个文档基于第三目标词汇出现的次数的第九相关度权重值,并根据第八相关度权重值从大到小对预定数目个文档进行排序以产生第六文档列表。
具体地,根据以下等式获取第九相关度权重值:
其中,为的第九相关度权重值,为对应的第二相关度权重值,为的tf-idf向量,为中包含的词的个数。
可以看到,原先不在第三语句中的词“性能”将会被纳入考虑,最终结果为:
CN200810128991.6: 薄膜太阳能电池组件及其封装方法
搜索得分: 14.65, Cosine:0.63, 6个搜索词中有4个在描述中出现 最终得分: 6.11
CN200810129566.9: 薄膜太阳能电池组件及其封装方法
搜索得分: 15.36, Cosine:0.47, 6个搜索词中有5个在描述中出现 最终得分: 6.04
CN200920154558.X: 透光太阳能薄膜电池组件
搜索得分: 9.57, Cosine:0.51, 6个搜索词中有6个在描述中出现 最终得分: 4.90
CN200920154557.5: 透光太阳能薄膜电池组件
搜索得分: 9.21, Cosine:0.43, 6个搜索词中有6个在描述中出现 最终得分: 4.00
CN200780018672.3: 太阳能电池组件用背面保护薄片
搜索得分: 11.00, Cosine:0.53, 6个搜索词中有4个在描述中出现 最终得分: 3.85
CN201030100636.6: 快速接线盒(薄膜太阳能电池组件)
搜索得分: 13.94, Cosine:0.50, 6个搜索词中有3个在描述中出现 最终得分: 3.47
CN201010221628.6: 一种透光型薄膜太阳能电池组件的制作方法
搜索得分: 13.78, Cosine:0.34, 6个搜索词中有4个在描述中出现 最终得分: 3.10
CN200680000810.0: 太阳能电池组件和太阳能电池组件的制造方法
搜索得分: 11.47, Cosine:0.52, 6个搜索词中有3个在描述中出现 最终得分: 3.00
CN200920154556.0: 透光太阳能薄膜电池组件
搜索得分: 8.10, Cosine:0.44, 6个搜索词中有5个在描述中出现 最终得分: 2.94
CN201020162574.6: 太阳能电池组件面板变形量检测装置
搜索得分: 9.76, Cosine:0.57, 6个搜索词中有3个在描述中出现 最终得分: 2.78
最明显的变化是,CN200920154556.0由之前的第三位降到第八位,原因在于该专利未涉及到太阳能电池性能方面的提升。而前两个专利之所以提示则是因为电池组件权重太高,索引装置对这两个专利的打分较高。
步骤506:将第六文档列表推送至用户接口模块201并显示。
由以上技术方案可以看出,本发明提供的搜索方法及搜索系统通过将用户输入的语句进行分词,并设置专业词库203对分词结果进行评分,从而获取目标词汇以及对应的第一相关度权重值,并在目标数据库202中查找包括目标词汇的文档进行第二次评分并排序以获取第一文档列表,通过对第一文档列表中相关度较高的预定数目个文档进行基于目标词汇出现次数的评分并排序以产生第二文档列表并显示,从而可使得用户可获取与输入的语句相关度很高的文档,可有效提供搜索的准确度。
在上述实施例中,仅对本发明进行了示范性描述,但是本领域技术人员在阅读本专利申请后可以在不脱离本发明的精神和范围的情况下对本发明进行各种修改。