Emulate a NER (Entity Recognition) module as part of a business application.
Consider the application context:
 The module is supposed to handle the diverse ways a user can formulate his requests within a modeled conversational flow that feeds into the business process.
 The slots provided by the NER module are used to steer the conversation.
 The main goal is to sell the products of a telco company.
 That is why the objective is to let the user interact with a chatbot that helps him identify the personalized best available solution and product from the companies catalog.
 The product of the telco company are tariffs
 - Tariffs have names,
 a contract duration,
 1-5 of sim cards,
 a numerical expressed data volume in GB or unlimited data (represented as -1),
 a price that has to be payed once and a monthly price.
 - In relation to the sim cards, the contract duration and the prices are established by the business process,
 For each sim card a smartphones can optionally be booked.
 Depending on the chosen smartphones the aforementioned prices and the contract duration will be adapted by the business process.
 The user can chose to book a smartphone for each or none of the chosen sim cards that belong to the tariff,
 The user can chose how many sim cards he wants to book,
 Sim cards can be for adults or for children,
 The buisness process only considers smartphones and tariffs that are available for booking with the telco company.
 This is why they have to be specified in a structured way before the slots can be finalized.
 The entity values for tariffs and smartphones are contained in the following JSON structre:
 {
 tariffs: [
 {
 name: 'Blue S',
 dataVolumeGB: 5
 },
 {
 name: 'Blue M',
 dataVolumeGB: 10
 },
 {
 name: 'Blue L',
 dataVolumeGB: 15
 },
 {
 name: 'Blue XL',
 dataVolumeGB: -1
 }
 ], smartphones: [
 {
 vendor: 'Apple'
 name: 'iPhone 13',
 os: 'iOS'
 memoryOptions: [128, 256, 512],
 cameraMP: 12,
 qualityRating: 1
 },
 {
 vendor: 'Samsung'
 name: 'Galaxy 10',
 os: 'Android'
 memoryOptions: [128, 256],
 cameraMP: 24,
 speedRating: .8
 },
 {
 vendor: 'Xiaomi'
 name: '12t',
 os: 'Android'
 memoryOptions: [128, 256],
 cameraMP: 18,
 speedRating: .4
 }
 ]}

The user might describe what kinds of features he wishes for his tariff and optional smartphone.
These goals that the user utters might given as attributes of human language or as concreate values.
For example user might say "I want a smartphone with lots of memory" or "I want a smartphone with at least 256GB" (ref A1).
That slot filling process performed by the NER will use an NLU emulation to map a human language attribution to a distinct value of a given scale for slots where this is specifed.
This involves performing a ranking of attributes as they are used in common language by humans.
For example the statement "A simple smartphone" would result in slot 9 to have the value approx .1, "A good smartphone" should have a value of approx .5, "The best smartphone" should have value 1.

Now establish following slots and make the emulation adhere to their respecitive specification.
Use the previously given context information solely as a help to establish entity values and synonyms and knowledge on possible attributions.
For each slot map to the aimed data type when performing the NER emulation.
All Slots named ending on 'rel' have to convert humanly uttered attributions to distinct float values as described previously.
If the source utterances mentions concreate disinct values for slots, fill the slots ending on 'abs' instead (e.g. "256GB memory").
Prefere "abs" over "rel" slots for a concept and do not use both for the same concept (see ref A1).
In Other words when emulating NER use the entity specification and mapping description to generate the Aimed Type.
| Number | Slot name | Entity specification | Mapping description, range | Aimed Type to map slot value into |
|--------|---------------------------|-------------------------------------------------------------------------------------------------------------------------------------------------|-------------------------------------------------------------------------------------------------------------------------|-----------------------------------|
| 1 | Tariff name | the tariff that the user wants to book | source the entity values from the given JSON and expect the user to possibly slightly diverge from the correct spelling | string |
| 2 | Amount Sim cards | Number of sim cards, from min 1 to max 5 | textual or numeric stated amount into integer | integer |
| 3 | Tariffs data volume | Amount of monthly data traffic included in tariff in GB | textual or numeric stated amount into integer, unlimited data volume represented by -1 | integer |
| 4 | Smartphone vendor | uttered desired smartphone vendor | textual stated make / vendor of the smartphone that user wants to book, take from provided JSON | string |
| 5 | Smartphone name | uttered desired smartphone product name | textual stated name for a marketed smartphone that user wants to book, take from provided JSON | string |
| 6 | Memory size abs | uttered desired absolute amount of main storage memory in GB that the smartphone should have | numberic representation of the stated memory size in GB | integer |
| 7 | Price constraint abs | uttered numberic maximum desired price as monthy cost in EUR | price in EUR per month | integer |
| 8 | Memory size rel | uttered desired amount of main memory capacity for attributions like much, a bit, little, very good, etc | ranking as a float value from 0 (for low) to 1 (for most) memory | float |
| 9 | Camera quality rel | uttered desired quality of main storage for attributions like super, cool, good, top, etc | ranking as a float value from 0 (for low) to 1 (for best) camera quality | float |
| 10 | Smartphone quality rel | uttered desired overall smartphone quality for freely uttered attributions like super, cool, good, top, perfect, etc | ranking as a float value from 0 (for low) to 1 (for best) quality | float |
| 11 | Tariff quality rel | uttered desired overall tariff quality for freely uttered attributions like ok, super, good, appropriate, good enough, etc | ranking as a float value from 0 (for low) to 1 (for best) quality | float |
| 12 | Product usage profile rel | uttered tariff and or data usage frequency as rating for what tier of tariff would be matching the user best | ranking as a float value from 0 (for low usage) to 1 (for power user) quality | float |
| 13 | Price constraint rel | freely uttered desired price constraint as interpretation for attributions like cheap, modestly priced, low cost, fair, expensive, premium, etc | ranking as a float value from 0 (for cheapest) to 1 (for most expensive) price | float |
비즈니스 애플리케이션의 일부로 NER(엔티티 인식) 모듈을 뮬레이션할 수 있습니다.
애플리케이션 컨텍스트를 고려하세요:
 이 모듈은 비즈니스 프로세스에 공급되는 모델링된 대화 흐름 내에서 사용자가 자신의 요청을 공식화할 수 있는 다양한 방법을 처리해야 합니다.
 NER 모듈에서 제공하는 슬롯은 대화를 유도하는 데 사용됩니다.
 주요 목표는 통신 회사의 제품을 판매하는 것입니다.
 따라서 사용자가 챗봇과 상호 작용하여 회사 카탈로그에서 개인화된 최상의 솔루션과 제품을 식별할 수 있도록 하는 것이 목표입니다.
 통신 회사의 제품은 관세입니다.
 - 요금제에는 이름이 있습니다,
 계약 기간,
 1~5개의 심 카드,
 GB 또는 무제한 데이터(-1로 표시)로 표시된 데이터 양을 수치로 표시합니다,
 한 번 지불해야하는 가격과 월별 가격.
 - 심 카드와 관련하여 계약 기간과 가격은 비즈니스 프로세스에 의해 설정됩니다,
 각 심 카드에 대해 선택적으로 스마트폰을 예약할 수 있습니다.
 선택한 스마트폰에 따라 앞서 언급한 가격과 계약 기간은 비즈니스 프로세스에 의해 조정됩니다.
 사용자는 선택한 심 카드 중 요금제에 속하는 심 카드를 하나씩 또는 전혀 사용하지 않고 스마트폰을 예약할 수 있습니다,
 사용자는 예약하고자 하는 심 카드의 개수를 선택할 수 있습니다,
 심 카드는 성인용 또는 어린이용이 될 수 있습니다,
 비즈니스 프로세스는 통신사에서 예약할 수 있는 스마트폰과 요금제만 고려합니다.
 그렇기 때문에 슬롯을 확정하기 전에 구조화된 방식으로 지정해야 합니다.
 관세 및 스마트폰의 엔티티 값은 다음 JSON 구조에 포함되어 있습니다:
 {
 관세: [
 {
 name: 'Blue S',
 데이터볼륨GB: 5
 },
 {
 name: 'Blue M',
 dataVolumeGB: 10
 },
 {
 name: 'Blue L',
 dataVolumeGB: 15
 },
 {
 name: 'Blue XL',
 dataVolumeGB: -1
 }
 ], 스마트폰: [
 {
 vendor: 'Apple'
 이름: '아이폰 13',
 os: 'iOS'
 memoryOptions: [128, 256, 512],
 cameraMP: 12,
 qualityRating: 1
 },
 {
 vendor: 'Samsung'
 name: '갤럭시 10',
 os: '안드로이드'
 memoryOptions: [128, 256],
 cameraMP: 24,
 speedRating: .8
 },
 {
 vendor: 'Xiaomi'
 name: '12t',
 os: '안드로이드'
 memoryOptions: [128, 256],
 cameraMP: 18,
 speedRating: .4
 }
 ]}

사용자는 자신이 원하는 요금제와 스마트폰 옵션에 대해 어떤 기능을 원하는지 설명할 수 있습니다.
사용자가 말하는 이러한 목표는 인간 언어의 속성으로 주어지거나 구체적인 값으로 주어질 수 있습니다.
예를 들어 사용자는 "메모리가 많은 스마트폰을 원해요" 또는 "256GB 이상의 스마트폰을 원해요"라고 말할 수 있습니다(참고 A1).
NER이 수행하는 슬롯 채우기 프로세스는 NLU 에뮬레이션을 사용하여 인간의 언어 속성을 지정된 슬롯에 대해 주어진 척도의 고유한 값으로 매핑합니다.
여기에는 사람들이 공통 언어로 사용하는 속성의 순위를 매기는 작업이 포함됩니다.
예를 들어 "단순한 스마트폰"이라는 문장은 슬롯 9에 약 0.1, "좋은 스마트폰"은 약 0.5, "최고의 스마트폰"은 약 1의 값을 갖습니다.

이제 다음 슬롯을 설정하고 에뮬레이션이 해당 사양을 준수하도록 합니다.
앞서 제공된 컨텍스트 정보는 엔티티 값과 동의어 및 가능한 속성에 대한 지식을 설정하는 데 도움이 되는 정보로만 사용합니다.
NER 에뮬레이션을 수행할 때 각 슬롯을 목표로 하는 데이터 유형에 매핑합니다.
'rel'로 끝나는 모든 슬롯은 앞서 설명한 대로 사람이 발화한 어트리뷰션을 별도의 실수 값으로 변환해야 합니다.
소스 발화에서 슬롯에 대한 구체적인 고유 값을 언급하는 경우, 대신 'abs'로 끝나는 슬롯을 채우세요(예: "256GB 메모리").
개념에 대해 'rel' 슬롯보다 'abs'를 우선시하고 동일한 개념에 두 가지를 모두 사용하지 마세요(참고 A1 참조).
즉, NER을 에뮬레이트할 때는 엔티티 사양과 매핑 설명을 사용하여 조준 유형을 생성하세요.
| 번호 | 슬롯 이름 | 엔티티 사양 | 매핑 설명, 범위 | 슬롯 값을 매핑할 에임드 타입 |
|--------|---------------------------|-------------------------------------------------------------------------------------------------------------------------------------------------|-------------------------------------------------------------------------------------------------------------------------|-----------------------------------|
| 1 | 관세 이름 | 사용자가 예약하려는 관세 | 주어진 JSON에서 엔티티 값을 소싱하며 사용자가 올바른 철자와 약간 다를 것으로 예상되는 문자열입니다.
| 2 | 금액 심 카드 | 최소 1에서 최대 5까지의 심 카드 수 | 텍스트 또는 숫자로 명시된 금액을 정수로 변환합니다.
| 3 | 요금제 데이터 양 | 요금제에 포함된 월 데이터 트래픽의 양(GB) | 정수로 표시되는 텍스트 또는 숫자 명시 금액, 무제한 데이터 양은 -1로 표시됨 | 정수 |
| 4 | 스마트폰 벤더 | 원하는 스마트폰 벤더를 입력함 | 사용자가 예약하려는 스마트폰의 제조사/벤더를 텍스트로 명시하고, 제공된 JSON에서 가져옴 | 문자열 |
| 5 | 스마트폰 이름 | 원하는 스마트폰 제품명 | 텍스트에 명시된 이름