Nyelvelemzők hozzáadása sztringmezőkhöz egy Azure AI Search-indexben

A nyelvelemző egy adott típusú szövegelemző , amely lexikális elemzést végez a célnyelv nyelvi szabályaival. Minden kereshető sztringmező rendelkezik elemző tulajdonsággel. Ha a tartalom lefordított sztringekből áll, például az angol és a kínai szöveg külön mezőiből, az egyes mezők nyelvelemzőit is megadhatja az elemzők gazdag nyelvi képességeinek eléréséhez.

Mikor érdemes nyelvelemzőt használni?

Érdemes megfontolni egy nyelvelemzőt, ha a szavak vagy mondatok szerkezetének megismerése értéket ad a szövegelemzéshez. Gyakori példa a szabálytalan igealakok ("bring" és "brought") vagy többes számú főnév ("egerek" és "egér") társítása. A nyelvi tudatosság nélkül ezek a sztringek csak a fizikai jellemzőkre vannak elemezve, ami nem veszi észre a kapcsolatot. Mivel a nagy mennyiségű szöveg nagyobb valószínűséggel rendelkezik ezzel a tartalommal, a leírásokból, véleményekből vagy összefoglalókból álló mezők jó jelöltek egy nyelvelemző számára.

A nyelvelemzőket akkor is érdemes megfontolni, ha a tartalom nem nyugati nyelvű sztringekből áll. Míg az alapértelmezett elemző (Standard Lucene) nyelv-agnosztikus, a szóközök és speciális karakterek (kötőjelek és perjelek) elválasztására való használata a nyugati nyelvekre jobban alkalmazható, mint a nem nyugati nyelvekre.

Például a kínai, japán, koreai (CJK) és más ázsiai nyelvekben a szóköz nem feltétlenül szóelválasztó. Vegye figyelembe a következő japán sztringet. Mivel nincs szóköze, a nyelvi agnosztikus elemző valószínűleg a teljes sztringet egy jogkivonatként elemezné, amikor valójában a sztring valójában egy kifejezés.

これは私たちの銀河系の中ではもっとも重く明るいクラスの球状星団です。
(This is the heaviest and brightest group of spherical stars in our galaxy.)

A fenti példában a sikeres lekérdezésnek tartalmaznia kell a teljes jogkivonatot, vagy egy helyettesítő karaktert használó részleges jogkivonatot, ami természetellenes és korlátozott keresési élményt eredményez.

Egy jobb élmény, ha az egyes szavakat keresi: 明るい (Fényes), 私たちの (Mi), 銀河系 (Galaxis). Az Azure AI Searchben elérhető egyik japán elemző használata nagyobb valószínűséggel oldja fel ezt a viselkedést, mivel ezek az elemzők jobban fel vannak szerelve a szövegrészek jelentéssel bíró szavakra való felosztására a célnyelven.

Lucene és Microsoft Analyzers összehasonlítása

Az Azure AI Search 35, Lucene által támogatott nyelvelemzőt és 50 nyelvelemzőt támogat, amelyeket az Office-ban és a Bingben használt, saját fejlesztésű Microsoft természetes nyelvi feldolgozási technológia támogat.

Egyes fejlesztők előnyben részesíthetik a Lucene ismerősebb, egyszerűbb, nyílt forráskódú megoldását. A Lucene nyelvelemzők gyorsabbak, de a Microsoft-elemzők fejlett képességekkel rendelkeznek, például lemmatizálással, szóbontással (például német, dán, holland, svéd, norvég, észt, finn, magyar, szlovák) és entitásfelismerés (URL-címek, e-mailek, dátumok, számok). Ha lehetséges, futtassa a Microsoft és a Lucene elemzők összehasonlítását, hogy eldöntse, melyik a jobb választás. Az Analyze API használatával megtekintheti az adott szövegből létrehozott jogkivonatokat egy adott elemző használatával.

A Microsoft-elemzőkkel végzett indexelés átlagosan 2-3-szor lassabb, mint a Lucene-megfelelőik, a nyelvtől függően. Az átlagos méretű lekérdezések esetében a keresési teljesítményt nem szabad jelentősen befolyásolni.

Angol elemzők

Az alapértelmezett elemző a Standard Lucene, amely angolul is jól működik, de talán nem olyan jól, mint Lucene angol elemzője vagy a Microsoft angol elemzője.

  • Lucene angol elemzője kibővíti a Standard elemzőt. Eltávolítja a birtokosokat (záró 's-okat) a szavakból, a Porter Stemming algoritmus szerint alkalmazza a forrást, és eltávolítja az angol stop szavakat.

  • A Microsoft angol elemzője lemmatizálást végez a lemmatizálás helyett. Ez azt jelenti, hogy sokkal jobban képes kezelni a felfújt és szabálytalan szavakat, ami relevánsabb keresési eredményeket eredményez.

Nyelvelemző megadása

Állítsa be az elemzőt az index létrehozásakor, mielőtt betöltené az adatokat.

  1. A meződefinícióban győződjön meg arról, hogy a mező "kereshető" és Edm.String típusú.

  2. Állítsa az "analyzer" tulajdonságot a támogatott elemzők listájában szereplő nyelvelemzők egyikére.

    Az "analyzer" tulajdonság az egyetlen tulajdonság, amely elfogadja a nyelvelemzőt, és az indexeléshez és a lekérdezésekhez is használható. Az elemzővel kapcsolatos egyéb tulajdonságok ("searchAnalyzer" és "indexAnalyzer") nem fogadnak el nyelvelemzőt.

A nyelvelemzők nem szabhatók testre. Ha egy elemző nem felel meg a követelményeknek, hozzon létre egy egyéni elemzőt a microsoft_language_tokenizer vagy microsoft_language_stemming_tokenizer, majd adjon hozzá szűrőket a jogkivonat-feldolgozás előtti és utáni feldolgozáshoz.

Az alábbi példa egy index nyelvelemző specifikációját szemlélteti:

{
  "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
    },

Az index létrehozásáról és a mezőtulajdonságok beállításáról további információt az Index létrehozása (REST) című témakörben talál. A szövegelemzéssel kapcsolatos további információkért lásd : Elemzők az Azure AI Searchben.

Támogatott nyelvelemzők

Az alábbiakban látható a támogatott nyelvek listája Lucene és Microsoft-elemzők nevével.

Nyelv Microsoft Analyzer neve Lucene Analyzer neve
Arab ar.microsoft ar.lucene
Örmény hy.lucene
Bangla bn.microsoft
Baszk eu.lucene
Bolgár bg.microsoft bg.lucene
Katalán ca.microsoft ca.lucene
kínai (egyszerűsített) zh-Hans.microsoft zh-Hans.lucene
Kínai (hagyományos) zh-Hant.microsoft zh-Hant.lucene
Horvát hr.microsoft
Cseh cs.microsoft cs.lucene
Dán da.microsoft da.lucene
Holland nl.microsoft nl.lucene
Angolul en.microsoft en.lucene
Észt et.microsoft
finn fi.microsoft fi.lucene
Francia fr.microsoft fr.lucene
Gallego gl.lucene
Német de.microsoft de.lucene
Görög el.microsoft el.lucene
Gudzsaráti gu.microsoft
héber he.microsoft
Hindi hi.microsoft hi.lucene
Magyar hu.microsoft hu.lucene
Izlandi is.microsoft
Indonéz (Bahasa) id.microsoft id.lucene
Ír ga.lucene
Olasz it.microsoft it.lucene
Japán ja.microsoft ja.lucene
Kannada kn.microsoft
Koreai ko.microsoft ko.lucene
Lett lv.microsoft lv.lucene
Litván lt.microsoft
Malajálam ml.microsoft
Maláj (latin) ms.microsoft
Marathi mr.microsoft
norvég nb.microsoft no.lucene
Perzsa fa.lucene
Lengyel pl.microsoft pl.lucene
Portuguese (Brazil) pt-Br.microsoft pt-Br.lucene
Portuguese (Portugal) pt-Pt.microsoft pt-Pt.lucene
Pandzsábi pa.microsoft
Román ro.microsoft ro.lucene
Orosz ru.microsoft ru.lucene
Szerb (cirill betűs) sr-cirillic.microsoft
Szerb (latin betűs) sr-latin.microsoft
Szlovák sk.microsoft
Szlovén sl.microsoft
Spanyol es.microsoft es.lucene
svéd sv.microsoft sv.lucene
Tamil ta.microsoft
Telugu te.microsoft
Thai th.microsoft th.lucene
Török tr.microsoft tr.lucene
Ukrán uk.microsoft
urdu your.microsoft
Vietnámi vi.microsoft

A Lucene-nel jegyzett összes elemzőt Apache Lucene nyelvelemzői működtetik.

Kapcsolódó információk