-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathEntity_Label_Assist.py
More file actions
72 lines (59 loc) · 3.01 KB
/
Entity_Label_Assist.py
File metadata and controls
72 lines (59 loc) · 3.01 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
from google.cloud import language_v1
from google.cloud.language_v1 import enums
import pandas as pd
def sample_analyze_entity_sentiment(text_content):
"""
Analyzing Entity Sentiment in a String
Args:
text_content The text content to analyze
"""
client = language_v1.LanguageServiceClient()
# Available types: PLAIN_TEXT, HTML
type_ = enums.Document.Type.PLAIN_TEXT
# Optional. If not specified, the language is automatically detected.
# For list of supported languages:
# https://cloud.google.com/natural-language/docs/languages
language = "en"
document = {"content": text_content, "type": type_, "language": language}
# Available values: NONE, UTF8, UTF16, UTF32
encoding_type = enums.EncodingType.UTF8
response = client.analyze_entity_sentiment(document, encoding_type=encoding_type)
# Loop through entitites returned from the API
result = []
for entity in response.entities:
e_result = []
# print(u"Representative name for the entity: {}".format(entity.name))
e_result.append(entity.name)
# Get entity type, e.g. PERSON, LOCATION, ADDRESS, NUMBER, et al
# print(u"Entity type: {}".format(enums.Entity.Type(entity.type).name))
e_result.append(enums.Entity.Type(entity.type).name)
# Get the salience score associated with the entity in the [0, 1.0] range
# print(u"Salience score: {}".format(entity.salience))
# Get the aggregate sentiment expressed for this entity in the provided document.
e_result.append(entity.salience)
sentiment = entity.sentiment
e_result.append(entity.sentiment.score)
#
# print(u"Entity sentiment score: {}".format(sentiment.score))
# print(u"Entity sentiment magnitude: {}".format(sentiment.magnitude))
e_result.append(entity.sentiment.magnitude)
# Loop over the metadata associated with entity. For many known entities,
# the metadata is a Wikipedia URL (wikipedia_url) and Knowledge Graph MID (mid).
# Some entity types may have additional metadata, e.g. ADDRESS entities
# may have metadata for the address street_name, postal_code, et al.
# for metadata_name, metadata_value in entity.metadata.items():
# print(u"{} = {}".format(metadata_name, metadata_value))
# Loop over the mentions of this entity in the input document.
# The API currently supports proper noun mentions.
# for mention in entity.mentions:
# print(u"Mention text: {}".format(mention.text.content))
# Get the mention type, e.g. PROPER for proper noun
# print(
# u"Mention type: {}".format(enums.EntityMention.Type(mention.type).name)
# )
result.append(e_result)
return result
# Get the language of the text, which will be the same as
# the language specified in the request or, if not specified,
# the automatically-detected language.
# print(u"Language of the text: {}".format(response.language))