{"id":"f283e6a7-e359-4fb8-a8b2-f55279e15376","shortId":"qp5r6b","kind":"skill","title":"azure-ai-textanalytics-py","tagline":"Azure AI Text Analytics SDK for sentiment analysis, entity recognition, key phrases, language detection, PII, and healthcare NLP. Use for natural language processing on text.","description":"# Azure AI Text Analytics SDK for Python\n\nClient library for Azure AI Language service NLP capabilities including sentiment, entities, key phrases, and more.\n\n## Installation\n\n```bash\npip install azure-ai-textanalytics\n```\n\n## Environment Variables\n\n```bash\nAZURE_LANGUAGE_ENDPOINT=https://<resource>.cognitiveservices.azure.com\nAZURE_LANGUAGE_KEY=<your-api-key>  # If using API key\n```\n\n## Authentication\n\n### API Key\n\n```python\nimport os\nfrom azure.core.credentials import AzureKeyCredential\nfrom azure.ai.textanalytics import TextAnalyticsClient\n\nendpoint = os.environ[\"AZURE_LANGUAGE_ENDPOINT\"]\nkey = os.environ[\"AZURE_LANGUAGE_KEY\"]\n\nclient = TextAnalyticsClient(endpoint, AzureKeyCredential(key))\n```\n\n### Entra ID (Recommended)\n\n```python\nfrom azure.ai.textanalytics import TextAnalyticsClient\nfrom azure.identity import DefaultAzureCredential\n\nclient = TextAnalyticsClient(\n    endpoint=os.environ[\"AZURE_LANGUAGE_ENDPOINT\"],\n    credential=DefaultAzureCredential()\n)\n```\n\n## Sentiment Analysis\n\n```python\ndocuments = [\n    \"I had a wonderful trip to Seattle last week!\",\n    \"The food was terrible and the service was slow.\"\n]\n\nresult = client.analyze_sentiment(documents, show_opinion_mining=True)\n\nfor doc in result:\n    if not doc.is_error:\n        print(f\"Sentiment: {doc.sentiment}\")\n        print(f\"Scores: pos={doc.confidence_scores.positive:.2f}, \"\n              f\"neg={doc.confidence_scores.negative:.2f}, \"\n              f\"neu={doc.confidence_scores.neutral:.2f}\")\n        \n        # Opinion mining (aspect-based sentiment)\n        for sentence in doc.sentences:\n            for opinion in sentence.mined_opinions:\n                target = opinion.target\n                print(f\"  Target: '{target.text}' - {target.sentiment}\")\n                for assessment in opinion.assessments:\n                    print(f\"    Assessment: '{assessment.text}' - {assessment.sentiment}\")\n```\n\n## Entity Recognition\n\n```python\ndocuments = [\"Microsoft was founded by Bill Gates and Paul Allen in Albuquerque.\"]\n\nresult = client.recognize_entities(documents)\n\nfor doc in result:\n    if not doc.is_error:\n        for entity in doc.entities:\n            print(f\"Entity: {entity.text}\")\n            print(f\"  Category: {entity.category}\")\n            print(f\"  Subcategory: {entity.subcategory}\")\n            print(f\"  Confidence: {entity.confidence_score:.2f}\")\n```\n\n## PII Detection\n\n```python\ndocuments = [\"My SSN is 123-45-6789 and my email is john@example.com\"]\n\nresult = client.recognize_pii_entities(documents)\n\nfor doc in result:\n    if not doc.is_error:\n        print(f\"Redacted: {doc.redacted_text}\")\n        for entity in doc.entities:\n            print(f\"PII: {entity.text} ({entity.category})\")\n```\n\n## Key Phrase Extraction\n\n```python\ndocuments = [\"Azure AI provides powerful machine learning capabilities for developers.\"]\n\nresult = client.extract_key_phrases(documents)\n\nfor doc in result:\n    if not doc.is_error:\n        print(f\"Key phrases: {doc.key_phrases}\")\n```\n\n## Language Detection\n\n```python\ndocuments = [\"Ce document est en francais.\", \"This is written in English.\"]\n\nresult = client.detect_language(documents)\n\nfor doc in result:\n    if not doc.is_error:\n        print(f\"Language: {doc.primary_language.name} ({doc.primary_language.iso6391_name})\")\n        print(f\"Confidence: {doc.primary_language.confidence_score:.2f}\")\n```\n\n## Healthcare Text Analytics\n\n```python\ndocuments = [\"Patient has diabetes and was prescribed metformin 500mg twice daily.\"]\n\npoller = client.begin_analyze_healthcare_entities(documents)\nresult = poller.result()\n\nfor doc in result:\n    if not doc.is_error:\n        for entity in doc.entities:\n            print(f\"Entity: {entity.text}\")\n            print(f\"  Category: {entity.category}\")\n            print(f\"  Normalized: {entity.normalized_text}\")\n            \n            # Entity links (UMLS, etc.)\n            for link in entity.data_sources:\n                print(f\"  Link: {link.name} - {link.entity_id}\")\n```\n\n## Multiple Analysis (Batch)\n\n```python\nfrom azure.ai.textanalytics import (\n    RecognizeEntitiesAction,\n    ExtractKeyPhrasesAction,\n    AnalyzeSentimentAction\n)\n\ndocuments = [\"Microsoft announced new Azure AI features at Build conference.\"]\n\npoller = client.begin_analyze_actions(\n    documents,\n    actions=[\n        RecognizeEntitiesAction(),\n        ExtractKeyPhrasesAction(),\n        AnalyzeSentimentAction()\n    ]\n)\n\nresults = poller.result()\nfor doc_results in results:\n    for result in doc_results:\n        if result.kind == \"EntityRecognition\":\n            print(f\"Entities: {[e.text for e in result.entities]}\")\n        elif result.kind == \"KeyPhraseExtraction\":\n            print(f\"Key phrases: {result.key_phrases}\")\n        elif result.kind == \"SentimentAnalysis\":\n            print(f\"Sentiment: {result.sentiment}\")\n```\n\n## Async Client\n\n```python\nfrom azure.ai.textanalytics.aio import TextAnalyticsClient\nfrom azure.identity.aio import DefaultAzureCredential\n\nasync def analyze():\n    async with TextAnalyticsClient(\n        endpoint=endpoint,\n        credential=DefaultAzureCredential()\n    ) as client:\n        result = await client.analyze_sentiment(documents)\n        # Process results...\n```\n\n## Client Types\n\n| Client | Purpose |\n|--------|---------|\n| `TextAnalyticsClient` | All text analytics operations |\n| `TextAnalyticsClient` (aio) | Async version |\n\n## Available Operations\n\n| Method | Description |\n|--------|-------------|\n| `analyze_sentiment` | Sentiment analysis with opinion mining |\n| `recognize_entities` | Named entity recognition |\n| `recognize_pii_entities` | PII detection and redaction |\n| `recognize_linked_entities` | Entity linking to Wikipedia |\n| `extract_key_phrases` | Key phrase extraction |\n| `detect_language` | Language detection |\n| `begin_analyze_healthcare_entities` | Healthcare NLP (long-running) |\n| `begin_analyze_actions` | Multiple analyses in batch |\n\n## Best Practices\n\n1. **Use batch operations** for multiple documents (up to 10 per request)\n2. **Enable opinion mining** for detailed aspect-based sentiment\n3. **Use async client** for high-throughput scenarios\n4. **Handle document errors** — results list may contain errors for some docs\n5. **Specify language** when known to improve accuracy\n6. **Use context manager** or close client explicitly\n\n## When to Use\nThis skill is applicable to execute the workflow or actions described in the overview.\n\n## Limitations\n- Use this skill only when the task clearly matches the scope described above.\n- Do not treat the output as a substitute for environment-specific validation, testing, or expert review.\n- Stop and ask for clarification if required inputs, permissions, safety boundaries, or success criteria are missing.","tags":["azure","textanalytics","antigravity","awesome","skills","sickn33","agent-skills","agentic-skills","ai-agent-skills","ai-agents","ai-coding","ai-workflows"],"capabilities":["skill","source-sickn33","skill-azure-ai-textanalytics-py","topic-agent-skills","topic-agentic-skills","topic-ai-agent-skills","topic-ai-agents","topic-ai-coding","topic-ai-workflows","topic-antigravity","topic-antigravity-skills","topic-claude-code","topic-claude-code-skills","topic-codex-cli","topic-codex-skills"],"categories":["antigravity-awesome-skills"],"synonyms":[],"warnings":[],"endpointUrl":"https://skills.sh/sickn33/antigravity-awesome-skills/azure-ai-textanalytics-py","protocol":"skill","transport":"skills-sh","auth":{"type":"none","details":{"cli":"npx skills add sickn33/antigravity-awesome-skills","source_repo":"https://github.com/sickn33/antigravity-awesome-skills","install_from":"skills.sh"}},"qualityScore":"0.700","qualityRationale":"deterministic score 0.70 from registry signals: · indexed on github topic:agent-skills · 34928 github stars · SKILL.md body (6,712 chars)","verified":false,"liveness":"unknown","lastLivenessCheck":null,"agentReviews":{"count":0,"score_avg":null,"cost_usd_avg":null,"success_rate":null,"latency_p50_ms":null,"narrative_summary":null,"summary_updated_at":null},"enrichmentModel":"deterministic:skill-github:v1","enrichmentVersion":1,"enrichedAt":"2026-04-24T18:50:28.453Z","embedding":null,"createdAt":"2026-04-18T21:32:00.965Z","updatedAt":"2026-04-24T18:50:28.453Z","lastSeenAt":"2026-04-24T18:50:28.453Z","tsv":"'-45':270 '-6789':271 '1':607 '10':616 '123':269 '2':619 '2f':173,177,181,261,374 '3':629 '4':638 '5':650 '500mg':387 '6':658 'accuraci':657 'action':461,463,600,678 'ai':3,7,32,42,60,310,453 'aio':546 'albuquerqu':227 'allen':225 'analys':602 'analysi':13,127,439,556 'analyt':9,34,377,543 'analyz':392,460,519,553,590,599 'analyzesentimentact':447,466 'announc':450 'api':74,77 'applic':672 'ask':716 'aspect':185,626 'aspect-bas':184,625 'assess':205,210 'assessment.sentiment':212 'assessment.text':211 'async':506,517,520,547,631 'authent':76 'avail':549 'await':530 'azur':2,6,31,41,59,65,69,92,97,121,309,452 'azure-ai-textanalyt':58 'azure-ai-textanalytics-pi':1 'azure.ai.textanalytics':87,110,443 'azure.ai.textanalytics.aio':510 'azure.core.credentials':83 'azure.identity':114 'azure.identity.aio':514 'azurekeycredenti':85,103 'base':186,627 'bash':55,64 'batch':440,604,609 'begin':589,598 'best':605 'bill':221 'boundari':724 'build':456 'capabl':46,315 'categori':250,416 'ce':341 'clarif':718 'clear':691 'client':38,100,117,507,528,536,538,632,664 'client.analyze':149,531 'client.begin':391,459 'client.detect':352 'client.extract':319 'client.recognize':229,278 'close':663 'cognitiveservices.azure.com':68 'confer':457 'confid':258,371 'contain':645 'context':660 'credenti':124,525 'criteria':727 'daili':389 'def':518 'defaultazurecredenti':116,125,516,526 'describ':679,695 'descript':552 'detail':624 'detect':19,263,338,569,585,588 'develop':317 'diabet':382 'doc':157,233,283,324,356,399,470,477,649 'doc.confidence_scores.negative':176 'doc.confidence_scores.neutral':180 'doc.confidence_scores.positive':172 'doc.entities':243,298,409 'doc.is':162,238,288,329,361,404 'doc.key':335 'doc.primary':367 'doc.primary_language.confidence':372 'doc.primary_language.name':366 'doc.redacted':293 'doc.sentences':191 'doc.sentiment':167 'document':129,151,216,231,265,281,308,322,340,342,354,379,395,448,462,533,613,640 'e':487 'e.text':485 'elif':490,499 'email':274 'en':344 'enabl':620 'endpoint':67,90,94,102,119,123,523,524 'english':350 'entiti':14,49,213,230,241,246,280,296,394,407,412,423,484,561,563,567,574,575,592 'entity.category':251,303,417 'entity.confidence':259 'entity.data':430 'entity.normalized':421 'entity.subcategory':255 'entity.text':247,302,413 'entityrecognit':481 'entra':105 'environ':62,707 'environment-specif':706 'error':163,239,289,330,362,405,641,646 'est':343 'etc':426 'execut':674 'expert':712 'explicit':665 'extract':306,579,584 'extractkeyphrasesact':446,465 'f':165,169,174,178,200,209,245,249,253,257,291,300,332,364,370,411,415,419,433,483,494,503 'featur':454 'food':140 'found':219 'francai':345 'gate':222 'handl':639 'healthcar':22,375,393,591,593 'high':635 'high-throughput':634 'id':106,437 'import':80,84,88,111,115,444,511,515 'improv':656 'includ':47 'input':721 'instal':54,57 'john@example.com':276 'key':16,50,71,75,78,95,99,104,304,320,333,495,580,582 'keyphraseextract':492 'known':654 'languag':18,27,43,66,70,93,98,122,337,353,365,586,587,652 'language.iso6391_name':368 'last':137 'learn':314 'librari':39 'limit':683 'link':424,428,434,573,576 'link.entity':436 'link.name':435 'list':643 'long':596 'long-run':595 'machin':313 'manag':661 'match':692 'may':644 'metformin':386 'method':551 'microsoft':217,449 'mine':154,183,559,622 'miss':729 'multipl':438,601,612 'name':562 'natur':26 'neg':175 'neu':179 'new':451 'nlp':23,45,594 'normal':420 'oper':544,550,610 'opinion':153,182,193,196,558,621 'opinion.assessments':207 'opinion.target':198 'os':81 'os.environ':91,96,120 'output':701 'overview':682 'patient':380 'paul':224 'per':617 'permiss':722 'phrase':17,51,305,321,334,336,496,498,581,583 'pii':20,262,279,301,566,568 'pip':56 'poller':390,458 'poller.result':397,468 'pos':171 'power':312 'practic':606 'prescrib':385 'print':164,168,199,208,244,248,252,256,290,299,331,363,369,410,414,418,432,482,493,502 'process':28,534 'provid':311 'purpos':539 'py':5 'python':37,79,108,128,215,264,307,339,378,441,508 'recogn':560,565,572 'recognit':15,214,564 'recognizeentitiesact':445,464 'recommend':107 'redact':292,571 'request':618 'requir':720 'result':148,159,228,235,277,285,318,326,351,358,396,401,467,471,473,475,478,529,535,642 'result.entities':489 'result.key':497 'result.kind':480,491,500 'result.sentiment':505 'review':713 'run':597 'safeti':723 'scenario':637 'scope':694 'score':170,260,373 'sdk':10,35 'seattl':136 'sentenc':189 'sentence.mined':195 'sentiment':12,48,126,150,166,187,504,532,554,555,628 'sentimentanalysi':501 'servic':44,145 'show':152 'skill':670,686 'skill-azure-ai-textanalytics-py' 'slow':147 'sourc':431 'source-sickn33' 'specif':708 'specifi':651 'ssn':267 'stop':714 'subcategori':254 'substitut':704 'success':726 'target':197,201 'target.sentiment':203 'target.text':202 'task':690 'terribl':142 'test':710 'text':8,30,33,294,376,422,542 'textanalyt':4,61 'textanalyticscli':89,101,112,118,512,522,540,545 'throughput':636 'topic-agent-skills' 'topic-agentic-skills' 'topic-ai-agent-skills' 'topic-ai-agents' 'topic-ai-coding' 'topic-ai-workflows' 'topic-antigravity' 'topic-antigravity-skills' 'topic-claude-code' 'topic-claude-code-skills' 'topic-codex-cli' 'topic-codex-skills' 'treat':699 'trip':134 'true':155 'twice':388 'type':537 'uml':425 'use':24,73,608,630,659,668,684 'valid':709 'variabl':63 'version':548 'week':138 'wikipedia':578 'wonder':133 'workflow':676 'written':348","prices":[{"id":"db6c3cdd-6e44-45b9-adbd-bcc566cf2dac","listingId":"f283e6a7-e359-4fb8-a8b2-f55279e15376","amountUsd":"0","unit":"free","nativeCurrency":null,"nativeAmount":null,"chain":null,"payTo":null,"paymentMethod":"skill-free","isPrimary":true,"details":{"org":"sickn33","category":"antigravity-awesome-skills","install_from":"skills.sh"},"createdAt":"2026-04-18T21:32:00.965Z"}],"sources":[{"listingId":"f283e6a7-e359-4fb8-a8b2-f55279e15376","source":"github","sourceId":"sickn33/antigravity-awesome-skills/azure-ai-textanalytics-py","sourceUrl":"https://github.com/sickn33/antigravity-awesome-skills/tree/main/skills/azure-ai-textanalytics-py","isPrimary":false,"firstSeenAt":"2026-04-18T21:32:00.965Z","lastSeenAt":"2026-04-24T18:50:28.453Z"}],"details":{"listingId":"f283e6a7-e359-4fb8-a8b2-f55279e15376","quickStartSnippet":null,"exampleRequest":null,"exampleResponse":null,"schema":null,"openapiUrl":null,"agentsTxtUrl":null,"citations":[],"useCases":[],"bestFor":[],"notFor":[],"kindDetails":{"org":"sickn33","slug":"azure-ai-textanalytics-py","github":{"repo":"sickn33/antigravity-awesome-skills","stars":34928,"topics":["agent-skills","agentic-skills","ai-agent-skills","ai-agents","ai-coding","ai-workflows","antigravity","antigravity-skills","claude-code","claude-code-skills","codex-cli","codex-skills","cursor","cursor-skills","developer-tools","gemini-cli","gemini-skills","kiro","mcp","skill-library"],"license":"mit","html_url":"https://github.com/sickn33/antigravity-awesome-skills","pushed_at":"2026-04-24T06:41:17Z","description":"Installable GitHub library of 1,400+ agentic skills for Claude Code, Cursor, Codex CLI, Gemini CLI, Antigravity, and more. Includes installer CLI, bundles, workflows, and official/community skill collections.","skill_md_sha":"58704080d443e88e5ed61589586b808a6164c357","skill_md_path":"skills/azure-ai-textanalytics-py/SKILL.md","default_branch":"main","skill_tree_url":"https://github.com/sickn33/antigravity-awesome-skills/tree/main/skills/azure-ai-textanalytics-py"},"layout":"multi","source":"github","category":"antigravity-awesome-skills","frontmatter":{"name":"azure-ai-textanalytics-py","description":"Azure AI Text Analytics SDK for sentiment analysis, entity recognition, key phrases, language detection, PII, and healthcare NLP. Use for natural language processing on text."},"skills_sh_url":"https://skills.sh/sickn33/antigravity-awesome-skills/azure-ai-textanalytics-py"},"updatedAt":"2026-04-24T18:50:28.453Z"}}