其他语言和 Unicode 注意事项

本主题介绍一个词干性语言和 Unicode 代理项对的词干注意事项,以及使用代理项对扩展 Unicode 字符集以适应不同的字符集。 本主题还介绍了断字符如何识别文本中的短语并处理非中断性空格,以及断字符和词干分析器如何处理数字和日期、复合词、复合短语、特殊字词和字符、首字母缩略词和缩写以及大写。

本主题按如下所示进行组织:

短语标识

短语是一个单词或一组由一个或多个其他字词修改的单词。 短语难以一致识别,因为同一修饰符可用于多个具有相同名词的短语。 例如,“新房子”、“议会众议院”、“新议会大厦”。

Windows 搜索最常在查询时使用短语。 查询文本中的短语的权重高于单个单词。 从前面的示例中,一份包含“议会众议院”的文件在文件的不同位置排名高于包含“众议院”和“议会”的文件。 如果短语可能匹配至少一个文档,我们建议断字符在查询时生成短语。

Agglutinative Languages

凝聚性语言通过较小的变形的组合来形成单词,以表达复合想法。 其中每个变形通常具有一种含义或功能,并在组合过程中保留其原始形式和含义。 对于具有凝固性形态的语言,如土耳其语、芬兰语、匈牙利语或朝鲜语,可以生成成千上万种形式的给定根词。

下表显示了芬兰单词“talo”(“house”)的偏转形式列表。

译本
塔洛 房子
塔洛尼 我的房子
Talossa 在房子里
Talossani 在我家
塔洛贾 房子
塔洛伊萨 在房子里

 

英语、法语和拉丁语等偏转语言对于一个根词来说,可能为一个词形式很少。 在偏转的语言中,当绑定时,变形会相互影响。 大多数拐点变化都存在于词干或词尾。 与偏转语言相比,偏转的语言往往对单个平滑体具有不同的功能。 例如,平滑体可以确定数字和大小写。

抗凝语言的词干分析器必须权衡性能和准确性之间的权衡,以仅生成一部分可能的单词形式。

数字、时间和日期

断字符必须使用通用格式来表示数字、时间和日期,以便进行一致的查询。

创建断字符时, 建议使用模式“NNddDcc”将数字规范化为规范表示形式,其中 NN 是文本序列“NN”,dd 是数字的整数部分,D 是文本“D”,cc 是数字的小数部分。 断字符不会限制整数或数字的分数部分的位数。 我们建议断字符识别由句点(.)和逗号(,)分隔的数字模式。 例如,Windows 搜索将“1,000.2”和“1.000,2”表示为“NN1000D2”。

为断字符和词干分析器选择一种格式。 规范化单字节阿拉伯数字,以便包含其中任何一种表单的查询与其他表单匹配文档。

创建断字符时,我们建议断字符使用模式“TThhmmss”将所有时间呈现为 24 小时表示形式,其中 TT 是文本前缀“TT”,hh 是小时,mm 是分钟数,ss 为秒。 Windows 搜索与额外的时间单位(如毫秒)不匹配。 分析 A.M. 和 P.M. 模式是可选的。

创建断字符时,我们建议断字符以“DDyyyymmdd”的规范格式生成日期,其中 DD 是文本“DD”,yyyy 是年份,mm 是月份,dd 是日期。 我们还建议断字符以二十世纪和二十一世纪格式存储两位数年份。 例如,断字符将“2.2.99”表示为“DD19990202”和“DD20990202”。 在查询时,Windows 搜索使用 Windows 应用程序编程接口(API)来确定服务器的交叉日期,以显示正确的格式 19XX 或 20XX

复合词

在某些语言(如德语)中,名词从更简单的名词中复合。 对于合理的查询召回,这些复合名词在含义上过于具体。 例如,如果没有分解,对“Versicherung”(“insurance”)的查询与“Lebensversicherungsellschaft”(“人寿保险推销员”)不匹配。 在这种情况下,我们建议断字符在创建索引和查询期间将这些复合词分解为基组件。 德语断字符将“Lebensversicherungsgesellschaft”分解为“Leben”、“Versicherung”和“Gesellschaft”。它在查询时应用相同的分解,以及每个结果词的可选词干分解。

复合短语

某些语言(如朝鲜语)包含复杂的短语,可通过多种不同的方式中断。 朝鲜语短语由 内容词组成,如名词、代词、谓词和形容词,后跟 功能词。 函数词位于位置后和结尾处。 位置后指示名词或代词在句子中的功能角色:结尾表示谓词或形容词的功能角色。

一个短语可以有多个分析,每个分析可以包含多个内容词。 断字符必须采用特定于语言的启发法,从上下文中确定不同分析的权重。 断字符可以根据生成的组件单词数来确定要使用的分解。 某些断字符可能偏向较长字词的短序列,而其他断字符可能偏向较长的字词序列。

另一个考虑因素是,在朝鲜语中,名词和代词可以存储在索引中,而无需相应的功能词。 朝鲜语是一种可表达的语言,将许多词尾与动词和形容词相结合,形成无数的拐点形式。 短语中标识的谓词和形容词以索引中的结尾保存,但断字符不会生成新形式。

特殊字符和单词

特殊字符是字符,如“,”“©和”™”。 这些字符很少用于查询。 断字符应在创建索引期间和查询时去除特殊字符。

我们建议断字符识别特殊字词,如“C++”、“C#”、“.NET”、“成绩”和音乐表示法。 断字符可以使用语言启发法来识别特殊字词的模式。 断字符还可以使用包含已识别的特殊单词的自定义词典。

首字母缩略词和缩写

实现断字符时,必须考虑首字母缩略词和缩写。 在多种语言中,单个首字母缩略词用句点分隔。 有时,无法识别的首字母缩略词或缩写的字词将被缩写。 例如,“美国”可能缩写为“USA”或“美国”。Windows 搜索附带的断字符通常将单字母单词标识为干扰词,并在查询期间将这些单词视为占位符。 在查询期间,不知道常见首字母缩略词或无法识别缩写的断字符将缩写“U.S.”转换为“U”、“S”和“A”。 此分解不提供足够的信息来匹配全文索引中的单词,因为所有查询词都是干扰词。 创建断字符时,我们建议断字符删除分隔首字母缩略词的句点。 在此示例中,“美国”存储为“USA”,并且包含“美国”的查询词实际查询“USA”。如果断字符处理缩写,则该缩写中的句点不会被视为 EOS 中断。 因此,如果缩写位于句子末尾,断字符可能无法正确识别 EOS 断字符。

资本化

Windows 搜索当前不会在将单词保存到全文索引时保留大写。 断字符和词干分析器不应修改单词大小写。

非中断空格

创建断字符时,我们建议确保断字符将非断字符视为单词分隔符。 此外,建议断字符生成单词的替代形式,且不带非中断空格。 某些字符(如下划线)是特殊字符,由于找到这些字符的文本的来源,这些字符被视为非中断字符。 例如,源代码或文件名可能包含下划线作为非中断字符。

代理项对

代理项对是源代码中的字符表示形式,表示由两个 Unicode 值的序列组成的单个字符。 在编码对中,第一个值为高代理项,第二个值是低代理项。 高代理项是 U+D800 到 U+DBFF 范围内的字符。 低代理项是 U+DC00 到 U+DFFF 范围内的字符。 代理项对将字符集扩展到 Unicode 字符之外。 建议在处理代理项对时,断字符应使用以下规则:

  • 高代理项必须在低代理项之前。
  • 低代理项必须遵循高代理项。
  • 另一半没有相应值的高或低代理项没有意义。

断字符必须考虑任何对,并在索引中生成对。 有关详细信息,请参阅 代理项和补充字符