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.
Alan tanımında, alanın "aranabilir" olarak özniteliklendiğinden ve Edm.String türünde olduğundan emin olun.
"Çö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çe | cs.microsoft | cs.lucene |
Danca | da.microsoft | da.lucene |
Felemenkçe | nl.microsoft | nl.lucene |
İngilizce | en.microsoft | en.lucene |
Estonya Dili | 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 | |
Rumence | 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 | |
Slovence | 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.