Azure AI Search dizinindeki dize alanlarına dil çözümleyicileri ekleme

Dil çözümleyicisi, hedef dilin dil kurallarını kullanarak sözcük analizi gerçekleştiren belirli bir metin çözümleyici türüdür. Aranabilir her dize alanının bir çözümleyici özelliği vardır. İçeriğiniz İngilizce ve Çince metinler için ayrı alanlar gibi çevrilmiş dizelerden oluşuyorsa, bu çözümleyicilerin zengin dil özelliklerine erişmek için her alanda dil çözümleyicileri belirtebilirsiniz.

Dil çözümleyicisi ne zaman kullanılır?

Sözcük veya cümle yapısının farkındalığı metin ayrıştırmaya değer kattığında bir dil çözümleyicisi düşünmelisiniz. Yaygın bir örnek, düzensiz fiil biçimlerinin ("getir" ve "getir) veya çoğul isimlerin ("fare" ve "fare") ilişkisidir. Dil farkındalığı olmadan, bu dizeler yalnızca fiziksel özelliklere göre ayrıştırılır ve bu da bağlantıyı yakalayamaz. Büyük metin öbeklerinin bu içeriğe sahip olma olasılığı daha yüksek olduğundan, açıklamalardan, incelemelerden veya özetlerden oluşan alanlar dil çözümleyicisi için iyi adaylardır.

İçerik Batı dili dışındaki dizelerden oluştuğunda dil çözümleyicilerini de göz önünde bulundurmalısınız. Varsayılan çözümleyici (Standart Lucene) dilden bağımsız olsa da, dizeleri ayırmak için boşluk ve özel karakter (kısa çizgi ve eğik çizgi) kullanma kavramı Batılı olmayan dillere göre Batı dilleri için daha geçerlidir.

Örneğin, Çince, Japonca, Korece (CJK) ve diğer Asya dillerinde boşluk mutlaka sözcük sınırlayıcısı değildir. Aşağıdaki Japonca dizeyi göz önünde bulundurun. Boşluk olmadığından, dil belirsiz bir çözümleyici büyük olasılıkla dizenin tamamını tek bir belirteç olarak analiz eder, aslında dize aslında bir tümceciktir.

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

Yukarıdaki örnekte başarılı bir sorgunun tam belirteci veya sonek joker karakteri kullanan kısmi bir belirteci içermesi gerekir ve bu da doğal olmayan ve sınırlayıcı bir arama deneyimine neden olur.

Tek tek sözcükleri aramak daha iyi bir deneyimdir: 明るい (Parlak), 私たちの (Bizim), 銀河系 (Galaxy). Bu çözümleyiciler metin öbeklerini hedef dilde anlamlı sözcüklere bölmede daha iyi donanıma sahip olduğundan, Azure AI Search'te kullanılabilen Japonca çözümleyicilerden birinin kullanılması bu davranışın kilidini açma olasılığı daha yüksektir.

Lucene ve Microsoft Analyzers karşılaştırması

Azure AI Search, Lucene tarafından desteklenen 35 dil çözümleyicisini ve Office ve Bing'de kullanılan özel Microsoft doğal dil işleme teknolojisi tarafından desteklenen 50 dil çözümleyicisini destekler.

Bazı geliştiriciler Lucene'in daha tanıdık, basit ve açık kaynak çözümünü tercih edebilir. Lucene dil çözümleyicileri daha hızlıdır, ancak Microsoft çözümleyicileri lemmatizasyon, sözcük ayrıştırma (Almanca, Danca, Felemenkçe, İsveççe, Norveççe, Estonca, Fince, Macarca, Slovakça gibi dillerde) ve varlık tanıma (URL'ler, e-postalar, tarihler, sayılar) gibi gelişmiş özelliklere sahiptir. Mümkünse, hangisinin daha uygun olduğuna karar vermek için hem Microsoft hem de Lucene çözümleyicilerinin karşılaştırmalarını çalıştırmanız gerekir. Belirli bir çözümleyiciyi kullanarak belirli bir metinden oluşturulan belirteçleri görmek için Çözümle API'sini kullanabilirsiniz.

Microsoft çözümleyicileriyle dizin oluşturma, dile bağlı olarak Lucene eşdeğerlerinden ortalama iki-üç kat daha yavaştır. Ortalama boyut sorguları için arama performansı önemli ölçüde etkilenmemelidir.

İngilizce çözümleyiciler

Varsayılan çözümleyici, İngilizce için iyi çalışan, ancak Lucene'in İngilizce çözümleyicisi veya Microsoft'un İngilizce çözümleyicisi gibi iyi olmayan Standard Lucene'dir.

  • Lucene'in İngilizce çözümleyicisi Standart çözümleyiciyi genişletir. Sözcüklerden sahiplik (sondaki 'ler) kaldırır, Porter Stemming algoritmasına göre köklendirme uygular ve İngilizce durdurma sözcüklerini kaldırır.

  • Microsoft'un İngilizce çözümleyicisi kök oluşturma yerine lemmatizasyon gerçekleştirir. Bu, daha ilgili arama sonuçlarına neden olacak şekilde, sıkıştırılmış ve düzensiz sözcük formlarını çok daha iyi işleyebileceği anlamına gelir.

Dil çözümleyicisi belirtme

Dizin oluşturma sırasında verilerle yüklenmeden önce çözümleyiciyi ayarlayın.

  1. Alan tanımında, alanın "aranabilir" olarak özniteliklendiğinden ve Edm.String türünde olduğundan emin olun.

  2. "Çözümleyici" özelliğini desteklenen çözümleyiciler listesindeki dil çözümleyicilerinden birine ayarlayın.

    "Çözümleyici" özelliği, dil çözümleyicisini kabul edecek tek özelliktir ve hem dizin oluşturma hem de sorgular için kullanılır. Çözümleyiciyle ilgili diğer özellikler ("searchAnalyzer" ve "indexAnalyzer") dil çözümleyicisini kabul etmez.

Dil çözümleyicileri özelleştirilemiyor. Bir çözümleyici gereksinimlerinizi karşılamıyorsa, microsoft_language_tokenizer veya microsoft_language_stemming_tokenizer ile özel bir çözümleyici oluşturun ve ardından ön ve son belirteç işleme için filtreler ekleyin.

Aşağıdaki örnekte bir dizindeki dil çözümleyicisi belirtimi gösterilmektedir:

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

Dizin oluşturma ve alan özelliklerini ayarlama hakkında daha fazla bilgi için bkz . Dizin Oluşturma (REST). Metin analizi hakkında daha fazla bilgi için bkz . Azure AI Search'te Çözümleyiciler.

Desteklenen dil çözümleyicileri

Aşağıda Lucene ve Microsoft çözümleyici adlarını içeren desteklenen dillerin listesi yer almaktadır.

Dil Microsoft Analyzer Adı Lucene Analyzer Adı
Arapça ar.microsoft ar.lucene
Ermenice hy.lucene
Bangla bn.microsoft
Baskça eu.lucene
Bulgarca bg.microsoft bg.lucene
Katalanca ca.microsoft ca.lucene
Basitleştirilmiş Çince zh-Hans.microsoft zh-Hans.lucene
Geleneksel Çince zh-Hant.microsoft zh-Hant.lucene
Hırvatça hr.microsoft
Çek Dili cs.microsoft cs.lucene
Danca da.microsoft da.lucene
Hollandaca nl.microsoft nl.lucene
İngilizce en.microsoft en.lucene
Estonca et.microsoft
Fince fi.microsoft fi.lucene
Fransızca fr.microsoft fr.lucene
Galiçya Dili gl.lucene
Almanca de.microsoft de.lucene
Yunanca el.microsoft el.lucene
Gucerat dili gu.microsoft
İbranice he.microsoft
Hintçe hi.microsoft hi.lucene
Macarca hu.microsoft hu.lucene
İzlandaca is.microsoft
Endonezya dili (Bahasa) id.microsoft id.lucene
İrlandaca ga.lucene
İtalyanca it.microsoft it.lucene
Japonca ja.microsoft ja.lucene
Kannada dili kn.microsoft
Korece ko.microsoft ko.lucene
Letonca lv.microsoft lv.lucene
Litvanca lt.microsoft
Malayalam dili ml.microsoft
Malay dili (Latin) ms.microsoft
Marathi mr.microsoft
Norveççe nb.microsoft no.lucene
Farsça fa.lucene
Lehçe pl.microsoft pl.lucene
Portekizce (Brezilya) pt-Br.microsoft pt-Br.lucene
Portekizce (Portekiz) pt-Pt.microsoft pt-Pt.lucene
Pencapça pa.microsoft
Romence ro.microsoft ro.lucene
Rusça ru.microsoft ru.lucene
Sırpça (Kiril) sr-cyrillic.microsoft
Sırpça (Latin) sr-latin.microsoft
Slovakça sk.microsoft
Slovakça sl.microsoft
İspanyolca es.microsoft es.lucene
İsveççe sv.microsoft sv.lucene
Tamil dili ta.microsoft
Telugu dili te.microsoft
Tayca th.microsoft th.lucene
Türkçe tr.microsoft tr.lucene
Ukraynaca uk.microsoft
Urduca your.microsoft
Vietnamca vi.microsoft

Lucene ile ek açıklamalı adlara sahip tüm çözümleyiciler Apache Lucene'in dil çözümleyicileri tarafından desteklenir.

Ayrıca bkz.