

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# 設定 Amazon CloudSearch 的文字分析結構描述
<a name="configuring-analysis-schemes"></a>

Amazon CloudSearch 可讓您為每個 `text`和 `text-array` 欄位設定特定語言的分析方案。分析方案控制著編製索引期間處理該兩類欄位內容的方式。儘管各種語言預設的處理方式在多數情況下效果良好，微調分析選項將讓您能夠憑藉自身對所欲搜尋資料的認識，獲得最佳的搜尋結果。如需支援的語言清單，請參閱[支援的語言](supported-languages.md)。

分析方案指定其所處理文字的語言和以下幾個分析選項：
+ **演算法主幹** - 指定要執行的演算法主幹層級。相關字詞功能可用程度因語言而異。
+ **日文字符化字典** - 指定處理日文時演算法字符化的覆寫。此字典指定應如何將特定的字元組合分類為單詞。
+ **傾印字典** - 指定演算法詞幹結果的覆寫。此字典將特定的相關單詞對應到常用字根或詞幹。
+ **停用詞** - 指定編製索引及搜尋期間應予忽略的單詞。
+ **同義詞** - 指定哪些單詞與您的資料中所出現的單詞含意相同，應會產生相同的搜尋結果。

在處理文字的過程中，欄位值和搜尋詞彙將轉換成小寫 (大小寫疊交)，所以停用詞、相關字詞和同義詞不區分大小寫。如需 Amazon CloudSearch 在編製索引期間和處理搜尋請求時如何處理文字的詳細資訊，請參閱 [Amazon CloudSearch 中的文字處理](text-processing.md)。

您必須為每個分析方案指定一種語言，並且為各個 `text` 和 `text-array` 欄位設定其分析方案。當您透過 Amazon CloudSearch 主控台設定欄位時，分析方案預設為`_en_default_`分析方案。如果您未指定分析方案的分析選項，Amazon CloudSearch 會使用指定語言的預設選項。如需各種語言預設情況的相關資訊，請參閱[語言特殊性設定](text-processing.md#text-processing-settings)。

定義分析方案的最簡單方法是透過 Amazon CloudSearch 主控台中的**分析方案**頁面。分析方案必須套用於欄位後始能生效。您可以從 **Indexing Options (索引選項)** 頁面將分析方案套用於所需欄位。您亦可透過命令列工具及 AWS 開發套件定義分析方案，為各個欄位設定其分析方案。

將新的分析方案套用於索引欄位或修改使用中的分析方案之後，您必須明確[rebuild the index](indexing.md)以使搜尋結果能反映各項變更。

**Topics**
+ [在 Amazon CloudSearch 中隱藏](#word-stemming)
+ [Amazon CloudSearch 中的停止詞](#stopwords)
+ [Amazon CloudSearch 中的同義詞](#synonyms)
+ [使用 Amazon CloudSearch 主控台設定分析結構描述](#configuring-analysis-schemes-console)
+ [使用 設定分析結構描述 AWS CLI](#configuring-analysis-schemes-clt)
+ [使用 AWS 開發套件設定分析方案](#configuring-analysis-schemes-sdk)
+ [Amazon CloudSearch 中中文、日文和韓文的索引摘要](#processing-cjk-fields)
+ [在 Amazon CloudSearch 中自訂日文字符化](#customizing-japanese-tokenization)

## 在 Amazon CloudSearch 中隱藏
<a name="word-stemming"></a>

相關字詞功能是將相關單詞對應到常用詞幹的程序。詞幹通常是各種變體自其衍生而來的某個字根或基本單詞。例如，*run* 是 *running* 和 *ran* 的詞幹。相關字詞功能將於編製索引以及查詢期間執行。相關字詞功能非但減少了納入索引的詞彙數目，當搜尋詞彙是搜尋的內容中某個出現字詞的變體時亦有助於交互比對。例如，若您將 *running* 一詞對應到詞幹 *run* 然後搜尋 *running*，請求便會比對既包含 *run* 也包含 *running* 的文件。

 Amazon CloudSearch 同時支援演算法主幹和明確主幹字典。設定演算法相關字詞功能的方式，即是指定您想要使用相關字詞功能的程度。演算法相關字詞功能可用程度因語言而異：
+ 無 - 停用演算法相關字詞功能
+ 最低限度 - 移除複數字尾，執行基本相關字詞功能
+ 輕量化 - 鎖定最常見的名詞/形容詞轉折變化和衍生字尾
+ 完整 - 積極性詞幹轉折變化和字尾

除了控制演算法相關字詞功能的執行程度，您還可以指定相關字詞功能字典，將特定的相關單詞對應到常用詞幹。此字典是指定成包含一組「字串:值」配對的 JSON 物件，其中各配對分別對應某一字詞及其詞幹，例如 `{"term1": "stem1", "term2": "stem2", "term3": "stem3"}`。系統會套用任何演算法相關字詞功能外加相關字詞功能字典。這讓您能夠覆寫演算法相關字詞功能的結果，以便修正特定詞幹過多或不足的情況。相關字詞功能字典的大小上限為 500 KB。相關字詞功能字典項目必須為小寫。

您要在分析方案中使用 `StemmingDictionary` 索引鍵定義自訂相關字詞功能字典。由於您以字串形式將字典傳遞至 Amazon CloudSearch，因此您必須逸出字串中的所有雙引號。例如，以下分析方案定義了 *running* 和 *jumping* 的詞幹：

```
{
    "AnalysisSchemeName": "myscheme",
    "AnalysisSchemeLanguage": "en",
    "AnalysisOptions": {
        "AlgorithmicStemming": "light",
        "StemmingDictionary": "{\"running\": \"run\",\"jumping\": \"jump\"}"
    }
}
```

如果您未在分析方案中指定演算法主幹層級或主幹字典，Amazon CloudSearch 會使用指定語言的預設演算法主幹層級。儘管相關字詞功能有助於使用者找到可能被排除在搜尋結果之外的相關文件，詞幹過多卻難免導致出現太多相關性存疑的相符項目。針對各種語言所設定的演算法相關字詞功能預設程度均適用於大部分的使用案例。一般而言，起初最好先使用預設值，然後再根據您的使用案例進行調整以最佳化搜尋結果的相關性。如需各種語言預設情況的相關資訊，請參閱[語言特殊性設定](text-processing.md#text-processing-settings)。

## Amazon CloudSearch 中的停止詞
<a name="stopwords"></a>

 停用詞是指無論在編製索引或搜尋期間通常均應予忽略的單詞，因為這些單詞無關緊要或過於常見，將其納入反而會導致出現大量的相符項目。

 在編製索引期間，Amazon CloudSearch 會在處理 `text`和 `text-array` 欄位時使用停止詞字典。大多數情況下，停用詞一概不會納入索引。停用詞字典亦將用於篩選搜尋請求。

停用詞字典是由字詞構成的 JSON 陣列，例如 `["a", "an", "the", "of"]`。停用詞字典必須明確列出欲忽略的每個單詞。不支援萬用字元和正規運算式。

您要在分析方案中使用 `Stopwords` 索引鍵定義自訂停用詞字典。由於您以字串形式將字典傳遞至 Amazon CloudSearch，因此您必須逸出字串中的所有雙引號。例如，以下分析方案設定了三個停用詞 *a*、*an* 和 *the*：

```
{
    "AnalysisSchemeName": "myscheme",
    "AnalysisSchemeLanguage": "en",
    "AnalysisOptions": {
        "Stopwords": "[\"a\",\"an\",\"the\"]"
    }
}
```

如果您未在分析方案中指定停止詞字典，Amazon CloudSearch 會使用指定語言的預設停止詞字典。針對各種語言所設定的預設停用詞均適用於大部分的使用案例。一般而言，起初最好先使用預設值，然後再根據您的使用案例進行調整以最佳化搜尋結果的相關性。如需各種語言預設情況的相關資訊，請參閱[語言特殊性設定](text-processing.md#text-processing-settings)。

## Amazon CloudSearch 中的同義詞
<a name="synonyms"></a>

您可就所搜尋的資料中呈現的詞彙設定同義詞。如此一來，使用者若搜尋同義詞而非已編製索引的詞彙，結果亦將包括已編製索引的詞彙列於其中的文件。例如，您可以定義自訂同義詞進行下列事項：
+ 將常見的拼字錯誤對應到正確的拼法 
+ 定義對等詞彙，例如 `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` 索引鍵定義自訂同義詞字典。由於您以字串形式將字典傳遞至 Amazon CloudSearch，因此您必須逸出字串中的所有雙引號。例如，以下分析方案設定了 *youth* 一詞的別名：

```
{
    "AnalysisSchemeName": "myscheme",
    "AnalysisSchemeLanguage": "en",
    "AnalysisOptions": {
        "Synonyms": "{\"aliases\": {\"youth\": [\"child\",\"kid\"]}}"
    }
}
```

## 使用 Amazon CloudSearch 主控台設定分析結構描述
<a name="configuring-analysis-schemes-console"></a>

您可以從 Amazon CloudSearch 主控台的分析結構描述窗格定義**分析結構**描述。

**定義分析方案**

1. 開啟位於 https：//[https://console.aws.amazon.com/cloudsearch/home](https://console.aws.amazon.com/cloudsearch/home) 的 Amazon CloudSearch 主控台。

1. 從左側導覽窗格中，選擇**網域**。

1. 選擇您的網域名稱以開啟其組態。

1. 前往**進階搜尋選項**索引標籤。

1. 在**分析方案**窗格中，選擇**新增分析方案**。

1. 指定分析方案的名稱，然後選取語言。

1. 選擇**下一步**。

1. 在接下來的三個步驟中，設定配置的文字停止詞、幹線和同義詞選項。您可以設定個別的停用詞、相關字詞和同義詞，或是直接編輯螢幕上顯示的字典。各字典均為 JSON 格式。停用詞指定成字串陣列。相關字詞指定成包含單個或一組「索引鍵:值」配對的物件。同義詞別名也是指定成包含單個或一組「索引鍵:值」配對的 JSON 物件，而其中的別名值是指定成字串陣列。同義詞群組則要指定成 JSON 陣列 (同義詞字典是由陣列構成的陣列)。

   如果您選擇日文做為語言，您也可以選擇指定自訂字符化字典，覆寫特定片語的預設字符化。如需詳細資訊，請參閱[自訂日文字符化](#customizing-japanese-tokenization)。

1. 在摘要頁面上，檢閱分析方案組態，然後選擇**儲存**。

**重要**  
若要使用此分析方案，您必須將其套用於一個或多個 `text` 或 `text-array` 欄位並重建索引。您可以從**索引選項**索引標籤設定欄位的分析方案。若要重建索引，請選擇**動作**、**執行索引**。

## 使用 設定分析結構描述 AWS CLI
<a name="configuring-analysis-schemes-clt"></a>

您可以使用 `aws cloudsearch define-analysis-scheme`命令來定義特定語言的文字處理選項，包括相關選項、停止詞和同義詞。如需安裝和設定 的詳細資訊 AWS CLI，請參閱[AWS Command Line Interface 《 使用者指南》](https://docs.aws.amazon.com/cli/latest/userguide/)。

分析方案要指定成各個 `text` 或 `text-array` 欄位組態的一部分。如需詳細資訊，請參閱[設定索引欄位](configuring-index-fields.md)。

**定義分析方案**
+ 執行 `aws cloudsearch define-analysis-scheme` 命令，並指定 `--analysis-scheme` 選項以及包含各個分析選項的 JSON 物件。分析方案必須是有效的 JSON。分析選項的索引鍵和值配對必須用引號括住，且其選項值內的所有引號必須用反斜線逸出。如需分析選項的格式，請參閱《 AWS CLI 命令參考》中的 [define-analysis-scheme](https://docs.aws.amazon.com/cli/latest/reference/cloudsearch/define-analysis-scheme.html)。如需如何指定相關字詞功能、停用詞和同義詞選項的詳細資訊，請參閱[設定分析方案](#configuring-analysis-schemes)。

  若您指定的語言為日文 (`ja`)，便可另再選擇指定自訂字符化字典，以覆寫特定片語預設的字符化方式。如需詳細資訊，請參閱[自訂日文字符化](#customizing-japanese-tokenization)。
**提示**  
使用 設定分析方案的最簡單方法是將分析方案 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 開發套件設定分析方案
<a name="configuring-analysis-schemes-sdk"></a>

AWS SDKs (Android 和 iOS SDKs除外） 支援 Amazon CloudSearch 組態 API 中定義的所有 Amazon CloudSearch 動作，包括 `DefineAnalysisScheme`。如需安裝與使用 AWS 開發套件的詳細資訊，請參閱 [AWS 軟體開發套件](https://aws.amazon.com/code)。

**重要**  
若要使用此分析方案，您必須將其套用於一個或多個 `text` 或 `text-array` 欄位並重建索引。您可以使用 define index field 方法為各欄位設定其分析方案。如欲重建索引，請使用 index documents 方法。

## Amazon CloudSearch 中中文、日文和韓文的索引摘要
<a name="processing-cjk-fields"></a>

中文、日文和韓文沒有明確的字詞邊界，若純粹對個別字元編製索引 (一元語法) 可能會比對出與搜尋查詢不太相關的項目。一種解決方案即是採*「二元語法」*編製索引。二元語法是指字串中每兩個相鄰字元的序列。例如，以下範例顯示字串​ 我的氣墊船裝滿了鱔魚的二元語法：

```
我的  的氣  氣墊  墊船  船裝  裝滿  滿了  了鱔  鱔魚
```

儘管採二元語法編製索引可提升搜尋結果品質，但請切記其可能會導致您的索引大小明顯增加。

**對中文、日文和韓文採二元語法編製索引**

1. 建立文字分析方案並將語言設為多國語言 (`mul`)。

1. 設定包含 CJK 資料的索引欄位以使用此多國語言分析方案。

當您指派將欄位語言設定為 的分析方案時`mul`，Amazon CloudSearch 會自動產生欄位中所有中文、日文和韓文文字的 Bigram。

如需如何建立與使用分析方案的詳細資訊，請參閱[設定分析方案](#configuring-analysis-schemes)。

若是您對日文內容編製索引，可能還會想要搭配標準日文處理器使用自訂字符化字典。如需詳細資訊，請參閱[自訂日文字符化](#customizing-japanese-tokenization)。

## 在 Amazon CloudSearch 中自訂日文字符化
<a name="customizing-japanese-tokenization"></a>

如果您需要更多控制 Amazon CloudSearch 如何字符化日文，您可以將自訂日文字符化字典新增至您的分析方案。設定自訂字符化字典讓您能夠覆寫標準日文處理器將特定項目字符化的方式。這在某些情況下可以提高搜尋結果的準確性，特別是當您需要對網域專屬片語編製索引和擷取的情況。

字符化字典是一組項目，其中每個項目指定一組字元、字元的字符化方式、各字符的發音方式 (讀音) 以及詞類標籤。此字典是指定成陣列，而每個字典項目皆為字串陣列。各項目的格式如下：

```
["<text>","<token 1> ... <token n>","<reading 1> ... <reading n>","<part-of-speech tag>"]
```

您必須指定各字符的讀音以及項目的詞類標籤。請參閱[日文詞類標籤](#ja_part_of_speech_tags)以了解哪些詞類標籤視同停用詞。

您要在分析方案中使用 `JapaneseTokenizationDictionary` 索引鍵定義自訂字符化字典。由於您將字符化字典以字串形式傳遞至 Amazon CloudSearch，因此您必須逸出字串中的所有雙引號。例如，以下分析方案中的字典指定分段覆寫漢字與片假名複合詞，外加適當人名的自訂讀音：

```
{       
    "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
```

如需如何建立與使用分析方案的詳細資訊，請參閱[設定分析方案](#configuring-analysis-schemes)。

### Amazon CloudSearch 中的日文Part-of-Speech標籤
<a name="ja_part_of_speech_tags"></a>

使用自訂日文字符化字典時，您要指定每個項目的詞類標籤。如果詞類標籤符合任何一個設定為停用標籤的標籤，該項目將視同停用詞。

下表顯示 Amazon CloudSearch 中設定為停止標籤的語音標籤部分。


**停用標籤**  

| Tag | 詞類 | Description | 
| --- | --- | --- | 
| 助動詞 | 助動詞 | 為其所在的字句加強機能或文法語意的動詞。 | 
| 接続詞 | 連接詞 | 可以單獨出現的連接詞。 | 
| フィラー | 填充詞 | 對話時出現的附和語或插入填句的聲音。 | 
| 非言語音 | 非言語音 | 非言語音調。 | 
| その他-間投 | 其他感歎詞 | 難以歸類為名詞接尾辭或文末助詞的單詞。 | 
| 助詞-副詞化 | 助詞-副詞化 | 名詞及副詞後面接續的 "に" 和 "と"。 | 
| 助詞-連体化 | 助詞-副詞化 | 附加至名詞以修飾非轉折字詞的 "の"。 | 
| 助詞-副助詞 | 助詞-副詞 | 表示位置、移動方向等的副詞。 | 
| 助詞-副助詞／並立助詞／終助詞 | 助詞-副詞/接續助詞/語尾助詞 |  無從得知其為副詞、接續助詞或語尾助詞的 "か"。 | 
| 助詞-格助詞-連語 | 助詞-格助詞-複合詞 | 助詞與動詞的複合，主要做為格助詞使用。 | 
| 助詞-格助詞-一般 | 助詞-格助詞-一般 | 格助詞。 | 
| 助詞-格助詞-引用 | 助詞-格助詞-引用 | 出現在名詞、人員談話、引號、會議結論表達、理由、判斷、推測等後面的 "と"。 | 
| 助詞-格助詞 | 助詞-格助詞  | 未定義次級分類的格助詞。 | 
| 助詞-接続助詞 | 助詞-接續助詞 | 接續助詞。 | 
| 助詞-並立助詞 | 助詞-並立助詞 | 並立助詞。 | 
| 助詞-係助詞 | 助詞-係助詞 | 係助詞。 | 
| 助詞-終助詞 | 助詞-語尾助詞 | 語尾助詞。 | 
| 助詞-間投助詞 | 助詞-感嘆助詞 | 文法上具有感嘆詞作用的助詞。 | 
| 助詞-特殊 | 助詞-特殊 | 不符合任何其他分類的助詞。此類包括短歌、俳句及其他詩歌中所使用的助詞。 | 
| 助詞 | 助詞 | 未分類的助詞。 | 
| 記号-括弧閉 | 符號-右括號 | 右括號：]。 | 
| 記号-読点 | 符號-逗號 | 逗號: ,. | 
| 記号-一般 | 符號-一般 | 不屬於任何其他類別的一般符號。 | 
| 記号-括弧開 | 符號-左括號 | 左括號：[。 | 
| 記号-句点 | 符號-句號 | 句點和句號。 | 
| 記号-空白 | 符號-空格 | 全形空白字元。 | 
| 記号 | Symbol | 未分類的符號。 | 