语言资源由分词器和词干分析器组成,用于将索引生成和查询功能扩展到新的语言和地域。 断字符在创建索引和查询期间都使用。 词干分析器仅用于查询。 Windows 搜索使用语言资源 DLL 来绑定到特定语言区域的 IWordBreaker 和 IStemmer 实现。
本主题按如下所示进行组织:
关于语言资源
Windows 搜索使用筛选器(IFilter 接口的实现)和 ILoadFilter 以原始格式访问文档。 IFilter 组件从文档中提取文本内容、属性和格式。 IFilter 确定它正在筛选的文档的区域设置。 索引组件为该区域语言环境调用相应的分词器。 如果没有可用的选项,索引组件将调用中性断字符。 分词器从 IFilter 接收 Unicode 字符的输入流,分词器对字符流进行解析,用来生成单独的词语和短语。 分词器还规范化日期和时间格式。 索引器将断字符生成的单词转化为所有大写字母,从而对这些单词进行标准化处理。 索引器将大写单词保存到全文索引中,但识别出的区域特定的噪声词除外。
下表列出了句子“图 1 说明了在索引创建过程中 Windows 搜索中语言资源的角色”的动作及其对应结果。
| Action | 生成的文本 |
|---|---|
| 原文 | 图 1 说明了在索引创建过程中 Windows 搜索的语言资源的角色。 |
| Filtering | 图 1 说明了在索引创建过程中 Windows 搜索的语言资源的角色。 |
| 断字 | 图1说明语言资源在创建索引过程期间针对Windows搜索的作用EOS |
| 标准化 | 图 1 说明了在索引创建过程中语言资源和Windows搜索的作用。 |
| 干扰词删除 | 图, 说明, 角色, 语言, 资源, WINDOWS, 搜索, 期间, 索引, 创建, 过程 |
| 保存到全文索引 | 图, 说明, 角色, 语言, 资源, WINDOWS, 搜索, 期间, 索引, 创建, 过程 |
断字符和词干分析器用于在查询时扩展 FREETEXT 查询。 查询的区域设置是默认区域设置,除非语言代码标识符 (LCID) 作为查询参数传递。 查询组件在查询的 WHERE 子句中列出的查询词上调用适当的分词器。 例如,如果查询的 WHERE 子句包含“FREETEXT(apples、oranges 和 pears)”,断词器会接收文本“apples、oranges 和 pears”。如果查询 WHERE 子句使用 CONTAINS 全文谓词,则断词器的文本输出会被规范化。 否则,查询组件会将断字符标识的每个单词传递给该语言和区域设置的适当词干分析器。 词干分析器生成该单词的替代形式或偏转形式列表。 查询组件规范化查询词的扩展列表,并删除干扰词。
下表列出了查询“apples、oranges 和 pears”的操作和相应结果。
| Action | 生成的文本 |
|---|---|
| 原文 | 苹果、橙子和梨 |
| 断字 | 苹果、橙子和梨、EOS |
| 词干 | 苹果, 苹果, 橙色, 橙色, 橙子, 和, 梨, 梨 |
| 标准化 | 苹果、苹果、橙子、橙子和梨、梨 |
| 干扰词删除 | 苹果, 苹果, 橙色, 橙子, 橙子, 梨, 梨, 梨 |
| 扩展的查询词列表 | 苹果, 苹果, 橙色, 橙子, 橙子, 梨, 梨, 梨 |
展开的查询词会增加查询查找与原始查询意向匹配的文档的可能性。 断词符或词干分析器在进行查询时生成的文本不会存储在磁盘上。
断字
分词是将文本分成单独的文本标记或单词。 许多语言(尤其是带有罗马字母表的语言)都有一组单词分隔符(如空格)和标点符号,用于辨别单词、短语和句子。 断字符必须依靠准确的语言启发式方法来提供精确可靠的结果。 对于基于字符的编写或基于脚本的字母表的系统,断字更为复杂,其中各个字符的含义是从上下文中确定的。 有关可能影响分词器实现的语言学注意事项的详细信息,请参阅 语言和 Unicode 注意事项。
词干
Windows 搜索仅在查询时应用词干分析器,以在 FREETEXT 和属性查询中为字词生成其他单词表单。 词干分析器执行形态分析,并应用语法规则来生成单词的替代形式或偏转形式列表。 备用形式通常具有相同的词干或基础形式。 通过生成单词的词形变化,索引服务会返回统计上与查询更相关的结果。 例如,针对“游泳比赛”的全文查询将匹配包含“游泳、游过、游着、游过的”或“见面、见过、会议、会议里遇到”以及这些术语的组合的文档。
某些语言要求在索引时间和查询时间生成转义词,同时生成标准和变体转折。 在这种情况下,词干分析发生在断字符组件中,实际词干分析器中的词干处理工作量最小。 例如,日语断字符在创建索引和查询期间执行词干分析,使查询能够查找搜索词的不同转折形式。
标准化
所有语言的文档都存储在单个索引中。 尽管字词和语言规则存在巨大差异,但某些注意事项(如数字、日期和时间)在所有断字符中一致地处理。 有关可能影响断字符实现的规范化注意事项的详细信息,请参阅 Surface Form Normalization。
干扰词
干扰词(也称为停用词)是指不用于区分或索引内容的字词。 索引服务从查询词和全文索引中包含的内容中删除干扰词。 偏移是单词在文档或查询词列表中的出现位置。 文档或查询中干扰词的偏移量记录为空白。 删除干扰词可避免不必要的索引增长来提高查询性能。 它还改进了查询结果的相关性。 可以将 Windows 搜索配置为使用特定语言的干扰词列表。 为该语言调用分词器时,将使用这些列表。 例如,英语中的“the”出现频率很高,因此作为唯一键的价值很小。 “The”位于干扰词列表中,未写入内容索引,如果查询,则不返回任何结果。
干扰词在短语搜索中充当占位符。 一个包含文本“摇尾犬”的文档被存储在索引中,其中“wag”在第 1 位置,“dog”在第 3 位置。 短语查询“wag dog”不匹配,但短语查询“wag a dog”确实匹配,因为匹配项信息。 短语“瓦格紫色狗”不匹配,因为“紫色”在索引中找不到匹配项 2。 但是,对“摇狗”的查询返回包含“摇紫狗”的文档,因为无法有效地确定文档在“摇”和“狗”之间是否有非噪声词。
相关主题