REST API ve SynapseML ile Dokuda önceden oluşturulmuş Metin Analizi kullanma (önizleme)
Önemli
Bu özellik önizleme aşamasındadır.
Metin Analizi, Doğal Dil İşleme (NLP) özellikleriyle metin madenciliği ve metin analizi gerçekleştirmenizi sağlayan bir Azure yapay zeka hizmetleridir.
Bu öğreticide, RESTful API ile Doku'da metin analizinin kullanılması gösterilmektedir:
- Tümce veya belge düzeyinde yaklaşım etiketlerini algılama.
- Belirli bir metin girişinin dilini tanımlayın.
- Metinden anahtar aşamaları ayıklama.
- Metindeki farklı varlıkları tanımlayın ve bunları önceden tanımlanmış sınıflara veya türlere kategorilere ayırın.
Önkoşullar
# Get workload endpoints and access token
from synapse.ml.mlflow import get_mlflow_env_config
import json
mlflow_env_configs = get_mlflow_env_config()
access_token = access_token = mlflow_env_configs.driver_aad_token
prebuilt_AI_base_host = mlflow_env_configs.workload_endpoint + "cognitive/textanalytics/"
print("Workload endpoint for AI service: \n" + prebuilt_AI_base_host)
service_url = prebuilt_AI_base_host + "language/:analyze-text?api-version=2022-05-01"
# Make a RESful request to AI service
post_headers = {
"Content-Type" : "application/json",
"Authorization" : "Bearer {}".format(access_token)
}
def printresponse(response):
print(f"HTTP {response.status_code}")
if response.status_code == 200:
try:
result = response.json()
print(json.dumps(result, indent=2, ensure_ascii=False))
except:
print(f"pasre error {response.content}")
else:
print(response.headers)
print(f"error message: {response.content}")
Duygu analizi
Yaklaşım Analizi özelliği, yaklaşım etiketlerini ("negatif", "nötr" ve "pozitif" gibi) ve tümce ve belge düzeyinde güvenilirlik puanlarını algılamak için bir yol sağlar. Bu özellik ayrıca pozitif, nötr ve negatif yaklaşım için her belge ve içindeki tümceler için 0 ile 1 arasında güvenilirlik puanları döndürür. Etkinleştirilen dillerin listesi için Yaklaşım Analizi ve Görüş Madenciliği dil desteğine bakın.
import requests
from pprint import pprint
import uuid
post_body = {
"kind": "SentimentAnalysis",
"parameters": {
"modelVersion": "latest",
"opinionMining": "True"
},
"analysisInput":{
"documents":[
{
"id":"1",
"language":"en",
"text": "The food and service were unacceptable. The concierge was nice, however."
}
]
}
}
post_headers["x-ms-workload-resource-moniker"] = str(uuid.uuid1())
response = requests.post(service_url, json=post_body, headers=post_headers)
# Output all information of the request process
printresponse(response)
Çıktı
HTTP 200
{
"kind": "SentimentAnalysisResults",
"results": {
"documents": [
{
"id": "1",
"sentiment": "mixed",
"confidenceScores": {
"positive": 0.43,
"neutral": 0.04,
"negative": 0.53
},
"sentences": [
{
"sentiment": "negative",
"confidenceScores": {
"positive": 0.0,
"neutral": 0.01,
"negative": 0.99
},
"offset": 0,
"length": 40,
"text": "The food and service were unacceptable. ",
"targets": [
{
"sentiment": "negative",
"confidenceScores": {
"positive": 0.01,
"negative": 0.99
},
"offset": 4,
"length": 4,
"text": "food",
"relations": [
{
"relationType": "assessment",
"ref": "#/documents/0/sentences/0/assessments/0"
}
]
},
{
"sentiment": "negative",
"confidenceScores": {
"positive": 0.01,
"negative": 0.99
},
"offset": 13,
"length": 7,
"text": "service",
"relations": [
{
"relationType": "assessment",
"ref": "#/documents/0/sentences/0/assessments/0"
}
]
}
],
"assessments": [
{
"sentiment": "negative",
"confidenceScores": {
"positive": 0.01,
"negative": 0.99
},
"offset": 26,
"length": 12,
"text": "unacceptable",
"isNegated": false
}
]
},
{
"sentiment": "positive",
"confidenceScores": {
"positive": 0.86,
"neutral": 0.08,
"negative": 0.07
},
"offset": 40,
"length": 32,
"text": "The concierge was nice, however.",
"targets": [
{
"sentiment": "positive",
"confidenceScores": {
"positive": 1.0,
"negative": 0.0
},
"offset": 44,
"length": 9,
"text": "concierge",
"relations": [
{
"relationType": "assessment",
"ref": "#/documents/0/sentences/1/assessments/0"
}
]
}
],
"assessments": [
{
"sentiment": "positive",
"confidenceScores": {
"positive": 1.0,
"negative": 0.0
},
"offset": 58,
"length": 4,
"text": "nice",
"isNegated": false
}
]
}
],
"warnings": []
}
],
"errors": [],
"modelVersion": "2022-11-01"
}
}
Dil algılayıcısı
Dil Algılayıcısı her belge için metin girişini değerlendirir ve dil tanımlayıcılarını çözümlemenin gücünü gösteren bir puanla döndürür. Bu özellik, dilin bilinmediği rastgele metni toplayan içerik depoları için kullanışlıdır. Etkinleştirilmiş diller listesi için bkz. Dil algılama için desteklenen diller.
post_body = {
"kind": "LanguageDetection",
"parameters": {
"modelVersion": "latest"
},
"analysisInput":{
"documents":[
{
"id":"1",
"text": "This is a document written in English."
}
]
}
}
post_headers["x-ms-workload-resource-moniker"] = str(uuid.uuid1())
response = requests.post(service_url, json=post_body, headers=post_headers)
# Output all information of the request process
printresponse(response)
Çıktı
HTTP 200
{
"kind": "LanguageDetectionResults",
"results": {
"documents": [
{
"id": "1",
"detectedLanguage": {
"name": "English",
"iso6391Name": "en",
"confidenceScore": 0.99
},
"warnings": []
}
],
"errors": [],
"modelVersion": "2022-10-01"
}
}
Anahtar İfade Ayıklayıcı
Anahtar İfade Ayıklama yapılandırılmamış metni değerlendirir ve anahtar ifadelerin listesini döndürür. Bir belge koleksiyonundaki ana noktaları hızlı şekilde belirlemeniz gerekiyorsa bu özellik kullanışlıdır. Etkin diller listesi için anahtar tümcecik ayıklama için desteklenen diller bölümüne bakın.
post_body = {
"kind": "KeyPhraseExtraction",
"parameters": {
"modelVersion": "latest"
},
"analysisInput":{
"documents":[
{
"id":"1",
"language":"en",
"text": "Dr. Smith has a very modern medical office, and she has great staff."
}
]
}
}
post_headers["x-ms-workload-resource-moniker"] = str(uuid.uuid1())
response = requests.post(service_url, json=post_body, headers=post_headers)
# Output all information of the request process
printresponse(response)
Çıktı
HTTP 200
{
"kind": "KeyPhraseExtractionResults",
"results": {
"documents": [
{
"id": "1",
"keyPhrases": [
"modern medical office",
"Dr. Smith",
"great staff"
],
"warnings": []
}
],
"errors": [],
"modelVersion": "2022-10-01"
}
}
Adlandırılmış Varlık Tanıma (NER)
Adlandırılmış Varlık Tanıma (NER), metindeki farklı varlıkları tanımlama ve bunları önceden tanımlanmış sınıflara veya türlere (kişi, konum, olay, ürün ve kuruluş gibi) kategorilere ayırma özelliğidir. Etkin dillerin listesi için bkz. NER dil desteği .
post_body = {
"kind": "EntityRecognition",
"parameters": {
"modelVersion": "latest"
},
"analysisInput":{
"documents":[
{
"id":"1",
"language": "en",
"text": "I had a wonderful trip to Seattle last week."
}
]
}
}
post_headers["x-ms-workload-resource-moniker"] = str(uuid.uuid1())
response = requests.post(service_url, json=post_body, headers=post_headers)
# Output all information of the request process
printresponse(response)
Çıktı
HTTP 200
{
"kind": "EntityRecognitionResults",
"results": {
"documents": [
{
"id": "1",
"entities": [
{
"text": "trip",
"category": "Event",
"offset": 18,
"length": 4,
"confidenceScore": 0.74
},
{
"text": "Seattle",
"category": "Location",
"subcategory": "GPE",
"offset": 26,
"length": 7,
"confidenceScore": 1.0
},
{
"text": "last week",
"category": "DateTime",
"subcategory": "DateRange",
"offset": 34,
"length": 9,
"confidenceScore": 0.8
}
],
"warnings": []
}
],
"errors": [],
"modelVersion": "2021-06-01"
}
}
Varlık bağlama
İlgili içerik
- SynapseML ile Dokuda önceden oluşturulmuş Metin Analizi kullanma
- REST API ile Doku'da önceden oluşturulmuş Azure AI Çeviri kullanma
- SynapseML ile Dokuda önceden oluşturulmuş Azure AI Çeviri kullanma
- REST API ile dokuda önceden oluşturulmuş Azure OpenAI kullanma
- Python SDK ile Dokuda önceden oluşturulmuş Azure OpenAI kullanma
- SynapseML ile Dokuda önceden oluşturulmuş Azure OpenAI kullanma
Geri Bildirim
https://aka.ms/ContentUserFeedback.
Çok yakında: 2024 boyunca, içerik için geri bildirim mekanizması olarak GitHub Sorunları’nı kullanımdan kaldıracak ve yeni bir geri bildirim sistemiyle değiştireceğiz. Daha fazla bilgi için bkz.Gönderin ve geri bildirimi görüntüleyin