其他語言和 Unicode 考慮
本主題描述詞幹分析考慮,包括交集語言和 Unicode 代理字組,以及使用 Surrogate 字組來擴充 Unicode 字元集以容納不同的字元集。 本主題也描述斷詞工具如何識別文字中的片語,以及處理不中斷空格,以及斷詞工具和字幹分析器如何處理數位和日期、複合字詞、複合詞組、特殊單字和字元、縮寫和大寫。
本主題的組織方式如下:
片語識別
片語是由一或多個字組修改的單字或一組字組。 片語很難一致地識別,因為同一個修飾詞可能用於具有相同名詞的多個片語。 例如,「new house」、「House of一家」、「New House of一家」
Windows 搜尋最常在查詢時使用片語。 查詢文字中的片語會收到比個別單字更高的權數。 從上一個範例中,在檔中的不同點,包含「House of 一家」的檔排名高於包含 「House」 和 「一個[儲存區] 的檔。 如果片語可能符合至少一份檔,則建議斷詞工具在查詢時產生片語。
Agglutinative Languages
透過較小的型別組合來形成單字,以表達複合想法。 這其中每一種型別通常都有一個意義或函式,並在組合程式期間保留其原始形式和意義。 對於具有子系型態的語言,例如土耳其文、芬蘭文、匈牙利文或韓文,可以針對指定的根字產生數千種形式。
下表顯示芬蘭字 「talo」 (「house」) 的變化形式清單。
Word | 翻譯 |
---|---|
Talo | 門牌 |
Taloni | 我的房子 |
Talossa | 在房屋中 |
Talossani | 在我的家 |
Taloja | 房子 |
Taloissa | 在房屋中 |
英文、法文和拉丁等變化的語言,對於一個根字組而言,可能會有非常少量的字組形式。 在變化的語言中,當系結時,型別會彼此影響。 在字幹或字尾中,大部分變化的變更都會出現在字幹或字尾。 相較于交集語言,變化的語言通常會有單一型態的不同函式。 例如,morpheme 可以判斷數位和大小寫。
詞幹分析器對於叢集語言必須權衡效能和精確度之間的取捨,以只產生可能文字形式數目的子集。
數位、時間和日期
Word斷器必須使用代表數位、時間和日期的通用格式,以利進行一致的查詢。
當您建立斷詞工具時,建議斷詞工具使用模式 「NNddDcc」 將數位正規化為標準標記法,其中 NN 是常值序列 「NN」, dd 是數位的整數部分,D 是常值 「D」, 而 cc 是數位的小數部分。 Word斷器不會限制整數或數位分數部分的位數。 我們建議斷詞工具辨識以句號 (.) 和逗號分隔的數值模式, (,) 。 例如,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」) 的查詢不符合 「Lebensversicherungsgesellschaft」 (「life-insurance salesman」) 。 在此情況下,我們建議斷詞工具在索引建立和查詢期間,將這些複合字分成基底元件。 德文斷詞工具會將 「Lebensversicherungsgesellschaft」 分成 「Leben」、「Versicherung」 和 「Gesellschaft」 元件字組。它會在查詢時套用相同的分解,以及每個結果詞彙的選擇性詞幹分析。
複合詞組
某些語言,例如韓文,包含複雜片語,可透過數種不同的方式中斷。 韓文片語包含 內容字組,例如名詞、名詞、動詞和形容詞,後面接著 功能字組。 功能字可在後置和結尾中找到。 後置表示句子中名詞或代名詞的功能角色;結束詞表示動詞或形容詞的功能角色。
一個片語可以有數個分析,而每個分析可以包含數個內容單字。 斷詞工具必須採用特定語言啟發學習法,才能從內容中判斷要提供給不同分析的權數。 斷詞工具可能會根據產生的元件單字數目來判斷要使用的分解。 某些斷詞工具可能會偏好較長字詞的簡短序列,而其他斷詞工具可能會偏好較長的字詞序列。
另一個考慮是,在韓文中,名詞和名詞可以儲存在索引中,而不需要其對應的功能字組。 韓文是一種交集語言,結合了許多字尾與動詞和形容詞,以形成無限變化的表單。 片語中所識別的動詞和形容詞會以其結尾儲存在索引中,但斷詞工具不會產生新形式。
特殊字元和單字
特殊字元是字元,例如 「,」「©,」 和 「™」。 這些字元很少用於查詢中。 Word斷器應該在建立索引期間和查詢時等量特殊字元。
我們建議斷詞工具辨識特殊字組,例如 「C++」、「C#」、「.NET」、「成績和音符標記法。 Word斷器可以使用語言啟發學習法來識別特殊單字的模式。 Word斷器也可以使用包含可辨識之特殊單字的自訂字典。
縮寫和縮寫
當您實作斷詞工具時,必須考慮縮寫和縮寫。 在許多語言中,縮寫的個別字母會以句號分隔。 有時候,無法辨識縮略字或縮寫的單字會縮寫。 例如,「美國美國」可能縮寫為「美國」或「美國」。Word Windows 搜尋隨附的斷符通常會將單一字母單字識別為非搜尋字組,並在查詢期間將這些字視為預留位置。 在查詢期間,不知道常見縮寫或無法辨識縮寫的斷詞工具會將縮寫 「U.S.」 轉換成 「U」、「S」 和 「A」。 此分解無法提供足夠的資訊來比對全文檢索索引中的單字,因為所有查詢詞彙都是非搜尋字。 當您建立斷詞工具時,建議斷詞工具移除分隔縮寫字母的句點。 在此範例中,「U.S.A」 會儲存為 「USA」,以及包含 「U.S.A」 的查詢字詞實際上會查詢 「USA」。如果斷詞工具處理縮寫,該縮寫中的句點不會被視為 EOS 中斷。 因此,如果縮寫位於句子結尾,斷詞工具可能無法正確識別 EOS 中斷。
大寫
Windows 搜尋目前不會在文字儲存到全文檢索索引時保留大寫。 Word斷詞工具和字幹分析器不應該修改單字的大小寫。
非中斷空格
當您建立斷詞工具時,建議您確定斷詞工具會將不中斷空格視為單字分隔符號。 此外,也建議斷詞工具產生文字的替代形式,且不含中斷空格。 某些字元,例如底線,是特殊字元,這些字元會被視為非中斷字元,因為其找到的文字來源。 例如,原始程式碼或檔案名可能包含底線作為非中斷字元。
Surrogate 字組
Surrogate 配對是原始程式碼中的字元標記法,代表由兩個 Unicode 值序列組成的單一字元。 在自動程式碼配對中,第一個值是高 Surrogate,而第二個值則是低 Surrogate。 高 Surrogate 是 U+D800 到 U+DBFF 範圍中的字元。 低 Surrogate 是 U+DC00 到 U+DFFF 範圍中的字元。 Surrogate 配對會將字元集延伸到 Unicode 字元之外。 建議您在處理 Surrogate 配對時,斷詞工具應該使用下列規則:
- 高 Surrogate 必須在低 Surrogate 之前。
- 低 Surrogate 必須遵循高 Surrogate。
- 對另一半沒有對應值的高或低 Surrogate 沒有意義。
Word斷項必須考慮任何配對,並在索引中產生配對。 如需詳細資訊,請參閱 Surrogates 和增補字元。