Share via


.lu dosya biçimi

ŞUNLAR IÇIN GEÇERLIDIR: SDK v4

.lu dosyası dil anlama modelini açıklar. .lu dosyası, dil anlama kavramları için Markdown benzeri, basit metin tabanlı tanımlar içerir. Language Understanding (LUIS) veya Orchestrator gibi botunuzun kullandığı doğal dil anlama (NLU) hizmeti veya altyapısı için bir dil modeli eğitmek için bir veya daha fazla .lu dosyası kullanabilirsiniz. Seçtiğiniz NLU altyapısı yalnızca bir .lu dosyasının açıklayabilecekleri öğelerin alt kümesini yorumlayabilir.

NLU altyapısı, bir kullanıcının ne dediğini anlamak için dil modeline dayanır. Altyapı, tüm makine öğrenmesi algoritmaları gibi eğitim örnekleri kümesinden bir dil modeli oluşturur. Altyapı eğitildikten sonra modeli kullanarak bir konuşmanın amacını tahmin eder ve genellikle kullanıcının gerçekleştirmek istediği bir görevi veya eylemi temsil eden bir veya daha fazla amaç biçiminde ve amaca uygun öğeleri temsil eden sıfır veya daha fazla varlık oluşturur.

LUIS veya Orchestrator'u Bot Framework SDK'sı veya Oluşturucu kullanılarak geliştirilen herhangi bir botla kullanabilirsiniz.

Dekont

Language Understanding (LUIS) 1 Ekim 2025'te kullanımdan kaldırılacaktır. 1 Nisan 2023'e kadar yeni LUIS kaynakları oluşturamayacaksınız. Dil anlamanın daha yeni bir sürümü artık Azure AI Dili'nin bir parçası olarak kullanılabilir.

Azure AI Dili'nin bir özelliği olan konuşma dili anlama (CLU), LUIS'in güncelleştirilmiş sürümüdür. Bot Framework SDK'sında dil anlama desteği hakkında daha fazla bilgi için bkz . Doğal dil anlama.

Bu makale, dil modeli öğelerini .lu dosya biçiminde temsil etmeye yönelik bir başvurudur. Botlarda dil anlamanın nasıl kullanıldığı hakkında bilgi için bkz . Language Understanding veya Composer'da doğal dil işleme.

Örnek ifadeleri kullanarak amaçları tanımlama

Amaç, kullanıcının ifadesinde belirtildiği gibi kullanıcının gerçekleştirmek istediği bir görevi veya eylemi temsil eder. Botunuza, aynı kullanıcı amacını temsil eden soru veya komut gruplarını tanımlamasını sağlamak için amaçlar eklersiniz.

Bir seyahat botu için tanımlayabileceğiniz amaçlara bazı örnekler ve bunların tanımlandığı örnek konuşmalar:

Amaç Örnek konuşmalar
BookFlight "Gelecek hafta Maui'ye uçak bileti rezervasyonu yap"
"Ayın 17'sinde beni Maui'ye uçur"
"Önümüzdeki Cuma Maui'ye uçak bileti istiyorum"
Selamlama "Merhaba"
"Merhaba"
"İyi günler"
CheckWeather "Gelecek hafta Maui'de hava nasıl?"
None "Kurabiyeleri severim"
"Boğa buzları 7 fitten fazla atlarken kaydedildi"

Tanımladığınız amaçlara ek olarak Hiçbiri, kullanıcıların ifadesinden hiçbir amaç belirlenemediğinde olayın tetiklenmelerine neden unknownIntent olan bir geri dönüş amacıdır. LUIS kullanırken Hiçbiri amacı, etki alanınızın dışındaki ifadelerle oluşturmanız gereken gerekli bir amaçtır. None amacınızla ilişkili konuşmalar, .lu dosyanızdaki toplam konuşmaların yaklaşık %10'unu oluşturmalıdır.

Örnek ifadelerine sahip amaçlar aşağıdaki şekilde bildirilir:

# <intent-name>
    - <utterance1>
    - <utterance2>

# <intent-name> yeni bir amaç tanımı bölümünü açıklar. Amaç tanımından sonraki her satır, biçimi kullanarak - <utterance> amacı açıklayan örnek ifadelerdir.

Aşağıda, bu amaçları gösteren örnek bir .lu dosyası ve kullanıcıların amacı ifade etme yollarını yakalayan örnek konuşmalar verilmiştir:

> Use ">" to create a comment in your .lu files.
> Use multiple comment ">" characters to define outlining
> sections in the file to help you organize the content.

>> Primary intents
# BookFlight
- Book me a flight to Maui next week
- Fly me to Maui on the 17th
- I need a plane ticket next Friday to Maui

# Greeting
- Hi
- Hello
- Good afternoon

>> Secondary intents
# CheckWeather
- What's the weather like in Maui next week?

Dekont

-Listeleri belirtmek için , +veya * karakterini kullanın. Numaralandırılmış listeler desteklenmez.

Açıklama oluşturmak için kullanın > .

İçeriği düzenlemenize yardımcı olması için .lu dosyasındaki ana hat bölümlerini tanımlamak için birden çok açıklama (">") karakteri de kullanılabilir. Composer , LU dosyalarını düzenlerken ana hat oluşturma özelliğinden yararlanmanızı sağlar.

Amaçlar ve konuşmalar hakkında daha fazla bilgi için LUIS belgelerindeki LUIS uygulamanızdaki Amaçlar ve LUIS uygulamanız için iyi ifadelerin ne olduğunu anlama konularına bakın.

Varlıklar

Varlık, bir amacın yorumlanmasında kullanılabilecek bir parametre olarak düşünülebilen bir ifadenin parçasıdır. Örneğin, Maui'ye bilet rezervasyonu yap ifadesinde Maui bir FlightDestination varlığıdır.

Örnek kullanıcı konuşmaları Amaç tahmin edildi Ayıklanan varlıklar Açıklama
Merhaba nasılsın? Selamlama - Ayıklanması gereken varlık yok.
"Maui'ye bir uçuş rezervasyonu yapın" BookFlight "Maui" "FlightDestination" varlığı "Maui" olarak ayıklanır.
"Gelecek hafta Maui'de hava nasıl?" CheckWeather "Maui", "gelecek hafta" "WeatherLocation" varlığı "Maui" olarak ayıklanır ve "DateRange" varlığı "gelecek hafta" olarak ayıklanır.
"Küçük bir pizza sipariş etmek istiyorum" orderPizza "küçük" "Boyut" varlığı "küçük" olarak ayıklanır.
"Dağıtım bölümünde saat 13'te Bob ile toplantı planla" ScheduleMeeting "1pm", "Bob" "MeetingTime" varlığı "1pm" olarak ayıklanır ve "Attendees" varlığı "Bob" olarak ayıklanır.

Bahşiş

LUIS'te varlıkları kullanmaya özgü daha fazla bilgi için LUIS belgelerindeki LUIS'teki varlıklar bölümüne bakın.

Varlık tanımları

Varlık tanımı, konuşmadaki bir yayılma alanının botunuzda kullanabileceğiniz bir varlık olarak nasıl tanınabileceğini tanımlar. Makine öğrenmesi, önceden oluşturulmuş, listeler, normal ifadeler ve desenler gibi birçok farklı varlık türü vardır.

.lu dosyalarındaki varlık tanımları girdiyi at işaretiyle (@) ve ardından varlık ve varlık adı türüyle başlatır:

@ <entity-type> <entity-name>

İsteğe bağlı olarak, her varlığın aynı varlığın farklı kullanımlarını tanımlayan rolleri de olabilir. Varlıkları tanıma konusunda daha iyi bir iş yapmanıza yardımcı olacak özellikler de ekleyebilirsiniz. Genel söz dizimi şöyle görünür:

@ <entity-type> <entity-name> [[hasRole[s]] <comma-separated-list-of-roles>] [hasFeature[s] <comma-separated-list-of-features>]

Liste ve normal ifade varlıkları gibi bir tanım gerektiren varlıklar aşağıdaki gösterimi kullanarak temsil edilir:

@ <entity-type> <entity1-name> = <definition>

Varlık bildirimlerinin ek örnekleri, uygulandıkları varlık türleriyle birlikte aşağıdaki bölümlerde gösterilecektir.

Önceden oluşturulmuş varlıklar dışında, varlık adları boşluklu birden çok sözcük içerebilir. Boşluk içeren tüm varlık adları tırnak içine alınmalıdır:

@ ml "this is a simple entity" role1, role2 = definition
@ ml 'another simple entity' hasRole role1 hasFeatures feature1, feature2

Varlık türleri

LUIS'te çeşitli varlık türleri vardır. Aşağıdaki bölümlerde, bu varlık türleri ve rollerve özellikler gibi ilgili kavramlar ve bunları kullanan LU şablonları oluşturma örnekleri hakkında bilgi edineceksiniz.

Makine tarafından öğrenilen varlık

Makine öğrenmesi varlıkları , örnek konuşmalarda etiketlediğiniz örnekler sağlamanıza olanak tanıyan varlıklardır. Bu, onlara öğrenmesi gereken bağlamı verir. Makine öğrenmesi varlığı, her zaman iyi biçimlendirilmemiş ancak aynı anlama sahip verileri tanımlarken idealdir.

Aşağıdaki örnekte, city (@ ml city) adlı makine öğrenmesi varlığı ve varlıklarınızla etiketlenmiş örnek konuşmalar içeren bir bookFlight amaç gösterilmektedir:

> Define the city machine-learned entity
@ ml city

> Define the bookFlight intent with sample utterances that contain the machine-learned entities
# bookFlight
- Book a flight from {@city = Cairo} to {@city = Seattle}
- Get me 2 tickets for a flight to {@city = Bengaluru}
- Purchase ticket from {@city = Washington} to {@city = Tampa Bay}

Bir kullanıcı "Londra'dan madrid'e uçuşa ihtiyacım var" gibi bir şey söylediğinde, LUIS 'bookFlight' amacını algılar ve hem Londra hem de Madrid'i şehir varlıkları olarak ayıklar.

Roller temelde makine öğrenmesi varlıklarınıza ekleyebileceğiniz ve bağlamsal bilgilerden de öğrenebileceğiniz ek bir bağlamsal bilgi katmanıdır. Aşağıdaki örnek konuşma, şehir varlığıyla ilişkili kalkış ve hedef rolleri gösterir:

- Book a flight from {@city:departure = Cairo} to {@city:destination = Seattle}

Makine öğrenmesi varlıkları, birbirleriyle ilgili bir varlık hiyerarşisine sahip oldukları durumlarda da karmaşık olabilir. Örneğin, aşağıdaki alt varlıklara sahip bir varlığa benzer bir pizzaOrder şeye sahip olabilirsiniz: miktar, boyut, kabuk, toppings vb.

Aşağıdaki örnekte gösterildiği gibi, at işaretine (@) bir tire (-) ve girinti oluşturarak bir alt varlık tanımlarsınız:

@ prebuilt number
@ list sizeList
@ list crustList
@ list toppingList

@ ml pizzaOrder
    - @ number Quantity
    - @ sizeList Size
    - @ crustList Crust
    - @ toppingList Topping

Yukarıdaki örnekte, sayı varlığı önceden oluşturulmuş bir varlıktır. Kalan varlıkların tümü liste varlıklarıdır.

Sonraki örnekte, iki rol ve toAddress alt rol olarak makine öğrenmesi varlığının fromAddress tanımı address gösterilmektedir.

@ list cityList
@ prebuilt number
@ prebuilt geographyV2
@ regex regexZipcode = /[0-9]{5}/
@ ml address hasRoles fromAddress, toAddress
@ address =
    - @ number 'door number'
    - @ ml streetName
    - @ ml location usesFeature geographyV2
        - @ cityList city
        - @ regexZipcode zipcode

Önceden oluşturulmuş varlıklar

Önceden oluşturulmuş LUIS varlıkları sistem tarafından tanımlanır. Bu, yüksek kaliteli olduklarından çalışmanızı kaydeder ve programlarda kullanımı daha kolay olan normalleştirilmiş değerler sağlar. Örneğin, "bin ve iki" tümceciği 1002 sayısı olur. Aşağıdaki LUIS [önceden oluşturulmuş varlık][önceden oluşturulmuş-varlık] türleri desteklenir:

  • yaş
  • datetimeV2
  • boyut
  • e-posta
  • geographyV2
  • Keyphrase
  • Para
  • numara
  • Sıralı
  • ordinalV2
  • yüzde
  • personName
  • Phonenumber
  • sıcaklık
  • url
  • datetime

Önceden oluşturulmuş varlıkları tanımlama örnekleri aşağıda verilmiştir:

@ prebuilt number 
@ prebuilt datetimeV2
@ prebuilt age

Liste varlığı

[Varlıkları listeleme] [list-entity], eş anlamlılarıyla birlikte sabit, kapalı bir ilişkili sözcük kümesini temsil eder. Normalleştirilmiş değer, karşılık gelen eş anlamlılardan herhangi biri tanındığında döndürülür. Büyük/küçük harfe duyarlıdır ve tam metin eşleşmesi temelinde ayıklanır.

Aşağıdaki örnekte liste varlığı tanımlama söz dizimi gösterilmektedir:

@ list <entityName>  =
    - <normalized-value> :
        - <synonym1>
        - <synonym2>
        - ...
    - <normalized-value> :
        - <synonym1>, <synonym2>, ...

Örneği makine öğrenmesi varlığı bölümünden genişleterek pizzaOrder , boyut ve kabuk alt varlıkları için bir liste örneği aşağıda verilmiştir:

@ list sizeList = 
    - Extra Large :
        - extra large
        - XL
        - xl
        - huge
        - massive
    - Large:
        - large
        - big
    - Medium :
        - medium
        - regular
    - Small :
        - small
        - smallest
        - individual

@ list crustList = 
    - Stuffed Crust :
        - stuffed crust
        - stufffed crust
    - Thin :
        - thin
        - thin crust
    - Thick :
        - thick
        - thick crust
        - Deep Dish
        - deep dish

Bahşiş

Bir liste varlığının ayıklanması için tam eşleşme gerektiğinden, sık kullanılan yazım hataları ekleyerek sonuçlarınız iyileştirilebilir. Yazım hatalarını yanlış yazmanın yaygın nedenlerinden biri, yukarıdaki örnekteki "doldurulmuş kabuk" olarak üç katına çıkan çift harf gibi yazma hatalarının bir sonucudur.

Liste varlıklarını kullanırken, doğrudan konuşmada listeden bir değer eklemeniz gerekir, ancak yine de bunları bir düzende yer tutucusu olarak kullanabilirsiniz. Aşağıdaki örnekte, listedeki değerleri içeren bir konuşma gösterilmektedir:

- I'd like to order a large pepperoni stuffed crust pizza.

Normal ifade varlığı

[normal ifade varlığı][regular-expression-entity] sağladığınız normal ifade karakter deseni temelinde bir varlığı ayıklar. Normal ifadeler, yapılandırılmış metin veya belirli bir biçimde beklenen önceden tanımlanmış alfasayısal değerler dizisi için en iyisidir. Örnek:

Varlık Regular expression Örnek
Flight Number (Uçuş Numarası) uçuş [A-Z]{2} [0-9]{4} AS 1234 uçuş
Kredi Kartı Numarası [0-9]{16} 5478789865437632

Aşağıda normal ifade varlık tanımlarının bir örneği verilmiştir:

> Flight Number regular expression entity definition
@ regex flightNumber = /flight [A-Z]{2} [0-9]{4}/

> Credit Card Number regular expression entity definition
@ regex creditCardNumber = /[0-9]{16}/

Roller

Rol, konuşma içindeki bağlama göre bir varlığın adlandırılmış diğer adıdır. Rol, önceden oluşturulmuş veya özel varlık türleriyle kullanılabilir ve hem örnek konuşmalarda hem de desenlerde kullanılır.

Aşağıdaki örnekte Konum varlığının iki rolü origin vardır ve :destination

Varlık Rol Purpose
Konum başlangıç Uçağın kalkış yaptığı yer
Konum destination Uçağın indiği yer

.lu dosya biçimindeki roller açıkça veya örtük olarak tanımlanabilir. Açık rol tanımı şu gösterimi izler:

@ <entityType> <entityName> [hasRole[s]] role1, role2, ...

Varlıkları ve bunların rollerini açıkça tanımlamanın çeşitli yolları aşağıda gösterilmiştir:

> # ml entity definition with roles
> the following are 4 different approaches to define roles:

@ ml name role1, role2

@ ml name hasRoles role1, role2

@ ml name
@ name hasRoles role1, role2

@ ml name
@ name hasRole role1
@ name hasRole role2

Ayrıca, aşağıdaki biçimi kullanarak doğrudan desenlerde ve etiketli ifadelerde rolleri örtük olarak tanımlayabilirsiniz:

{@<entityName>:<roleName>}

Aşağıdaki örnekte rollerin ve userName:lastName rollerin userName:firstName örtük olarak nasıl tanımlandığını görebilirsiniz:

# getUserName
- My first name is {@userName:firstName=vishwac}
- My full name is {@userName:firstName=vishwac} {@userName:lastName=kannan}
- Hello, I'm {@userName:firstName=vishwac}
- {@userName=vishwac} is my name

@ ml userName

Desenlerde, gösterimi kullanarak {<entityName>:<roleName>} rolleri kullanabilirsiniz. Bir örnek aşağıda verilmiştir:

# getUserName
- call me {name:userName}
- I'm {name:userName}
- my name is {name:userName}

Ayrıca, aşağıda görülen desenlerde bir varlık için birden çok rol tanımlayabilirsiniz:

> Roles can be specified for list entity types as well - in this case fromCity and toCity are added as roles to the 'city' list entity defined further below

# BookFlight
- book flight from {city:fromCity} to {city:toCity}
- [can you] get me a flight from {city:fromCity} to {city:toCity}
- get me a flight to {city:toCity}
- I need to fly from {city:fromCity}

$city:Seattle=
- Seattle
- Tacoma
- SeaTac
- SEA

$city:Portland=
- Portland
- PDX

Desenler

[Desenler] [] varlıkların bulunacağı yer tutucularla bir konuşma oluşturarak eşleşmesi gereken çok sayıda örneği ele almanızı sağlar. Desenler, varlıklar için yer tutucuları olan bir belirteç düzeyi normal ifadesidir. Bir konuşmada varlık yer tutucuları veya desen söz dizimi varsa, bu bir desen olarak yorumlanır. Aksi takdirde, makine öğrenmesi eğitimi için bir konuşma olarak yorumlanır.

Varlık yeri sahipleri herhangi bir türdeki varlıklara karşılık gelebilir veya düzendeki bir bölümün çevresindeki sözcüklere bakarak tanımlanan bir varlık olması gibi desenin kendisi tarafından tanımlanabilir.

Desen söz dizimi

.lu dosya biçimi LUIS [Desen söz dizimi][] destekler. Desen söz dizimi, konuşma içine eklenmiş bir şablondur. Şablon hem eşleştirmek istediğiniz sözcükleri hem de varlıkları, yoksaymak istediğiniz sözcükleri ve noktalama işaretlerini içermelidir. Şablon normal bir ifade değildir.

Desenlerdeki varlıklar küme ayraçları {}ile çevrelenir. Desenler varlıkları ve rollere sahip varlıkları içerebilir. [Pattern.any] [pattern-any] yalnızca desenlerde kullanılan bir varlıktır.

Function Sözdizimi İç içe yerleştirme düzeyi Örnek
entity {} -Parantez 2 Where is form {entity-name}?
isteğe bağlı [] - köşeli ayraçlar
İsteğe bağlı ve gruplandırma birleşimlerinin iç içe yerleştirme düzeylerinde 3 sınırı vardır
2 The question mark is optional [?]
gruplandırma () - parantezler 2 is (a \| b)
veya | - dikey çubuk (boru)
Bir gruptaki dikey çubuklarda (Veya) 2 sınırı vardır
- Where is form ({form-name-short} \| {form-name-long} \| {form-number})
konuşmanın başlangıcı ve/veya sonu ^-Şapka - ^begin the utterance
the utterance is done^
^strict literal match of entire utterance with {number} entity^

Daha fazla bilgi için LUIS belgelerindeki [Desen söz dizimi][] makalesine bakın.

Aşağıdaki örnekte, desen tarafından tanımlanan bir varlıkla desen olarak ele alınabilecek bir alarmTime tanım gösterilmektedir:

# DeleteAlarm
- delete the {alarmTime} alarm

"07:00 alarmını sil" ifadesi desenle eşleşir ve "07:00" varlığını tanır alarmTime .

Buna karşılık, aşağıdaki örnek etiketlenmiş bir konuşmadır ve alarmTime burada 7:00 etiketli bir değere sahip olduğundan makine tarafından öğrenilen bir varlıktır:

# DeleteAlarm
- delete the {alarmTime=7AM} alarm

Varlık etiketlerini ve varlık yer tutucularını aynı konuşmada karıştıramazsınız, ancak makine öğrenmesi varlıklarına karşılık gelen yer tutucuları kullanabilirsiniz.

Bahşiş

Desenler örnek konuşmalardan daha ağır olduğundan ve güveni çarpıtacağından, desenleri eklemeden önce botunuzun kullanıcı girişlerine nasıl yanıt verdiğini anlamanız gerekir. Model tasarımınızın başına eklemenin bir zararı yoktur, ancak model konuşmalarla test edildikten sonra her desenin modeli nasıl değiştirdiğini görmek daha kolaydır.

Tümcecik listesi

[tümcecik listesi][tümcecik-listesi], tanımlamaya çalıştığınız kavramı bulmanıza yardımcı olan sözcüklerin veya tümceciklerin listesidir. Liste büyük/küçük harfe duyarlı değildir. Tümcecik listelerinin iki farklı amacı vardır:

  • Sözlüğü genişletme: Bir tümcecik listesi tanımladığınızda varsayılan değer budur ve birbirinin yerine kullanılamaz olarak bilinir. Çok sözcüklü tümcecikler, makine öğrenmesi için daha az örnek gerektiren bir özellik haline gelir. Bu kullanımda aşama listesinin üyeleri arasında ilişki yoktur.
  • Eş anlamlıları tanımlama: Aynı anlama gelen eş anlamlıları tanımlamak için değiştirilebilir tümcecik listeleri kullanılır. Bu kullanım daha az örnekle genelleştirmeye yardımcı olur. Listedeki tümcecikler makine öğrenmesi için aynı özelliğe neden olur. Bunu kullanmak için tümcecik liste tanımınızda (@ phraselist <Name>(interchangeable)) belirtme interchangeable gerekir

Dekont

bir özellik, kullanıcı amacını doğru algılamada bu özelliğin önemini vurgulayan bir amaç veya varlıkla ilişkilendirdiğiniz bir tümcecik listesi veya varlık olabilir. Daha fazla bilgi için bkz . Özellik olarak tümcecik listesi ekleme.

Kullanıldıkları tipik senaryolar da dahil olmak üzere tümcecik listelerinin ne zaman ve nasıl kullanılacağı hakkında ek bilgi için bkz. [Kavram için tümcecik listesi oluşturma][tümcecik-listesi].

Aşağıdaki gösterimi kullanarak tümcecik listeleri tanımlarsınız:

@ phraselist <Name>
    - <phrase1>
    - <phrase2>

Sözlüğü genişletmek için kullanılan bir tümcecik listesi örneği aşağıda verilmişti:

@ phraseList newTerms=
- surf the sky
- jump on the beam
- blue sky pajamas

Tümcecik listeleri, eş anlamlıları birbirinin yerine değiştirilebilir olarak işaretleyerek tanımlamak için de kullanılabilir.

@ phraseList Want(interchangeable) =
    - require, need, desire, know

> You can also break up the phrase list values into a bulleted list
@ phraseList Want(interchangeable) =
    - require
    - need
    - desire
    - know

Varsayılan olarak, tümcecik listeleri tüm öğrenilen amaçlar ve varlıklar tarafından kullanılabilir. Üç kullanılabilirlik durumu vardır:

Kullanılabilirlik Durumu Tanım
enabledForAllModels (varsayılan) Bir tümcecik listesi olarak enabledForAllModelsişaretlendiğinde, özellikle bir özellik olarak listeleseniz de listeleseniz de olmasa da tüm modeller tarafından kullanılabilir.
disabledForAllModels Bir tümcecik listesi olarak disabledForAllModelsişaretlendiğinde, yalnızca özellikle özellik olarak listeleniyorsa modelde kullanılır.
devre dışı Bir tümcecik listesi olarak disabledişaretlendiğinde, özellikle özellik olarak listelendiği modeller de dahil olmak üzere hiçbir yerde kullanılmaz. Bu, öğelerin onsuz ne kadar iyi çalıştığını görmek için bir tümcecik listesini kapatmak için kolay bir araç sağlar.

Tümcecik listeleri varsayılan olarak genel olarak kullanılabilir ve anahtar sözcüğü kullanılarak enabledForAllModels özel olarak ayarlanabilir:

@ phraselist abc enabledForAllModels

tümcecik listesini olarak ayarlamaya disabledForAllModelsiki örnek:

@ phraselist abc disabledForAllModels

> You can also use this approach
@ phraselist question(interchangeable) =
    - are you
    - you are

@ question disabledForAllModels

Tümcecik listesini olarak disabledayarlarken, özellikle özellik olarak listelenmiş olsa bile kullanılmaz:

> phrase list definition, temporarily set to disabled to measure its impact

@ phraselist yourPhraseList disabled

> phrase list as feature to intent, won't be used

@ intent yourIntent usesFeature yourPhraseList

Tümcecik listeleri, sonraki bölümde açıklandığı gibi belirli amaçlar ve varlıklar için özellik olarak kullanılabilir.

Amaçlara ve varlıklara özellik ekleme

Makine öğrenmesi, özellikleri alarak ve örnek konuşmalardan istenen amaç veya varlıkla nasıl ilişkilendirdiklerini öğrenerek çalışır. Varsayılan olarak, özellikler yalnızca konuşmaları oluşturan sözcüklerdir. Tümcecik listeleri, birden çok sözcüğü yeni bir özellikte gruplandırmak için bir araç sağlar; bu, makine öğrenmesinin daha az örnekle daha iyi genelleştirilmesini sağlar. Varsayılan olarak, tümcecik listeleri geneldir ve tüm makine öğrenmesi modellerine uygulanır, ancak bunları belirli amaçlara veya varlıklara da bağlayabilirsiniz. Diğer amaçları varlık olarak algılamak için amaçları veya varlıkları özellik olarak da kullanabilirsiniz. Bu, daha basit yapı bloklarından daha karmaşık kavramlar oluşturabilmeniz için modülerlik sağlar.

Dekont

Makine öğrenmesinde özellik, sisteminizin gözlemlediği ve öğrendiği verilerin ayırt edici özelliğini veya özniteliğini açıklayan metindir. Tümcecik listeleri, amaçlar ve varlıklar, bu ve aşağıdaki bölümlerde açıklandığı gibi özellik olarak kullanılabilir.

Özellikler, anahtar sözcüğü kullanılarak usesFeature öğrenilen herhangi bir amada veya varlığa eklenebilir.

Özellik olarak tümcecik listesi ekleme

Tümcecik listeleri amaçlara veya varlıklara özellik olarak eklenebilir. Bu, diğer amaçları ve varlıkları etkilemeden bu belirli amaçlara veya varlıklara yardımcı olur. Bir tümcecik listesinin başka bir modele özellik olarak nasıl tanımlanacağına yönelik bir örnek aşağıda verilmişti:

> phrase list definition

@ phraseList PLCity(interchangeable) =
    - seattle
    - space needle
    - SEATAC
    - SEA

> phrase list as feature to intent 

@ intent getUserProfileIntent usesFeature PLCity

> phrase list as a feature to an ml entity

@ ml myCity usesFeature PLCity

@ regex regexZipcode = /[0-9]{5}/

> a phrase list is used as a feature in a hierarchal entity

@ ml address fromAddress, toAddress
@ address =
    - @ number 'door number'
    - @ ml streetName
    - @ ml location
        - @ ml city usesFeature PLCity
        - @ regexZipcode zipcode

Özellik olarak varlık veya amaç ekleme

Aşağıda ile usesFeatureözellik olarak amaçların ve varlıkların nasıl ekleneceğine yönelik örnekler verilmiştir:

> entity definition - @ <entityType> <entityName> [<roles>]

@ prebuilt personName
@ prebuilt age

> entity definition with roles

@ ml userName hasRoles fistName, lastName

> add an entity as a feature to another entity

@ userName usesFeature personName

> add an entity as feature to an intent

@ intent getUserNameIntent usesFeature personName

> Intent definition

# getUserNameIntent
- utterances

> multiple entities as a feature to a model

@ intent getUserNameIntent usesFeature age, personName

> intent as a feature to another intent

@ intent getUserProfileIntent usesFeature getUserNameIntent

# getUserProfileIntent
- utterances

Meta veri

.lu dosyasına LUIS uygulamanız veya Soru-Cevap Oluşturma bilgi bankası ilgili meta verileri ekleyebilirsiniz. Bu, ayrıştırıcıyı LU içeriğini doğru işlemeye yönlendirmeye yardımcı olur. Meta veriler genellikle .lu dosyasının başına eklenir.

!# kullanarak > yapılandırma bilgilerini şu şekilde tanımlayabilirsiniz:

> !# @<property> = <value>
> !# @<scope>.<property> = <value>
> !# @<scope>.<property> = <semicolon-delimited-key-value-pairs>

CLI bağımsız değişkenleri aracılığıyla açıkça geçirilen tüm bilgilerin .lu dosyasındaki bilgileri geçersiz kılacağını unutmayın.

> LUIS application information
> !# @app.name = my luis application
> !# @app.desc = description of my luis application
> !# @app.versionId = 1.0
> !# @app.culture = en-us
> !# @app.luis_schema_version = 7.0.0
> !# @app.settings.NormalizePunctuation = true
> !# @app.settings.NormalizeWordForm = true
> !# @app.settings.UseAllTrainingData = true
> !# @app.tokenizerVersion = 1.0.0

Yukarıdaki örnekte kullanılan uygulama meta veri değerlerinin açıklaması için aşağıdaki tabloya bakın. LUIS'teki app.settings hakkında bilgi için LUIS belgelerindeki [Uygulama ve sürüm ayarları][luis-metadata] bölümüne bakın.

Meta veri Tanım
Kuruluş adı Uygulamanızın adı
VersionId Bu belirli sürümün adı
Kültür Uygulamanız tarafından kullanılan dil
Şema Sürümü LUIS şeması, LUIS'e yeni bir özellik veya ayar eklendiğinde güncelleştirilir. LUIS modelinizi oluştururken veya güncelleştirirken kullandığınız şema sürüm numarasını kullanın.

Harici referanslar

Aşağıdaki bölümlerde, yerel dosya ve URI başvurularının nasıl yapılacağını ayrıntılı olarak bulabilirsiniz.

Yerel dosya başvuruları

Dekont

Azure Yapay Zeka Soru-Cevap Oluşturma 31 Mart 2025 tarihinde kullanımdan kaldırılacaktır. 1 Ekim 2022 tarihinden itibaren yeni QnA Maker kaynakları veya bilgi bankası makaleleri oluşturamazsınız. Soru ve yanıtlama özelliğinin daha yeni bir sürümü artık Azure AI Dili'nin bir parçası olarak kullanılabilir.

Azure AI Dili'nin bir özelliği olan özel soru yanıtlama, Soru-Cevap Oluşturma hizmetinin güncelleştirilmiş sürümüdür. Bot Framework SDK'sında soru-cevap desteği hakkında daha fazla bilgi için bkz . Doğal dil anlama.

.lu dosyasına başvurur. Markdown bağlantı söz dizimlerini izleyin. Desteklenen başvurular şunlardır:

  • aracılığıyla [link name](<.lu file name>)başka bir .lu dosyasına başvuru. Başvuru, mutlak bir yol veya içeren .lu dosyasından göreli bir yol olabilir.
  • Diğer .lu dosyalarına sahip bir klasöre başvuru şu şekilde desteklenir:
    • [link name](<.lu file path>*): belirtilen mutlak veya göreli yol altında .lu dosyalarını arar
    • [link name](<.lu file path>**): alt klasörler de dahil olmak üzere belirtilen mutlak veya göreli yol altında .lu dosyalarını özyinelemeli olarak arar.
  • Ayrıca, amaç bölümü altında veya Soru-Cevap çiftleri olarak belirli bir dosyada tanımlanan ifadelere başvurular ekleyebilirsiniz.
    • [link name](<.lu file path>#<INTENT-NAME>): .lu dosyasında INTENT-NAME> altındaki <tüm konuşmaları bulur ve başvurunun belirtildiği konuşmalar listesine ekler.
    • [link name](<.lu file path>#<INTENT-NAME>*utterances*): .lu dosyasında INTENT-NAME> altındaki <tüm ifadeleri (desenleri değil) bulur ve bunları başvurunun belirtildiği konuşmalar listesine ekler.
    • [link name](<.lu file path>#<INTENT-NAME>*patterns*): .lu dosyasında INTENT-NAME> altındaki <tüm desenleri (konuşmaları değil) bulur ve bunları başvurunun belirtildiği desenler listesine ekler.
    • [link name](<.lu file path>#*utterances*): .lu dosyasındaki tüm konuşmaları bulur ve başvurunun belirtildiği konuşmalar listesine ekler.
    • [link name](<.lu file path>#*patterns*): .lu dosyasındaki tüm desenleri bulur ve bunları başvurunun belirtildiği konuşmalar listesine ekler.
    • [link name](<.lu file path>#*utterancesAndPatterns*): .lu dosyasındaki tüm konuşmaları ve desenleri bulur ve başvurunun belirtildiği konuşmalar listesine ekler.
    • [link name](<.qna file path>#$name?): .qna içeriğindeki belirli değişiklik tanımındaki tüm değişiklikleri bulur ve bunları başvurunun belirtildiği konuşmalar listesine ekler.
    • [link name](<.qna file path>#*alterations*?): .qna içeriğindeki tüm değişiklikleri bulur ve başvurunun belirtildiği konuşmalar listesine ekler.
    • [link name](<.qna file path>#?question-to-find?): belirli bir sorudaki tüm varyasyon sorularını bulur ve başvurunun belirtildiği konuşmalar listesine ekler. Sorunuzdaki tüm boşlukların karakterle - değiştirilmesi gerektiğini unutmayın.
    • [link name](<.qna file path>#*answers*?): tüm yanıtları bulur ve başvurunun belirtildiği konuşmalar listesine ekler.

Aşağıda yukarıda belirtilen başvurulara bir örnek verilmiştir:

> You can include references to other .lu files

[All LU files](./all.lu)

> References to other files can have wildcards in them

[en-us](./en-us/*)

> References to other lu files can include subfolders as well.
> /** indicates to the parser to recursively look for .lu files in all subfolders as well.

[all LU files](../**)

> You can include deep references to intents defined in a .lu file in utterances

# None
- [None uttearnces](./all.lu#Help)

> With the above statement, the parser will parse all.lu and extract out all utterances associated with the 'Help' intent and add them under 'None' intent as defined in this file.

> NOTE: This **only** works for utterances as entities that are referenced by the uttearnces in the 'Help' intent won't be brought forward to this .lu file.

# All utterances
> you can use the *utterances* wild card to include all utterances from a lu file. This includes utterances across all intents defined in that .lu file.
- [all.lu](./all.lu#*utterances*)
> you can use the *patterns* wild card to include all patterns from a lu file.
> - [all.lu](./all.lu#*patterns*)
> you can use the *utterancesAndPatterns* wild card to include all utterances and patterns from a lu file.
> - [all.lu](./all.lu#*utterancesAndPatterns*)

> You can include wild cards with deep references to QnA maker questions defined in a .qna file in utterances

# None
- [QnA questions](./*#?)

> With the above statement, the parser will parse **all** .lu files under ./, extract out all questions from QnA pairs in those files and add them under 'None' intent as defined in this file.

> You can include deep references to QnA maker questions defined in a .qna file in utterances

# None
- [QnA questions](./qna1.qna#?)

> With the above statement, the parser will parse qna1.lu and extract out all questions from QnA pairs in that file and add them under 'None' intent as defined in this file.

URI başvuruları

Aşağıda URI başvuruları yapma örnekleri verilmiştir:

> URI to LU resource
[import](http://.../foo.lu)

# intent1
> Ability to pull in specific utterances from an intent
- [import](http://.../foo.lu#None)

# intent2
> Ability to pull in utterances or patterns or both from a specific intent 'None'
- [import](http://..../foo.lu#None*utterances*)
- [import](http://..../bar.lu#None*patterns*)
- [import](http://..../taz.lu#None*utterancesandpatterns*)

# intent3
> Ability to pull in all utterances or patterns or both across all intents
- [import](http://..../foo.lu#*utterances*)
- [import](http://..../bar.lu#*patterns*)
- [import](http://..../taz.lu#*utterancesandpatterns*)

Ek Bilgi

  • .qna dosyaları hakkında daha fazla bilgi için .qna dosya biçimini okuyun.