Megosztás a következőn keresztül:


Azure Text Analysis ügyfélkódtár JavaScripthez – 6.0.0-beta.1-es verzió

Az Azure Cognitive Service for Language egy felhőalapú szolgáltatás, amely fejlett természetes nyelvi feldolgozást biztosít nyers szövegeken keresztül, és a következő fő funkciókat tartalmazza:

Megjegyzés: Ez az SDK az Azure Cognitive Service for Language API 2022-04-01-preview verzióját célozza meg.

  • Nyelvfelismerés
  • Hangulatelemzés
  • Kulcskifejezések kinyerése
  • Megnevezett entitások felismerése
  • Személyazonosításra alkalmas adatok elismerése
  • Entitáskapcsolás
  • Egészségügyi elemzés
  • Kivonatoló összegzés
  • Egyéni entitások felismerése
  • Egyéni dokumentumbesorolás
  • Dokumentumonként több művelet támogatása

Az ügyfélkódtár használatával:

  • A szövegbeviteli szöveg észlelése.
  • A pozitív vagy negatív hangulatra utaló jelek nyers szövegének elemzésével meghatározhatja, hogy az ügyfelek mit gondolnak az Ön márkájáról vagy témájáról.
  • Automatikusan kinyeri a kulcskifejezéseket, ezzel gyorsan azonosítva a szöveg mondanivalójának fő pontjait.
  • Azonosíthatja és kategorizálhatja a szövegben szereplő entitásokat személyek, helyek, szervezetek, dátum/idő, mennyiségek, százalékok, pénznemek, egészségügyi szolgáltatások és egyebek szerint.
  • A fenti feladatok közül egyszerre több végrehajtása.

Főbb hivatkozások:

Első lépések

Jelenleg támogatott környezetek

További részletekért tekintse meg támogatási szabályzatunkat .

Előfeltételek

Ha az Azure CLI-t használja, cserélje le <your-resource-group-name> a és <your-resource-name> nevet a saját egyedi nevére:

az cognitiveservices account create --kind TextAnalytics --resource-group <your-resource-group-name> --name <your-resource-name> --sku <your-sku-name> --location <your-location>

Telepítse a(z) @azure/ai-text-analytics csomagot

Telepítse a JavaScripthez készült Azure Text Analysis ügyfélkódtárat a következővel npm:

npm install @azure/ai-text-analytics

Hozzon létre és hitelesítsen egy TextAnalysisClient

Ahhoz, hogy létrehozhasson egy ügyfélobjektumot a Language API eléréséhez, szüksége lesz a endpoint nyelvi erőforrásra és egy credential. A Text Analysis-ügyfél az Azure Active Directory hitelesítő adatait vagy egy API-kulcs hitelesítő adatait használhatja a hitelesítéshez.

A nyelvi erőforrás végpontját az Azure Portalon vagy az alábbi Azure CLI-kódrészlettel találja meg:

az cognitiveservices account show --name <your-resource-name> --resource-group <your-resource-group-name> --query "properties.endpoint"

API-kulcs használata

Az Azure Portalon keresse meg a nyelvi erőforrást, és kérjen le egy API-kulcsot, vagy használja az alábbi Azure CLI-kódrészletet :

Megjegyzés: Néha az API-kulcsot "előfizetői azonosítónak" vagy "előfizetési API-kulcsnak" is nevezik.

az cognitiveservices account keys list --resource-group <your-resource-group-name> --name <your-resource-name>

Miután rendelkezik API-kulccsal és végpontokkal, a AzureKeyCredential osztály használatával hitelesítheti az ügyfelet az alábbiak szerint:

const { TextAnalysisClient, AzureKeyCredential } = require("@azure/ai-text-analytics");

const client = new TextAnalysisClient("<endpoint>", new AzureKeyCredential("<API key>"));

Azure Active Directory-hitelesítő adatok használata

A legtöbb példában ügyfél API-kulcsos hitelesítést használunk, de az Azure Active Directoryval is végezhet hitelesítést az Azure Identity Library használatával. Az alább látható DefaultAzureCredential szolgáltató vagy az Azure SDK-hoz biztosított egyéb hitelesítőadat-szolgáltatók használatához telepítse a @azure/identity csomagot:

npm install @azure/identity

Új AAD-alkalmazást is regisztrálnia kell, és hozzáférést kell adnia a nyelvhez úgy, hogy hozzárendeli a "Cognitive Services User" szerepkört a szolgáltatásnévhez (megjegyzés: más szerepkörök, például "Owner" nem biztosítják a szükséges engedélyeket, csak "Cognitive Services User" a példák és a mintakód futtatásához lesz elegendő).

Állítsa be az AAD-alkalmazás ügyfél-azonosítójának, bérlőazonosítójának és titkos ügyfélkulcsának értékeit környezeti változóként: AZURE_CLIENT_ID, AZURE_TENANT_ID, AZURE_CLIENT_SECRET.

const { TextAnalysisClient } = require("@azure/ai-text-analytics");
const { DefaultAzureCredential } = require("@azure/identity");

const client = new TextAnalysisClient("<endpoint>", new DefaultAzureCredential());

Fő fogalmak

TextAnalysisClient

TextAnalysisClient A a Text Analysis ügyfélkódtárat használó fejlesztők elsődleges felülete. Az ügyfélobjektum metódusainak megismerésével megismerheti a Nyelvi szolgáltatás különböző funkcióit, amelyeket elérhet.

Bevitel

A dokumentumok egyetlen bemeneti egységet jelölnek, amelyet a Nyelvi szolgáltatás prediktív modelljei elemeznek. TextAnalysisClient A műveletek kötegként elemezendő bemenetek gyűjteményét hajtják végre. A műveleti metódusok túlterheléssel rendelkeznek, amelyek lehetővé teszik, hogy a bemenetek sztringekként vagy csatolt metaadatokat tartalmazó objektumokként jelenjenek meg.

Például minden dokumentum átadható sztringként egy tömbben, például:

const documents = [
  "I hated the movie. It was so slow!",
  "The movie made it into my top ten favorites.",
  "What a great movie!",
];

vagy ha egy elemenkénti dokumentumot vagy dokumentumot idlanguagecountryHint/szeretne átadni, azok a művelet listájában TextDocumentInput vagy DetectLanguageInput attól függően adhatóak meg;

const textDocumentInputs = [
  { id: "1", language: "en", text: "I hated the movie. It was so slow!" },
  { id: "2", language: "en", text: "The movie made it into my top ten favorites." },
  { id: "3", language: "en", text: "What a great movie!" },
];

Tekintse meg a bemenet szolgáltatási korlátozásait , beleértve a dokumentum hosszának korlátozásait, a köteg maximális méretét és a támogatott szövegkódolásokat.

Visszatérési érték

Az egyetlen dokumentumnak megfelelő visszatérési érték vagy sikeres eredmény vagy hibaobjektum. Minden TextAnalysisClient metódus egy heterogén eredmény- és hibatömböt ad vissza, amely megfelel az index által megadott bemeneteknek. A szövegbevitel és annak eredménye ugyanazzal az indexszel fog rendelkezni a bemenetben és az eredménygyűjteményekben.

Az eredmény (például SentimentAnalysisResult) egy nyelvművelet eredménye, amely egyetlen szöveges bemenetre vonatkozó előrejelzést vagy előrejelzéseket tartalmaz. A műveletek eredménytípusa opcionálisan információkat is tartalmazhat a bemeneti dokumentumról és a feldolgozás módjáról.

A hibaobjektum () azt jelzi, TextAnalysisErrorResulthogy a szolgáltatás hibát észlelt a dokumentum feldolgozása során, és információkat tartalmaz a hibáról.

Dokumentumhibák kezelése

A művelet által visszaadott gyűjteményben a hibákat a tulajdonság jelenléte különbözteti meg a error sikeres válaszoktól, amely hiba esetén a belső TextAnalysisError objektumot tartalmazza. Sikeres eredményobjektumok esetén ez a tulajdonság mindigundefined az.

Az összes hiba kiszűréséhez például használhatja a következőt filter:

const results = await client.analyze("SentimentAnalysis", documents);
const onlySuccessful = results.filter((result) => result.error === undefined);

Megjegyzés: A TypeScript-felhasználók jobban kihasználhatják az eredmény- és hibaobjektumok típusellenőrzését, ha compilerOptions.strictNullChecks a tsconfig.json konfigurációban be van állítvatrue. Például:

const [result] = await client.analyze("SentimentAnalysis", ["Hello world!"]);

if (result.error !== undefined) {
  // In this if block, TypeScript will be sure that the type of `result` is
  // `TextAnalysisError` if compilerOptions.strictNullChecks is enabled in
  // the tsconfig.json

  console.log(result.error);
}

Példák

Hangulatelemzés

Elemezze a szöveg hangulatát annak megállapításához, hogy pozitív, negatív, semleges vagy vegyes-e, beleértve a mondatonkénti hangulatelemzést és a megbízhatósági pontszámokat.

const { TextAnalysisClient, AzureKeyCredential } = require("@azure/ai-text-analytics");

const client = new TextAnalysisClient("<endpoint>", new AzureKeyCredential("<API key>"));

const documents = [
  "I did not like the restaurant. The food was too spicy.",
  "The restaurant was decorated beautifully. The atmosphere was unlike any other restaurant I've been to.",
  "The food was yummy. :)",
];

async function main() {
  const results = await client.analyze("SentimentAnalysis", documents);

  for (const result of results) {
    if (result.error === undefined) {
      console.log("Overall sentiment:", result.sentiment);
      console.log("Scores:", result.confidenceScores);
    } else {
      console.error("Encountered an error:", result.error);
    }
  }
}

main();

Ha részletesebb információkat szeretne kapni egy termék/szolgáltatás aspektusaival kapcsolatos véleményekről, más néven aspektusalapú hangulatelemzés a természetes nyelvi feldolgozásban (NLP), tekintse meg az itt található véleménybányászattal kapcsolatos véleményelemzési mintát.

Entitások felismerése

A szövegben szereplő entitások felismerése és kategorizálása személyként, helyként, szervezetként, dátumként/időpontként, mennyiségként, pénznemként stb.

A language paraméter megadása nem kötelező. Ha nincs megadva, a rendszer az alapértelmezett angol modellt használja.

const { TextAnalysisClient, AzureKeyCredential } = require("@azure/ai-text-analytics");

const client = new TextAnalysisClient("<endpoint>", new AzureKeyCredential("<API key>"));

const documents = [
  "Microsoft was founded by Bill Gates and Paul Allen.",
  "Redmond is a city in King County, Washington, United States, located 15 miles east of Seattle.",
  "Jeff bought three dozen eggs because there was a 50% discount.",
];

async function main() {
  const results = await client.analyze("EntityRecognition", documents, "en");

  for (const result of results) {
    if (result.error === undefined) {
      console.log(" -- Recognized entities for input", result.id, "--");
      for (const entity of result.entities) {
        console.log(entity.text, ":", entity.category, "(Score:", entity.confidenceScore, ")");
      }
    } else {
      console.error("Encountered an error:", result.error);
    }
  }
}

main();

PII-entitások felismerése

A személyazonosításra alkalmas adatok (PII) felismerésére külön művelet áll rendelkezésre olyan szövegben, mint a társadalombiztosítási számok, bankszámlaadatok, hitelkártyaszámok stb. Használata nagyon hasonló a fenti standard entitásfelismeréshez:

const { TextAnalysisClient, AzureKeyCredential } = require("@azure/ai-text-analytics");
const client = new TextAnalysisClient("<endpoint>", new AzureKeyCredential("<API key>"));
const documents = [
  "The employee's SSN is 555-55-5555.",
  "The employee's phone number is (555) 555-5555.",
];
async function main() {
  const results = await client.analyze("PiiEntityRecognition", documents, "en");
  for (const result of results) {
    if (result.error === undefined) {
      console.log(" -- Recognized PII entities for input", result.id, "--");
      for (const entity of result.entities) {
        console.log(entity.text, ":", entity.category, "(Score:", entity.confidenceScore, ")");
      }
    } else {
      console.error("Encountered an error:", result.error);
    }
  }
}
main();

Entitáskapcsolás

A "csatolt" entitás olyan entitás, amely egy tudásbázis (például a Wikipédiában) létezik. A EntityLinking művelet egyértelműsítheti az entitásokat azáltal, hogy meghatározza, hogy egy tudásbázis mely bejegyzésére hivatkoznak (például egy szövegben a "Mars" szó a bolygóra, vagy a római háború istenére utal). A csatolt entitások az entitás definícióját biztosító tudásbázis társított URL-címeit tartalmazzák.

const { TextAnalysisClient, AzureKeyCredential } = require("@azure/ai-text-analytics");

const client = new TextAnalysisClient("<endpoint>", new AzureKeyCredential("<API key>"));

const documents = [
  "Microsoft was founded by Bill Gates and Paul Allen.",
  "Easter Island, a Chilean territory, is a remote volcanic island in Polynesia.",
  "I use Azure Functions to develop my product.",
];

async function main() {
  const results = await client.analyze("EntityLinking", documents, "en");

  for (const result of results) {
    if (result.error === undefined) {
      console.log(" -- Recognized linked entities for input", result.id, "--");
      for (const entity of result.entities) {
        console.log(entity.name, "(URL:", entity.url, ", Source:", entity.dataSource, ")");
        for (const match of entity.matches) {
          console.log(
            "  Occurrence:",
            '"' + match.text + '"',
            "(Score:",
            match.confidenceScore,
            ")"
          );
        }
      }
    } else {
      console.error("Encountered an error:", result.error);
    }
  }
}

main();

Kulcskifejezések kinyerése

A kulcskifejezések kinyerése azonosítja a dokumentum fő beszélgetési pontjait. Például a "Az étel finom volt, és csodálatos személyzet volt", a szolgáltatás "ételt" és "csodálatos személyzetet" ad vissza.

const { TextAnalysisClient, AzureKeyCredential } = require("@azure/ai-text-analytics");

const client = new TextAnalysisClient("<endpoint>", new AzureKeyCredential("<API key>"));

const documents = [
  "Redmond is a city in King County, Washington, United States, located 15 miles east of Seattle.",
  "I need to take my cat to the veterinarian.",
  "I will travel to South America in the summer.",
];

async function main() {
  const results = await client.analyze("KeyPhraseExtraction", documents, "en");

  for (const result of results) {
    if (result.error === undefined) {
      console.log(" -- Extracted key phrases for input", result.id, "--");
      console.log(result.keyPhrases);
    } else {
      console.error("Encountered an error:", result.error);
    }
  }
}

main();

Nyelvfelismerés

Egy szöveg nyelvének meghatározása.

A countryHint paraméter nem kötelező, de segíthet a szolgáltatásnak a megfelelő kimenet biztosításában, ha a származási ország ismert. Ha meg van adva, akkor egy ISO-3166 Alpha-2 kétbetűs országkódra (például "us" értékre kell állítani a japán Egyesült Államok vagy "jp" értékre) vagy értékre"none". Ha a paraméter nincs megadva, akkor a rendszer az alapértelmezett "us" (Egyesült Államok) modellt használja. Ha nem ismeri a dokumentum származási országát, akkor a paramétert "none" kell használni, és a Nyelvi szolgáltatás egy ismeretlen származási országra hangolt modellt alkalmaz.

const { TextAnalysisClient, AzureKeyCredential } = require("@azure/ai-text-analytics");

const client = new TextAnalysisClient("<endpoint>", new AzureKeyCredential("<API key>"));

const documents = [
  "This is written in English.",
  "Il documento scritto in italiano.",
  "Dies ist in deutscher Sprache verfasst.",
];

async function main() {
  const results = await client.analyze("LanguageDetection", documents, "none");

  for (const result of results) {
    if (result.error === undefined) {
      const { primaryLanguage } = result;
      console.log(
        "Input #",
        result.id,
        "identified as",
        primaryLanguage.name,
        "( ISO6391:",
        primaryLanguage.iso6391Name,
        ", Score:",
        primaryLanguage.confidenceScore,
        ")"
      );
    } else {
      console.error("Encountered an error:", result.error);
    }
  }
}

main();

Egészségügyi elemzés

Az egészségügyi elemzés azonosítja az egészségügyi entitásokat. Például az "Előírt 100mg ibuprofen, naponta kétszer szedve" bemeneti szövegben a szolgáltatás a "100mg" értéket adja vissza Adagolás, az "ibuprofen" pedig a MedicationName értéket, a "naponta kétszer" értéket pedig Gyakoriságként.

const {
  AnalyzeBatchAction,
  AzureKeyCredential,
  TextAnalysisClient,
} = require("@azure/ai-text-analytics");

const client = new TextAnalysisClient("<endpoint>", new AzureKeyCredential("<API key>"));

const documents = [
  "Prescribed 100mg ibuprofen, taken twice daily.",
  "Patient does not suffer from high blood pressure.",
];

async function main() {
  const actions: AnalyzeBatchAction[] = [
    {
      kind: "Healthcare",
    },
  ];
  const poller = await client.beginAnalyzeBatch(actions, documents, "en");
  const results = await poller.pollUntilDone();
  for await (const actionResult of results) {
    if (actionResult.kind !== "Healthcare") {
      throw new Error(`Expected a healthcare results but got: ${actionResult.kind}`);
    }
    if (actionResult.error) {
      const { code, message } = actionResult.error;
      throw new Error(`Unexpected error (${code}): ${message}`);
    }
    for (const result of actionResult.results) {
      console.log(`- Document ${result.id}`);
      if (result.error) {
        const { code, message } = result.error;
        throw new Error(`Unexpected error (${code}): ${message}`);
      }
      console.log("\tRecognized Entities:");
      for (const entity of result.entities) {
        console.log(`\t- Entity "${entity.text}" of type ${entity.category}`);
        if (entity.dataSources.length > 0) {
          console.log("\t and it can be referenced in the following data sources:");
          for (const ds of entity.dataSources) {
            console.log(`\t\t- ${ds.name} with Entity ID: ${ds.entityId}`);
          }
        }
      }
    }
  }
}

main();

Kivonatoló összegzés

A kivonatoló összegzés azokat a mondatokat azonosítja, amelyek összefoglalják azokat a cikkeket, amelyekhez tartoznak.

const {
  AnalyzeBatchAction,
  AzureKeyCredential,
  TextAnalysisClient,
} = require("@azure/ai-text-analytics");

const client = new TextAnalysisClient("<endpoint>", new AzureKeyCredential("<API key>"));

const documents = [
  "Prescribed 100mg ibuprofen, taken twice daily.",
  "Patient does not suffer from high blood pressure.",
];

async function main() {
  const actions: AnalyzeBatchAction[] = [
    {
      kind: "ExtractiveSummarization",
      maxSentenceCount: 2,
    },
  ];
  const poller = await client.beginAnalyzeBatch(actions, documents, "en");
  const results = await poller.pollUntilDone();

  for await (const actionResult of results) {
    if (actionResult.kind !== "ExtractiveSummarization") {
      throw new Error(`Expected extractive summarization results but got: ${actionResult.kind}`);
    }
    if (actionResult.error) {
      const { code, message } = actionResult.error;
      throw new Error(`Unexpected error (${code}): ${message}`);
    }
    for (const result of actionResult.results) {
      console.log(`- Document ${result.id}`);
      if (result.error) {
        const { code, message } = result.error;
        throw new Error(`Unexpected error (${code}): ${message}`);
      }
      console.log("Summary:");
      console.log(result.sentences.map((sentence) => sentence.text).join("\n"));
    }
  }
}

main();

Egyéni entitások felismerése

A szöveges entitások felismerése és kategorizálása entitásokként az Azure Language Studio használatával létrehozott egyéni entitásészlelési modellek használatával.

const {
  AnalyzeBatchAction,
  AzureKeyCredential,
  TextAnalysisClient,
} = require("@azure/ai-text-analytics");

const client = new TextAnalysisClient("<endpoint>", new AzureKeyCredential("<API key>"));

const documents = [
  "We love this trail and make the trip every year. The views are breathtaking and well worth the hike! Yesterday was foggy though, so we missed the spectacular views. We tried again today and it was amazing. Everyone in my family liked the trail although it was too challenging for the less athletic among us.",
  "Last week we stayed at Hotel Foo to celebrate our anniversary. The staff knew about our anniversary so they helped me organize a little surprise for my partner. The room was clean and with the decoration I requested. It was perfect!",
];

async function main() {
  const actions: AnalyzeBatchAction[] = [
    {
      kind: "CustomEntityRecognition",
      deploymentName,
      projectName,
    },
  ];
  const poller = await client.beginAnalyzeBatch(actions, documents, "en");
  for await (const actionResult of results) {
    if (actionResult.kind !== "CustomEntityRecognition") {
      throw new Error(`Expected a CustomEntityRecognition results but got: ${actionResult.kind}`);
    }
    if (actionResult.error) {
      const { code, message } = actionResult.error;
      throw new Error(`Unexpected error (${code}): ${message}`);
    }
    for (const result of actionResult.results) {
      console.log(`- Document ${result.id}`);
      if (result.error) {
        const { code, message } = result.error;
        throw new Error(`Unexpected error (${code}): ${message}`);
      }
      console.log("\tRecognized Entities:");
      for (const entity of result.entities) {
        console.log(`\t- Entity "${entity.text}" of type ${entity.category}`);
      }
    }
  }
}

main();

Egyéni egycímkés besorolás

Dokumentumok besorolása az Azure Language Studio használatával létrehozott egyéni egycímkés modellek használatával.

const { TextAnalysisClient, AzureKeyCredential } = require("@azure/ai-text-analytics");

const client = new TextAnalysisClient("<endpoint>", new AzureKeyCredential("<API key>"));

const documents = [
  "The plot begins with a large group of characters where everyone thinks that the two main ones should be together but foolish things keep them apart. Misunderstandings, miscommunication, and confusion cause a series of humorous situations.",
];

async function main() {
  const actions: AnalyzeBatchAction[] = [
    {
      kind: "CustomSingleLabelClassification",
      deploymentName,
      projectName,
    },
  ];
  const poller = await client.beginAnalyzeBatch(actions, documents, "en");
  const results = await poller.pollUntilDone();

  for await (const actionResult of results) {
    if (actionResult.kind !== "CustomSingleLabelClassification") {
      throw new Error(
        `Expected a CustomSingleLabelClassification results but got: ${actionResult.kind}`
      );
    }
    if (actionResult.error) {
      const { code, message } = actionResult.error;
      throw new Error(`Unexpected error (${code}): ${message}`);
    }
    for (const result of actionResult.results) {
      console.log(`- Document ${result.id}`);
      if (result.error) {
        const { code, message } = result.error;
        throw new Error(`Unexpected error (${code}): ${message}`);
      }
      console.log(`\tClassification: ${result.classification.category}`);
    }
  }
}

main();

Egyéni többcímke-besorolás

Dokumentumok besorolása az Azure Language Studio használatával létrehozott egyéni többcímkés modellek használatával.

const {
  AnalyzeBatchAction,
  AzureKeyCredential,
  TextAnalysisClient,
} = require("@azure/ai-text-analytics");

const client = new TextAnalysisClient("<endpoint>", new AzureKeyCredential("<API key>"));

const documents = [
  "The plot begins with a large group of characters where everyone thinks that the two main ones should be together but foolish things keep them apart. Misunderstandings, miscommunication, and confusion cause a series of humorous situations.",
];

async function main() {
  const actions: AnalyzeBatchAction[] = [
    {
      kind: "CustomMultiLabelClassification",
      deploymentName,
      projectName,
    },
  ];
  const poller = await client.beginAnalyzeBatch(actions, documents, "en");
  const results = await poller.pollUntilDone();

  for await (const actionResult of results) {
    if (actionResult.kind !== "CustomMultiLabelClassification") {
      throw new Error(
        `Expected a CustomMultiLabelClassification results but got: ${actionResult.kind}`
      );
    }
    if (actionResult.error) {
      const { code, message } = actionResult.error;
      throw new Error(`Unexpected error (${code}): ${message}`);
    }
    for (const result of actionResult.results) {
      console.log(`- Document ${result.id}`);
      if (result.error) {
        const { code, message } = result.error;
        throw new Error(`Unexpected error (${code}): ${message}`);
      }
      console.log(`\tClassification:`);
      for (const classification of result.classifications) {
        console.log(`\t\t-category: ${classification.category}`);
      }
    }
  }
}

main();

Műveletkötegelés

Több műveletet alkalmaz minden bemeneti dokumentumra egy szolgáltatáskérésben.

const {
  AnalyzeBatchAction,
  AzureKeyCredential,
  TextAnalysisClient,
} = require("@azure/ai-text-analytics");

const client = new TextAnalysisClient("<endpoint>", new AzureKeyCredential("<API key>"));

const documents = [
  "Microsoft was founded by Bill Gates and Paul Allen.",
  "The employee's SSN is 555-55-5555.",
  "Easter Island, a Chilean territory, is a remote volcanic island in Polynesia.",
  "I use Azure Functions to develop my product.",
];

async function main() {
  const actions: AnalyzeBatchAction[] = [
    {
      kind: "EntityRecognition",
      modelVersion: "latest",
    },
    {
      kind: "PiiEntityRecognition",
      modelVersion: "latest",
    },
    {
      kind: "KeyPhraseExtraction",
      modelVersion: "latest",
    },
  ];
  const poller = await client.beginAnalyzeBatch(actions, documents, "en");
  const actionResults = await poller.pollUntilDone();
  for await (const actionResult of actionResults) {
    if (actionResult.error) {
      const { code, message } = actionResult.error;
      throw new Error(`Unexpected error (${code}): ${message}`);
    }
    switch (actionResult.kind) {
      case "KeyPhraseExtraction": {
        for (const doc of actionResult.results) {
          console.log(`- Document ${doc.id}`);
          if (!doc.error) {
            console.log("\tKey phrases:");
            for (const phrase of doc.keyPhrases) {
              console.log(`\t- ${phrase}`);
            }
          } else {
            console.error("\tError:", doc.error);
          }
        }
        break;
      }
      case "EntityRecognition": {
        for (const doc of actionResult.results) {
          console.log(`- Document ${doc.id}`);
          if (!doc.error) {
            console.log("\tEntities:");
            for (const entity of doc.entities) {
              console.log(`\t- Entity ${entity.text} of type ${entity.category}`);
            }
          } else {
            console.error("\tError:", doc.error);
          }
        }
        break;
      }
      case "PiiEntityRecognition": {
        for (const doc of actionResult.results) {
          console.log(`- Document ${doc.id}`);
          if (!doc.error) {
            console.log("\tPii Entities:");
            for (const entity of doc.entities) {
              console.log(`\t- Entity ${entity.text} of type ${entity.category}`);
            }
          } else {
            console.error("\tError:", doc.error);
          }
        }
        break;
      }
      default: {
        throw new Error(`Unexpected action results: ${actionResult.kind}`);
      }
    }
  }
}

main();

Hibaelhárítás

Naplózás

A naplózás engedélyezése hasznos információkat deríthet fel a hibákról. A HTTP-kérések és -válaszok naplójának megtekintéséhez állítsa a környezeti változót értékre AZURE_LOG_LEVELinfo. A naplózás futásidőben is engedélyezhető a következő hívásával setLogLevel@azure/logger:

import { setLogLevel } from "@azure/logger";

setLogLevel("info");

A naplók engedélyezésére vonatkozó részletesebb utasításokért tekintse meg a @azure/logger csomag dokumentációját.

Következő lépések

A kódtár használatára vonatkozó részletes példákért tekintse meg a mintakönyvtárat.

Közreműködés

Ha hozzá szeretne járulni ehhez a kódtárhoz, olvassa el a közreműködői útmutatót , amelyből többet is megtudhat a kód buildeléséhez és teszteléséhez.

Megjelenések