Přidání analyzátorů jazyka do polí řetězců v indexu Azure Kognitivní hledání
Analyzátor jazyka je konkrétní typ analyzátoru textu , který provádí lexikální analýzu pomocí jazykových pravidel cílového jazyka. Každé pole prohledávatelné řetězce má vlastnost Analyzer . Pokud se obsah skládá z přeložených řetězců, jako jsou například samostatná pole pro angličtinu a čínský text, můžete zadat jazykové analyzátory pro každé pole, abyste měli přístup k bohatě lingvistických funkcím těchto analyzátorů.
Kdy použít analyzátor jazyka
Analyzátor jazyka byste měli vzít v úvahu, pokud povědomí o struktuře slov nebo vět přidá hodnotu k analýze textu. Běžným příkladem je přidružení nepravidelných operací formulářů ("přenést" a "převedená") nebo podstatná jména v množném číslech ("myši" a "Mouse"). Bez jazykového povědomí se tyto řetězce analyzují jenom na fyzických vlastnostech, které neumožňují zachycení připojení. Vzhledem k tomu, že velké bloky textu mají větší pravděpodobně obsah, pole obsahující popisy, recenze nebo souhrny jsou vhodnými kandidáty pro analyzátor jazyka.
Analyzátory jazyka byste měli zvážit také v případě, že obsah se skládá z jiných než západních řetězců jazyka. Výchozí analyzátor (standardní Lucene) je Language-nezávislá, koncept použití mezer a speciálních znaků (spojovníky a lomítka) k oddělení řetězců je více použitelný pro západní jazyky, než je západní.
Například v čínštině, japonštině, korejštině (CJK) a dalších asijských jazycích není mezera nutně oddělovačem slov. Vezměte v úvahu následující japonský řetězec. Vzhledem k tomu, že nemá žádné mezery, by nástroj Language-nezávislá Analyzer pravděpodobně analyzoval celý řetězec jako jeden token, když ve skutečnosti je řetězec ve skutečnosti fráze.
これは私たちの銀河系の中ではもっとも重く明るいクラスの球状星団です。
(This is the heaviest and brightest group of spherical stars in our galaxy.)
V příkladu výše by úspěšný dotaz musel obsahovat úplný token nebo částečný token pomocí zástupného znaku přípony, což vede k nepřirozenému a omezení možností vyhledávání.
Lepším řešením je hledat jednotlivá slova: 明るい (světlé), 私たちの (náš), 銀河系 (Galaxy). Použití jednoho z japonských analyzátorů, které jsou k dispozici v Kognitivní hledání, má pravděpodobně odemčení tohoto chování, protože tyto analyzátory jsou lépe vybavené při rozdělování bloku textu na smysluplná slova v cílovém jazyce.
Porovnání aplikací Lucene a Microsoft Analyzer
Azure Kognitivní hledání podporuje analyzátory jazyka 35, které jsou zajištěné pomocí aplikace Lucene a analyzátory jazyka 50 pomocí technologie pro zpracování přirozeného jazyka od microsoftu používané v Office a Bing.
Někteří vývojáři můžou preferovat známé, jednoduché a open source řešení Lucene. Analyzátory jazyka Lucene jsou rychlejší, ale analyzátory Microsoftu mají pokročilé možnosti, jako je lemmatizátor nebo předzpracování, wordová odkódování (v jazycích, jako je němčina, dánština, holandština, švédština, norština, finština, práce, maďarština, slovenština) a rozpoznávání entit (adresy URL, e-maily, data, čísla). Pokud je to možné, měli byste při rozhodování o tom, který z nich nejlépe vyhovuje, spustit porovnání analyzátorů Microsoftu a Lucene. K zobrazení tokenů generovaných z daného textu pomocí konkrétního analyzátoru můžete použít funkci analyzovat rozhraní API .
Indexování pomocí analyzátorů Microsoft Analyzer se v závislosti na jazyku dokončí na průměrně dvakrát až třikrát pomaleji než jejich ekvivalenty Lucene. Pro dotazy na průměrnou velikost by nemělo být významně ovlivněný výkon hledání.
Analyzátory angličtiny
Výchozím analyzátorem je standardní Lucene, který funguje dobře pro angličtinu, ale ne i pro angličtinu nebo analyzátor od Microsoftu pro angličtinu.
Analyzátor angličtiny pro Lucene v angličtině rozšiřuje standardní analyzátor. Odebere possessives (koncovou) z slov, aplikuje odvozování na Porter lemmatizátor Algorithm a odebere anglická slova o stopách.
Microsoft English Analyzer vykonává lemmatizátor nebo předzpracování místo odvozování. To znamená, že může zpracovávat inflected a nepravidelně větší množství slov, což má za následek relevantnější výsledky hledání.
Určení analyzátoru jazyka
Nastavte analyzátor během vytváření indexu, než se načtou s daty.
V definici pole se ujistěte, že je pole s atributem prohledávatelné a je typu EDM. String.
Nastavte vlastnost Analyzer na jeden z analyzátorů jazyka ze seznamu podporovaných analyzátorů.
Vlastnost Analyzer je jedinou vlastností, která bude akceptovat analyzátor jazyka a používá se pro indexování i dotazy. Jiné vlastnosti související s analyzátorem ("searchAnalyzer" a "indexAnalyzer") nepřijmou analyzátor jazyka.
Analyzátory jazyka nelze přizpůsobit. Pokud analyzátor nesplňuje vaše požadavky, můžete se pokusit vytvořit vlastní analyzátor pomocí microsoft_language_tokenizer nebo microsoft_language_stemming_tokenizer a přidat filtry pro zpracování předem a na základě tokenu.
Následující příklad ilustruje specifikace analyzátoru jazyka v indexu:
{
"name": "hotels-sample-index",
"fields": [
{
"name": "Description",
"type": "Edm.String",
"retrievable": true,
"searchable": true,
"analyzer": "en.microsoft",
"indexAnalyzer": null,
"searchAnalyzer": null
},
{
"name": "Description_fr",
"type": "Edm.String",
"retrievable": true,
"searchable": true,
"analyzer": "fr.microsoft",
"indexAnalyzer": null,
"searchAnalyzer": null
},
Další informace o vytvoření indexu a nastavení vlastností pole najdete v tématu vytvoření indexu (REST). Další informace o analýze textu najdete v tématu analyzátory v Azure kognitivní hledání.
Podporované analyzátory jazyka
Níže je uvedený seznam podporovaných jazyků s názvy Lucene a Microsoft Analyzer.
| Jazyk | Název programu Microsoft Analyzer | Název analyzátoru Lucene |
|---|---|---|
| Arabština | ar. Microsoft | ar. Lucene |
| Arménština | HY. Lucene | |
| Bengálština | BN. Microsoft | |
| Baskičtina | EU. Lucene | |
| Bulharština | BG. Microsoft | BG. Lucene |
| Katalánština | CA. Microsoft | CA. Lucene |
| Čínština (zjednodušená) | zh-Hans. Microsoft | zh-Hans. Lucene |
| Čínština (tradiční) | zh-Hant. Microsoft | zh-Hant. Lucene |
| Chorvatština | HR. Microsoft | |
| Čeština | cs. Microsoft | cs. Lucene |
| Dánština | da. Microsoft | da. Lucene |
| Nizozemština | NL – Microsoft | NL – Lucene |
| Angličtina | EN. Microsoft | EN. Lucene |
| Estonština | et. Microsoft | |
| Finština | Fi. Microsoft | Fi. Lucene |
| Francouzština | fr. Microsoft | fr. Lucene |
| Galicijština | HK. Lucene | |
| Němčina | de. Microsoft | de. Lucene |
| Řečtina | El. Microsoft | El. Lucene |
| Gudžarátština | Gu. Microsoft | |
| Hebrejština | IT. Microsoft | |
| Hindština | Dobrý den. Microsoft | Dobrý den. Lucene |
| Maďarština | hu. Microsoft | hu. Lucene |
| Islandština | je. Microsoft | |
| Indonéština (Bahasa) | ID. Microsoft | ID. Lucene |
| Irština | GA. Lucene | |
| Italština | IT. Microsoft | IT. Lucene |
| Japonština | Ja. Microsoft | Ja. Lucene |
| Kannadština | KN. Microsoft | |
| Korejština | Ko. Microsoft | Ko. Lucene |
| Lotyština | Lotyšsko. Microsoft | Lotyšsko. Lucene |
| Litevština | lt. Microsoft | |
| Malajalámština | ml. Microsoft | |
| Malajština (latinka) | MS. Microsoft | |
| Maráthština | Mr. Microsoft | |
| Norština | NB. Microsoft | Ne. Lucene |
| Perština | FA. Lucene | |
| Polština | pl. Microsoft | pl. Lucene |
| Portugalština (Brazílie) | pt-br. Microsoft | pt-br. Lucene |
| portugalština (Portugalsko) | pt-PT. Microsoft | pt-PT. Lucene |
| Paňdžábština | PA. Microsoft | |
| Rumunština | ro. Microsoft | ro. Lucene |
| Ruština | ru. Microsoft | ru. Lucene |
| Srbština (cyrilice) | SR-cyrilice. Microsoft | |
| Srbština (latinka) | SR-Latin. Microsoft | |
| Slovenština | sk. Microsoft | |
| Slovinština | SL. Microsoft | |
| Španělština | ES. Microsoft | ES. Lucene |
| Švédština | sv. Microsoft | sv. Lucene |
| Tamilština | Ta. Microsoft | |
| Telugština | te. Microsoft | |
| Thajština | th. Microsoft | th. Lucene |
| Turečtina | TR. Microsoft | TR. Lucene |
| Ukrajinština | Spojené království. Microsoft | |
| Urdština | vaše společnost. Microsoft | |
| Vietnamština | VI. Microsoft |
Všechny analyzátory s názvy popsanými pomocí Lucene jsou napájené z analyzátorů jazyka Apache Lucene.