Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -910,7 +910,7 @@ def __init__(self, **kwargs):
def _from_generated(cls, score):
return cls(
positive=score.positive,
neutral=score.neutral if hasattr(score, "netural") else 0.0,
neutral=score.neutral if hasattr(score, "neutral") else 0.0,
negative=score.negative
)

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -45,7 +45,7 @@ def test_all_successful_passing_dict(self, client):
for doc in response:
self.assertIsNotNone(doc.id)
self.assertIsNotNone(doc.statistics)
self.assertIsNotNone(doc.confidence_scores)
self.validateConfidenceScores(doc.confidence_scores)
self.assertIsNotNone(doc.sentences)

self.assertEqual(len(response[0].sentences), 1)
Expand All @@ -72,7 +72,7 @@ def test_all_successful_passing_text_document_input(self, client):
self.assertEqual(response[2].sentiment, "positive")

for doc in response:
self.assertIsNotNone(doc.confidence_scores)
self.validateConfidenceScores(doc.confidence_scores)
self.assertIsNotNone(doc.sentences)

self.assertEqual(len(response[0].sentences), 1)
Expand Down Expand Up @@ -589,28 +589,25 @@ def test_opinion_mining(self, client):
aspect = mined_opinion.aspect
self.assertEqual('design', aspect.text)
self.assertEqual('positive', aspect.sentiment)
self.assertIsNotNone(aspect.confidence_scores.positive)
self.assertEqual(0.0, aspect.confidence_scores.neutral)
self.assertIsNotNone(aspect.confidence_scores.negative)
self.validateConfidenceScores(aspect.confidence_scores)
self.assertEqual(32, aspect.offset)
self.assertEqual(6, aspect.length)

sleek_opinion = mined_opinion.opinions[0]
self.assertEqual('sleek', sleek_opinion.text)
self.assertEqual('positive', sleek_opinion.sentiment)
self.assertIsNotNone(sleek_opinion.confidence_scores.positive)
self.assertEqual(0.0, sleek_opinion.confidence_scores.neutral)
self.assertIsNotNone(sleek_opinion.confidence_scores.negative)
self.validateConfidenceScores(sleek_opinion.confidence_scores)
self.assertEqual(9, sleek_opinion.offset)
self.assertEqual(5, sleek_opinion.length)
self.assertFalse(sleek_opinion.is_negated)

premium_opinion = mined_opinion.opinions[1]
self.assertEqual('premium', premium_opinion.text)
self.assertEqual('positive', premium_opinion.sentiment)
self.assertIsNotNone(premium_opinion.confidence_scores.positive)
self.assertEqual(0.0, premium_opinion.confidence_scores.neutral)
self.assertIsNotNone(premium_opinion.confidence_scores.negative)
self.validateConfidenceScores(premium_opinion.confidence_scores)
self.assertEqual(15, premium_opinion.offset)
self.assertEqual(7, premium_opinion.length)
self.assertFalse(premium_opinion.is_negated)
Expand All @@ -630,17 +627,15 @@ def test_opinion_mining_with_negated_opinion(self, client):

self.assertEqual('food', food_aspect.text)
self.assertEqual('negative', food_aspect.sentiment)
self.assertIsNotNone(food_aspect.confidence_scores.positive)
self.assertEqual(0.0, food_aspect.confidence_scores.neutral)
self.assertIsNotNone(food_aspect.confidence_scores.negative)
self.validateConfidenceScores(food_aspect.confidence_scores)
self.assertEqual(4, food_aspect.offset)
self.assertEqual(4, food_aspect.length)

self.assertEqual('service', service_aspect.text)
self.assertEqual('negative', service_aspect.sentiment)
self.assertIsNotNone(service_aspect.confidence_scores.positive)
self.assertEqual(0.0, service_aspect.confidence_scores.neutral)
self.assertIsNotNone(service_aspect.confidence_scores.negative)
self.validateConfidenceScores(service_aspect.confidence_scores)
self.assertEqual(13, service_aspect.offset)
self.assertEqual(7, service_aspect.length)

Expand All @@ -650,9 +645,8 @@ def test_opinion_mining_with_negated_opinion(self, client):

self.assertEqual('good', food_opinion.text)
self.assertEqual('negative', food_opinion.sentiment)
self.assertIsNotNone(food_opinion.confidence_scores.positive)
self.assertEqual(0.0, food_opinion.confidence_scores.neutral)
self.assertIsNotNone(food_opinion.confidence_scores.negative)
self.validateConfidenceScores(food_opinion.confidence_scores)
self.assertEqual(28, food_opinion.offset)
self.assertEqual(4, food_opinion.length)
self.assertTrue(food_opinion.is_negated)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -61,7 +61,7 @@ async def test_all_successful_passing_dict(self, client):
for doc in response:
self.assertIsNotNone(doc.id)
self.assertIsNotNone(doc.statistics)
self.assertIsNotNone(doc.confidence_scores)
self.validateConfidenceScores(doc.confidence_scores)
self.assertIsNotNone(doc.sentences)

self.assertEqual(len(response[0].sentences), 1)
Expand All @@ -88,7 +88,7 @@ async def test_all_successful_passing_text_document_input(self, client):
self.assertEqual(response[2].sentiment, "positive")

for doc in response:
self.assertIsNotNone(doc.confidence_scores)
self.validateConfidenceScores(doc.confidence_scores)
self.assertIsNotNone(doc.sentences)

self.assertEqual(len(response[0].sentences), 1)
Expand Down Expand Up @@ -605,28 +605,25 @@ async def test_opinion_mining(self, client):
aspect = mined_opinion.aspect
self.assertEqual('design', aspect.text)
self.assertEqual('positive', aspect.sentiment)
self.assertIsNotNone(aspect.confidence_scores.positive)
self.assertEqual(0.0, aspect.confidence_scores.neutral)
self.assertIsNotNone(aspect.confidence_scores.negative)
self.validateConfidenceScores(aspect.confidence_scores)
self.assertEqual(32, aspect.offset)
self.assertEqual(6, aspect.length)

sleek_opinion = mined_opinion.opinions[0]
self.assertEqual('sleek', sleek_opinion.text)
self.assertEqual('positive', sleek_opinion.sentiment)
self.assertIsNotNone(sleek_opinion.confidence_scores.positive)
self.assertEqual(0.0, sleek_opinion.confidence_scores.neutral)
self.assertIsNotNone(sleek_opinion.confidence_scores.negative)
self.validateConfidenceScores(sleek_opinion.confidence_scores)
self.assertEqual(9, sleek_opinion.offset)
self.assertEqual(5, sleek_opinion.length)
self.assertFalse(sleek_opinion.is_negated)

premium_opinion = mined_opinion.opinions[1]
self.assertEqual('premium', premium_opinion.text)
self.assertEqual('positive', premium_opinion.sentiment)
self.assertIsNotNone(premium_opinion.confidence_scores.positive)
self.assertEqual(0.0, premium_opinion.confidence_scores.neutral)
self.assertIsNotNone(premium_opinion.confidence_scores.negative)
self.validateConfidenceScores(premium_opinion.confidence_scores)
self.assertEqual(15, premium_opinion.offset)
self.assertEqual(7, premium_opinion.length)
self.assertFalse(premium_opinion.is_negated)
Expand All @@ -646,17 +643,15 @@ async def test_opinion_mining_with_negated_opinion(self, client):

self.assertEqual('food', food_aspect.text)
self.assertEqual('negative', food_aspect.sentiment)
self.assertIsNotNone(food_aspect.confidence_scores.positive)
self.assertEqual(0.0, food_aspect.confidence_scores.neutral)
self.assertIsNotNone(food_aspect.confidence_scores.negative)
self.validateConfidenceScores(food_aspect.confidence_scores)
self.assertEqual(4, food_aspect.offset)
self.assertEqual(4, food_aspect.length)

self.assertEqual('service', service_aspect.text)
self.assertEqual('negative', service_aspect.sentiment)
self.assertIsNotNone(service_aspect.confidence_scores.positive)
self.assertEqual(0.0, service_aspect.confidence_scores.neutral)
self.assertIsNotNone(service_aspect.confidence_scores.negative)
self.validateConfidenceScores(service_aspect.confidence_scores)
self.assertEqual(13, service_aspect.offset)
self.assertEqual(7, service_aspect.length)

Expand All @@ -666,9 +661,8 @@ async def test_opinion_mining_with_negated_opinion(self, client):

self.assertEqual('good', food_opinion.text)
self.assertEqual('negative', food_opinion.sentiment)
self.assertIsNotNone(food_opinion.confidence_scores.positive)
self.assertEqual(0.0, food_opinion.confidence_scores.neutral)
self.assertIsNotNone(food_opinion.confidence_scores.negative)
self.validateConfidenceScores(food_opinion.confidence_scores)
self.assertEqual(28, food_opinion.offset)
self.assertEqual(4, food_opinion.length)
self.assertTrue(food_opinion.is_negated)
Expand Down
9 changes: 9 additions & 0 deletions sdk/textanalytics/azure-ai-textanalytics/tests/testcase.py
Original file line number Diff line number Diff line change
Expand Up @@ -56,11 +56,20 @@ def assertOpinionsEqual(self, opinion_one, opinion_two):
self.assertEqual(opinion_one.confidence_scores.positive, opinion_two.confidence_scores.positive)
self.assertEqual(opinion_one.confidence_scores.neutral, opinion_two.confidence_scores.neutral)
self.assertEqual(opinion_one.confidence_scores.negative, opinion_two.confidence_scores.negative)
self.validateConfidenceScores(opinion_one.confidence_scores)
self.assertEqual(opinion_one.offset, opinion_two.offset)
self.assertEqual(opinion_one.length, opinion_two.length)
self.assertEqual(opinion_one.text, opinion_two.text)
self.assertEqual(opinion_one.is_negated, opinion_two.is_negated)

def validateConfidenceScores(self, confidence_scores):
self.assertIsNotNone(confidence_scores.positive)
self.assertIsNotNone(confidence_scores.neutral)
self.assertIsNotNone(confidence_scores.negative)
self.assertEqual(
confidence_scores.positive + confidence_scores.neutral + confidence_scores.negative, 1
)


class GlobalResourceGroupPreparer(AzureMgmtPreparer):
def __init__(self):
Expand Down