本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
為 Amazon 配置文本分析方案 CloudSearch
Amazon CloudSearch 可讓您為每個text
和text-array
欄位設定特定語言的分析方案。分析方案控制著編製索引期間處理該兩類欄位內容的方式。儘管各種語言預設的處理方式在多數情況下效果良好,微調分析選項將讓您能夠憑藉自身對所欲搜尋資料的認識,獲得最佳的搜尋結果。如需支援的語言清單,請參閱支援的語言。
分析方案指定其所處理文字的語言和以下幾個分析選項:
-
演算法詞幹 — 指定要執行的演算法詞幹程度。相關字詞功能可用程度因語言而異。
-
日文記號化字典 — 指定處理日文時演算法標記化的覆寫。此字典指定應如何將特定的字元組合分類為單詞。
-
字幹字典 — 指定演算法詞幹化結果的取代。此字典將特定的相關單詞對應到常用字根或詞幹。
-
停用詞 - 指定編製索引及搜尋期間應予忽略的單詞。
-
同義詞 - 指定哪些單詞與您的資料中所出現的單詞含意相同,應會產生相同的搜尋結果。
在處理文字的過程中,欄位值和搜尋詞彙將轉換成小寫 (大小寫疊交),所以停用詞、相關字詞和同義詞不區分大小寫。如需 Amazon CloudSearch 如何在索引期間和處理搜尋請求時處理文字的詳細資訊,請參閱Amazon CloudSearch 的文字處理。
您必須為每個分析方案指定一種語言,並且為各個 text
和 text-array
欄位設定其分析方案。當您透過 Amazon CloudSearch 主控台設定欄位時,分析配置預設為_en_default_
分析配置。如果您沒有為分析配置指定分析選項,Amazon CloudSearch 會使用指定語言的預設選項。如需各種語言預設情況的相關資訊,請參閱語言特殊性設定。
定義分析配置的最簡單方法是透過 Amazon CloudSearch 主控台中的「分析配置」頁面。分析方案必須套用於欄位後始能生效。您可以從 Indexing Options (索引選項) 頁面將分析方案套用於所需欄位。您亦可透過命令列工具及 AWS 開發套件定義分析方案,為各個欄位設定其分析方案。
將新的分析方案套用於索引欄位或修改使用中的分析方案之後,您必須明確rebuild the index以使搜尋結果能反映各項變更。
主題
源自 Amazon CloudSearch
相關字詞功能是將相關單詞對應到常用詞幹的程序。詞幹通常是各種變體自其衍生而來的某個字根或基本單詞。例如,run 是 running 和 ran 的詞幹。相關字詞功能將於編製索引以及查詢期間執行。相關字詞功能非但減少了納入索引的詞彙數目,當搜尋詞彙是搜尋的內容中某個出現字詞的變體時亦有助於交互比對。例如,若您將 running 一詞對應到詞幹 run 然後搜尋 running,請求便會比對既包含 run 也包含 running 的文件。
Amazon 同時 CloudSearch 支援演算法詞幹和明確詞幹字典。設定演算法相關字詞功能的方式,即是指定您想要使用相關字詞功能的程度。演算法相關字詞功能可用程度因語言而異:
無 - 停用演算法相關字詞功能
最低限度 - 移除複數字尾,執行基本相關字詞功能
輕量化 - 鎖定最常見的名詞/形容詞轉折變化和衍生字尾
完整 - 積極性詞幹轉折變化和字尾
除了控制演算法相關字詞功能的執行程度,您還可以指定相關字詞功能字典,將特定的相關單詞對應到常用詞幹。此字典是指定成包含一組「字串:值」配對的 JSON 物件,其中各配對分別對應某一字詞及其詞幹,例如 {"term1": "stem1", "term2": "stem2",
"term3": "stem3"}
。系統會套用任何演算法相關字詞功能外加相關字詞功能字典。這讓您能夠覆寫演算法相關字詞功能的結果,以便修正特定詞幹過多或不足的情況。相關字詞功能字典的大小上限為 500 KB。相關字詞功能字典項目必須為小寫。
您要在分析方案中使用 StemmingDictionary
索引鍵定義自訂相關字詞功能字典。因為您將字典 CloudSearch 作為字符串傳遞給 Amazon,因此必須轉義字符串中的所有雙引號。例如,以下分析方案定義了 running 和 jumping 的詞幹:
{ "AnalysisSchemeName": "myscheme", "AnalysisSchemeLanguage": "en", "AnalysisOptions": { "AlgorithmicStemming": "light", "StemmingDictionary": "{\"running\": \"run\",\"jumping\": \"jump\"}" } }
如果您未在分析配置中指定演算法詞幹等級或詞幹字典,Amazon CloudSearch 會使用指定語言的預設演算法字幹層級。儘管相關字詞功能有助於使用者找到可能被排除在搜尋結果之外的相關文件,詞幹過多卻難免導致出現太多相關性存疑的相符項目。針對各種語言所設定的演算法相關字詞功能預設程度均適用於大部分的使用案例。一般而言,起初最好先使用預設值,然後再根據您的使用案例進行調整以最佳化搜尋結果的相關性。如需各種語言預設情況的相關資訊,請參閱語言特殊性設定。
Amazon 的停用詞 CloudSearch
停用詞是指無論在編製索引或搜尋期間通常均應予忽略的單詞,因為這些單詞無關緊要或過於常見,將其納入反而會導致出現大量的相符項目。
在編製索引期間,Amazon 在處理text
和text-array
欄位時 CloudSearch 會使用停用字詞字典。大多數情況下,停用詞一概不會納入索引。停用詞字典亦將用於篩選搜尋請求。
停用詞字典是由字詞構成的 JSON 陣列,例如 ["a", "an", "the",
"of"]
。停用詞字典必須明確列出欲忽略的每個單詞。不支援萬用字元和正規運算式。
您要在分析方案中使用 Stopwords
索引鍵定義自訂停用詞字典。因為您將字典 CloudSearch 作為字符串傳遞給 Amazon,因此必須轉義字符串中的所有雙引號。例如,以下分析方案設定了三個停用詞 a、an 和 the:
{ "AnalysisSchemeName": "myscheme", "AnalysisSchemeLanguage": "en", "AnalysisOptions": { "Stopwords": "[\"a\",\"an\",\"the\"]" } }
如果您未在分析配置中指定停用字詞字典,Amazon CloudSearch 會使用指定語言的預設停用字詞字典。針對各種語言所設定的預設停用詞均適用於大部分的使用案例。一般而言,起初最好先使用預設值,然後再根據您的使用案例進行調整以最佳化搜尋結果的相關性。如需各種語言預設情況的相關資訊,請參閱語言特殊性設定。
Amazon 的同義詞 CloudSearch
您可就所搜尋的資料中呈現的詞彙設定同義詞。如此一來,使用者若搜尋同義詞而非已編製索引的詞彙,結果亦將包括已編製索引的詞彙列於其中的文件。例如,您可以定義自訂同義詞進行下列事項:
-
將常見的拼字錯誤對應到正確的拼法
定義對等詞彙,例如
film
和movie
將籠統的詞彙對應到更具體的詞彙,例如
fish
和barracuda
將多個單詞對應到一個單字 (或相反),例如
tool box
和toolbox
定義同義詞之後,該同義詞會加入到其基本字符出現的各處索引位置。例如,若您定義 fish
做為 barracuda
的同義詞,則 fish
一詞將會加入到包含 barracuda
一詞的每份文件中。加入大量的同義詞會增加索引的大小以及查詢延遲 - 同義詞導致相符項目數增加,而相符項目數愈多,處理結果所需的時間就愈久。
同義詞字典是在編製索引期間用於為文字欄位內出現的詞彙設定各項對應。系統不會對搜尋請求進行同義詞方面的處理。默認情況下,Amazon CloudSearch 不定義任何同義詞。
您可透過兩種方式指定同義詞:
指定成「異文合併群組」,其同一群組當中的每個字詞均視為該群組中其他每個字詞的同義詞。
指定成特定字詞的「別名」。別名將視為所指定之字詞的同義詞,但該字詞並非視為其別名的同義詞。
同義詞字典是指定成 JSON 物件,以定義同義詞群組和別名。其 groups
值是由陣列構成的陣列,當中每個子陣列都是一個異文合併群組。aliases
值是包含一組「字串:值」配對的物件,其中的字串指定某個字詞,而值的陣列則指定該字詞的每個同義詞。以下範例同時包括異文合併群組和別名:
{ "groups": [["1st", "first", "one"], ["2nd", "second", "two"]], "aliases": { "youth": ["child", "kid", "boy", "girl"], "adult": ["men", "women"] } }
群組及別名均支援多個單詞的同義詞。在以下範例中,異文合併群組和別名都使用了多個單詞的同義詞:
{ "groups": [["tool box", "toolbox"], ["band saw", "bandsaw"]], "aliases": { "workbench": ["work bench"]} }
您要在分析方案中使用 Synonyms
索引鍵定義自訂同義詞字典。因為您將字典 CloudSearch 作為字符串傳遞給 Amazon,因此必須轉義字符串中的所有雙引號。例如,以下分析方案設定了 youth 一詞的別名:
{ "AnalysisSchemeName": "myscheme", "AnalysisSchemeLanguage": "en", "AnalysisOptions": { "Synonyms": "{\"aliases\": {\"youth\": [\"child\",\"kid\"]}}" } }
使用 Amazon CloudSearch 主控台設定分析配置
您可以從 Amazon CloudSearch 主控台的「分析配置」窗格定義分析方案。
定義分析方案
-
在以下位置打開 Amazon CloudSearch 控制台 https://console.aws.amazon.com/cloudsearch/home
。 -
在左側指示窗格中,選擇 [網域]。
-
選擇您的網域名稱以開啟其設定。
-
轉到高級搜索選項標籤。
-
在「分析規則」窗格中,選擇「新增分析規則」。
-
指定分析規則的名稱並選取語言。
-
選擇下一步。
-
在接下來的三個步驟中,設定配置的文字停用字詞、詞幹和同義字選項。您可以設定個別的停用詞、相關字詞和同義詞,或是直接編輯螢幕上顯示的字典。各字典均為 JSON 格式。停用詞指定成字串陣列。相關字詞指定成包含單個或一組「索引鍵:值」配對的物件。同義詞別名也是指定成包含單個或一組「索引鍵:值」配對的 JSON 物件,而其中的別名值是指定成字串陣列。同義詞群組則要指定成 JSON 陣列 (同義詞字典是由陣列構成的陣列)。
如果您選取日文作為語言,您也可以選擇指定自訂標記化字典,以覆寫特定片語的預設標記化。如需詳細資訊,請參閱 自訂日文字符化。
-
在摘要頁面上,檢閱分析配置組態,然後選擇儲存。
重要
若要使用此分析方案,您必須將其套用於一個或多個 text
或 text-array
欄位並重建索引。您可以從 [索引選項] 索引標籤配置欄位的分析規則。若要重建索引,請選擇 [動作],[執行索引]。
使用 AWS CLI 設定分析方案
您可以使用指aws cloudsearch define-analysis-scheme
令來定義特定語言的文字處理選項,包括字幹選項、停用字詞和同義字。如需有關安裝與設定 AWS CLI 的資訊,請參閱 AWS Command Line Interface 使用者指南。
分析方案要指定成各個 text
或 text-array
欄位組態的一部分。如需詳細資訊,請參閱 configure indexing options。
定義分析方案
-
執行
aws cloudsearch define-analysis-scheme
命令,並指定--analysis-scheme
選項以及包含各個分析選項的 JSON 物件。分析方案必須是有效的 JSON。分析選項的索引鍵和值配對必須用引號括住,且其選項值內的所有引號必須用反斜線逸出。若要取得分析選項的格式,請參閱《AWS CLI指令參考》define-analysis-scheme中的〈〉。如需如何指定相關字詞功能、停用詞和同義詞選項的詳細資訊,請參閱設定分析方案。若您指定的語言為日文 (
ja
),便可另再選擇指定自訂字符化字典,以覆寫特定片語預設的字符化方式。如需詳細資訊,請參閱 自訂日文字符化。提示
使用 AWS CLI 設定分析方案最簡單的方法是將分析方案存放於文字檔案,並指定該檔案做為
--analysis-scheme
值。這讓您能夠將方案編寫成更方便閱讀的格式。例如,以下方案定義了名為myscheme
的英文分析方案,使用輕量化演算法相關字詞功能並且設定兩個停用詞:{ "AnalysisSchemeName": "myscheme", "AnalysisSchemeLanguage": "en", "AnalysisOptions": { "AlgorithmicStemming": "light", "Stopwords": "[\"a\", \"the\"]" } }
若您將此方案儲存為文字檔案
myscheme.txt
,便可傳遞該檔案做為--analysis-scheme
參數的值:aws cloudsearch define-analysis-scheme --region us-east-1 --domain-name movies --analysis-scheme file://myscheme.txt
重要
若要使用此分析方案,您必須將其套用於一個或多個 text
或 text-array
欄位並重建索引。您可以使用 aws cloudsearch define-index-field
命令為各欄位設定其分析方案。如欲重建索引,請呼叫 aws cloudsearch index-documents
。
使用 AWS 開發套件設定分析方案
AWS 開發套件 (Android 和 iOS 開發套件除外) 支援 Amazon CloudSearch 設定 API 中定義的所有 Amazon CloudSearch 動作,包括。DefineAnalysisScheme
如需安裝與使用 AWS 開發套件的詳細資訊,請參閱 AWS 軟體開發套件
重要
若要使用此分析方案,您必須將其套用於一個或多個 text
或 text-array
欄位並重建索引。您可以使用 define index field 方法為各欄位設定其分析方案。如欲重建索引,請使用 index documents 方法。
在 Amazon 為中文、日文和韓文的比文編制索引 CloudSearch
中文、日文和韓文沒有明確的字詞邊界,若純粹對個別字元編製索引 (一元語法) 可能會比對出與搜尋查詢不太相關的項目。一種解決方案即是採「二元語法」編製索引。二元語法是指字串中每兩個相鄰字元的序列。例如,以下範例顯示字串 我的氣墊船裝滿了鱔魚的二元語法:
我的 的氣 氣墊 墊船 船裝 裝滿 滿了 了鱔 鱔魚
儘管採二元語法編製索引可提升搜尋結果品質,但請切記其可能會導致您的索引大小明顯增加。
對中文、日文和韓文採二元語法編製索引
建立文字分析方案並將語言設為多國語言 (
mul
)。設定包含 CJK 資料的索引欄位以使用此多國語言分析方案。
當您指派設定欄位語言的分析方案時mul
,Amazon 會 CloudSearch 自動為欄位內的所有中文、日文和韓文文字產生二等圖。
如需如何建立與使用分析方案的詳細資訊,請參閱設定分析方案。
若是您對日文內容編製索引,可能還會想要搭配標準日文處理器使用自訂字符化字典。如需詳細資訊,請參閱 自訂日文字符化。
在 Amazon 中自定義日語標記化 CloudSearch
如果您需要更多地控制 Amazon 代碼 CloudSearch 化日文的方式,可以將自訂日文標記化字典新增至您的分析配置。設定自訂字符化字典讓您能夠覆寫標準日文處理器將特定項目字符化的方式。這在某些情況下可以提高搜尋結果的準確性,特別是當您需要對網域專屬片語編製索引和擷取的情況。
標記化字典是條目的集合,其中每個條目指定一組字符,字符應該如何被標記化,每個令牌應該如何發音(讀數)和一個標籤。 part-of-speech 此字典是指定成陣列,而每個字典項目皆為字串陣列。各項目的格式如下:
["<text>","<token 1> ... <token n>","<reading 1> ... <reading n>","<part-of-speech tag>"]
您必須為每個 Token 和項目的 part-of-speech 標籤指定讀取。請參閱日文詞類標籤以了解哪些詞類標籤視同停用詞。
您要在分析方案中使用 JapaneseTokenizationDictionary
索引鍵定義自訂字符化字典。因為您將標記化字典 CloudSearch 作為字符串傳遞給 Amazon,因此必須轉義字符串中的所有雙引號。例如,以下分析方案中的字典指定分段覆寫漢字與片假名複合詞,外加適當人名的自訂讀音:
{ "AnalysisSchemeName": "jascheme", "AnalysisSchemeLanguage": "ja", "AnalysisOptions": { "Stopwords": "[\"a\", \"the\"]", "AlgorithmicStemming": "full", "JapaneseTokenizationDictionary": "[ [\"日本経済新聞\",\"日本 経済 新聞\",\"ニホン ケイザイ シンブン\",\"カスタム名詞\"],[\"トートバッグ\",\"トート バッグ\",\"トート バッグ\",\"かずカナ名詞\"],[\"朝青龍\",\"朝青龍\",\"アサショウリュウ\",\"カスタム人名\"] ]" } }
使用 AWS CLI 設定分析方案時,您可以將分析方案存放於文字檔案,並指定該檔案做為 --analysis-scheme
值。這讓您能夠將方案編寫成更方便閱讀的格式。例如,若您將 jascheme
分析方案儲存為 jascheme.txt
檔案,即可於呼叫 aws cloudsearch
define-analysis-scheme
時傳遞該檔案:
aws cloudsearch define-analysis-scheme --region us-east-1 --domain-name mydomain --analysis-scheme file://jascheme.txt
如需如何建立與使用分析方案的詳細資訊,請參閱設定分析方案。
Amazon 的日語部分演講標籤 CloudSearch
當您對日文使用自訂標記化字典時,您可以為每個項目指定一個 part-of-speech 標籤。如果 part-of-speech 標籤符合其中一個設定為停止標記的標籤,則會將該項目視為停用字詞。
下表顯示了在 Amazon 中配置為停止標記的語音標籤的一部分 CloudSearch。
Tag | 詞類 | 描述 |
---|---|---|
助動詞 | 助動詞 | 為其所在的字句加強機能或文法語意的動詞。 |
接続詞 | 連接詞 | 可以單獨出現的連接詞。 |
フィラー | 填充詞 | 對話時出現的附和語或插入填句的聲音。 |
非言語音 | 非言語音 | 非言語音調。 |
その他-間投 | 其他感歎詞 | 難以歸類為名詞接尾辭或文末助詞的單詞。 |
助詞-副詞化 | 助詞-副詞化 | 名詞及副詞後面接續的 "に" 和 "と"。 |
助詞-連体化 | 助詞-副詞化 | 附加至名詞以修飾非轉折字詞的 "の"。 |
助詞-副助詞 | 助詞-副詞 | 表示位置、移動方向等的副詞。 |
助詞-副助詞/並立助詞/終助詞 | 助詞-副詞/接續助詞/語尾助詞 | 無從得知其為副詞、接續助詞或語尾助詞的 "か"。 |
助詞-格助詞-連語 | P article-case-compound | 助詞與動詞的複合,主要做為格助詞使用。 |
助詞-格助詞-一般 | P article-case-misc | 格助詞。 |
助詞-格助詞-引用 | P article-case-quote | 出現在名詞、人員談話、引號、會議結論表達、理由、判斷、推測等後面的 "と"。 |
助詞-格助詞 | 助詞-格助詞 | 未定義次級分類的格助詞。 |
助詞-接続助詞 | 助詞-接續助詞 | 接續助詞。 |
助詞-並立助詞 | 助詞-並立助詞 | 並立助詞。 |
助詞-係助詞 | 助詞-係助詞 | 係助詞。 |
助詞-終助詞 | 助詞-語尾助詞 | 語尾助詞。 |
助詞-間投助詞 | 助詞-感嘆助詞 | 文法上具有感嘆詞作用的助詞。 |
助詞-特殊 | 助詞-特殊 | 不符合任何其他分類的助詞。此類包括短歌、俳句及其他詩歌中所使用的助詞。 |
助詞 | 助詞 | 未分類的助詞。 |
記号-括弧閉 | 符號-右括號 | 右括號:]。 |
記号-読点 | 符號-逗號 | 逗號: ,. |
記号-一般 | 符號-一般 | 不屬於任何其他類別的一般符號。 |
記号-括弧開 | 符號-左括號 | 左括號:[。 |
記号-句点 | 符號-句號 | 句點和句號。 |
記号-空白 | 符號-空格 | 全形空白字元。 |
記号 | 符號 | 未分類的符號。 |