Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Appearance settings

Commit b61b82c

Browse filesBrowse files
committed
Splitting out wikipedia_url as own property in language.
1 parent 9a47ded commit b61b82c
Copy full SHA for b61b82c

File tree

Expand file treeCollapse file tree

5 files changed

+60
-46
lines changed
Filter options
Expand file treeCollapse file tree

5 files changed

+60
-46
lines changed

‎docs/language-usage.rst

Copy file name to clipboardExpand all lines: docs/language-usage.rst
+30-24Lines changed: 30 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -171,25 +171,29 @@ metadata and other properties.
171171
>>> entities = document.analyze_entities()
172172
>>> for entity in entities:
173173
... print('=' * 20)
174-
... print(' name: %s' % (entity.name,))
175-
... print(' type: %s' % (entity.entity_type,))
176-
... print('metadata: %s' % (entity.metadata,))
177-
... print('salience: %s' % (entity.salience,))
174+
... print(' name: %s' % (entity.name,))
175+
... print(' type: %s' % (entity.entity_type,))
176+
... print('wikipedia_url: %s' % (entity.wikipedia_url,))
177+
... print(' metadata: %s' % (entity.metadata,))
178+
... print(' salience: %s' % (entity.salience,))
178179
====================
179-
name: Michelangelo Caravaggio
180-
type: PERSON
181-
metadata: {'wikipedia_url': 'http://en.wikipedia.org/wiki/Caravaggio'}
182-
salience: 0.7615959
180+
name: Michelangelo Caravaggio
181+
type: PERSON
182+
wikipedia_url: http://en.wikipedia.org/wiki/Caravaggio
183+
metadata: {}
184+
salience: 0.7615959
183185
====================
184-
name: Italian
185-
type: LOCATION
186-
metadata: {'wikipedia_url': 'http://en.wikipedia.org/wiki/Italy'}
187-
salience: 0.19960518
186+
name: Italian
187+
type: LOCATION
188+
wikipedia_url: http://en.wikipedia.org/wiki/Italy
189+
metadata: {}
190+
salience: 0.19960518
188191
====================
189-
name: The Calling of Saint Matthew
190-
type: EVENT
191-
metadata: {'wikipedia_url': 'http://en.wikipedia.org/wiki/The_Calling_of_St_Matthew_(Caravaggio)'}
192-
salience: 0.038798928
192+
name: The Calling of Saint Matthew
193+
type: EVENT
194+
wikipedia_url: http://en.wikipedia.org/wiki/The_Calling_of_St_Matthew_(Caravaggio)
195+
metadata: {}
196+
salience: 0.038798928
193197
194198
Analyze Sentiment
195199
-----------------
@@ -266,14 +270,16 @@ the response is :data:`None`.
266270
>>> # Entities present if include_entities=True
267271
>>> for entity in annotations.entities:
268272
... print('=' * 20)
269-
... print(' name: %s' % (entity.name,))
270-
... print(' type: %s' % (entity.entity_type,))
271-
... print('metadata: %s' % (entity.metadata,))
272-
... print('salience: %s' % (entity.salience,))
273+
... print(' name: %s' % (entity.name,))
274+
... print(' type: %s' % (entity.entity_type,))
275+
... print('wikipedia_url: %s' % (entity.wikipedia_url,))
276+
... print(' metadata: %s' % (entity.metadata,))
277+
... print(' salience: %s' % (entity.salience,))
273278
====================
274-
name: Moon
275-
type: LOCATION
276-
metadata: {'wikipedia_url': 'http://en.wikipedia.org/wiki/Natural_satellite'}
277-
salience: 0.11793101
279+
name: Moon
280+
type: LOCATION
281+
wikipedia_url: http://en.wikipedia.org/wiki/Natural_satellite
282+
metadata: {}
283+
salience: 0.11793101
278284
279285
.. _Features: https://cloud.google.com/natural-language/reference/rest/v1beta1/documents/annotateText#Features

‎gcloud/language/entity.py

Copy file name to clipboardExpand all lines: gcloud/language/entity.py
+5Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -53,6 +53,10 @@ class Entity(object):
5353
an organization, or location. The API associates information, such as
5454
salience and mentions, with entities.
5555
56+
The only supported metadata (as of August 2016) is ``wikipedia_url``,
57+
so this value will be removed from the passed in ``metadata``
58+
and put in its own property.
59+
5660
See:
5761
https://cloud.google.com/natural-language/reference/rest/v1beta1/Entity
5862
@@ -78,6 +82,7 @@ class Entity(object):
7882
def __init__(self, name, entity_type, metadata, salience, mentions):
7983
self.name = name
8084
self.entity_type = entity_type
85+
self.wikipedia_url = metadata.pop('wikipedia_url', None)
8186
self.metadata = metadata
8287
self.salience = salience
8388
self.mentions = mentions

‎gcloud/language/test_document.py

Copy file name to clipboardExpand all lines: gcloud/language/test_document.py
+7-10Lines changed: 7 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -102,20 +102,15 @@ def test_analyze_entities(self):
102102
name1 = 'R-O-C-K'
103103
name2 = 'USA'
104104
content = name1 + ' in the ' + name2
105-
metadata1 = {
106-
'wikipedia_url': 'http://en.wikipedia.org/wiki/Rock_music',
107-
}
108-
metadata2 = {
109-
'wikipedia_url': 'http://en.wikipedia.org/wiki/United_States',
110-
}
105+
wiki2 = 'http://en.wikipedia.org/wiki/United_States'
111106
salience1 = 0.91391456
112107
salience2 = 0.086085409
113108
response = {
114109
'entities': [
115110
{
116111
'name': name1,
117112
'type': EntityType.OTHER,
118-
'metadata': metadata1,
113+
'metadata': {},
119114
'salience': salience1,
120115
'mentions': [
121116
{
@@ -129,7 +124,7 @@ def test_analyze_entities(self):
129124
{
130125
'name': name2,
131126
'type': EntityType.LOCATION,
132-
'metadata': metadata2,
127+
'metadata': {'wikipedia_url': wiki2},
133128
'salience': salience2,
134129
'mentions': [
135130
{
@@ -153,14 +148,16 @@ def test_analyze_entities(self):
153148
self.assertIsInstance(entity1, Entity)
154149
self.assertEqual(entity1.name, name1)
155150
self.assertEqual(entity1.entity_type, EntityType.OTHER)
156-
self.assertEqual(entity1.metadata, metadata1)
151+
self.assertEqual(entity1.wikipedia_url, None)
152+
self.assertEqual(entity1.metadata, {})
157153
self.assertEqual(entity1.salience, salience1)
158154
self.assertEqual(entity1.mentions, [name1])
159155
entity2 = entities[1]
160156
self.assertIsInstance(entity2, Entity)
161157
self.assertEqual(entity2.name, name2)
162158
self.assertEqual(entity2.entity_type, EntityType.LOCATION)
163-
self.assertEqual(entity2.metadata, metadata2)
159+
self.assertEqual(entity2.wikipedia_url, wiki2)
160+
self.assertEqual(entity2.metadata, {})
164161
self.assertEqual(entity2.salience, salience2)
165162
self.assertEqual(entity2.mentions, [name2])
166163

‎gcloud/language/test_entity.py

Copy file name to clipboardExpand all lines: gcloud/language/test_entity.py
+10-5Lines changed: 10 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -27,14 +27,18 @@ def _makeOne(self, *args, **kw):
2727
def test_constructor_defaults(self):
2828
name = 'Italian'
2929
entity_type = 'LOCATION'
30-
metadata = {'wikipedia_url': 'http://en.wikipedia.org/wiki/Italy'}
30+
wiki_url = 'http://en.wikipedia.org/wiki/Italy'
31+
metadata = {'wikipedia_url': wiki_url}
32+
base_metadata = {'foo': 'bar'}
33+
metadata.update(base_metadata)
3134
salience = 0.19960518
3235
mentions = ['Italian']
3336
entity = self._makeOne(name, entity_type, metadata,
3437
salience, mentions)
3538
self.assertEqual(entity.name, name)
3639
self.assertEqual(entity.entity_type, entity_type)
37-
self.assertEqual(entity.metadata, metadata)
40+
self.assertEqual(entity.wikipedia_url, wiki_url)
41+
self.assertEqual(entity.metadata, base_metadata)
3842
self.assertEqual(entity.salience, salience)
3943
self.assertEqual(entity.mentions, mentions)
4044

@@ -43,15 +47,15 @@ def test_from_api_repr(self):
4347
name = 'Italy'
4448
entity_type = 'LOCATION'
4549
salience = 0.223
46-
metadata = {'wikipedia_url': 'http://en.wikipedia.org/wiki/Italy'}
50+
wiki_url = 'http://en.wikipedia.org/wiki/Italy'
4751
mention1 = 'Italy'
4852
mention2 = 'To Italy'
4953
mention3 = 'From Italy'
5054
payload = {
5155
'name': name,
5256
'type': entity_type,
5357
'salience': salience,
54-
'metadata': metadata,
58+
'metadata': {'wikipedia_url': wiki_url},
5559
'mentions': [
5660
{'text': {'content': mention1}},
5761
{'text': {'content': mention2}},
@@ -62,5 +66,6 @@ def test_from_api_repr(self):
6266
self.assertEqual(entity.name, name)
6367
self.assertEqual(entity.entity_type, entity_type)
6468
self.assertEqual(entity.salience, salience)
65-
self.assertEqual(entity.metadata, metadata)
69+
self.assertEqual(entity.wikipedia_url, wiki_url)
70+
self.assertEqual(entity.metadata, {})
6671
self.assertEqual(entity.mentions, [mention1, mention2, mention3])

‎system_tests/language.py

Copy file name to clipboardExpand all lines: system_tests/language.py
+8-7Lines changed: 8 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -46,22 +46,23 @@ def test_analyze_entities(self):
4646
self.assertEqual(entity1.entity_type, EntityType.PERSON)
4747
self.assertTrue(0.7 < entity1.salience < 0.8)
4848
self.assertEqual(entity1.mentions, [entity1.name])
49-
self.assertEqual(entity1.metadata, {
50-
'wikipedia_url': 'http://en.wikipedia.org/wiki/Caravaggio',
51-
})
49+
self.assertEqual(entity1.wikipedia_url,
50+
'http://en.wikipedia.org/wiki/Caravaggio')
51+
self.assertEqual(entity1.metadata, {})
5252
# Verify entity 2.
5353
self.assertEqual(entity2.name, 'Italian')
5454
self.assertEqual(entity2.entity_type, EntityType.LOCATION)
5555
self.assertTrue(0.15 < entity2.salience < 0.25)
5656
self.assertEqual(entity2.mentions, [entity2.name])
57-
self.assertEqual(entity2.metadata, {
58-
'wikipedia_url': 'http://en.wikipedia.org/wiki/Italy',
59-
})
57+
self.assertEqual(entity2.wikipedia_url,
58+
'http://en.wikipedia.org/wiki/Italy')
59+
self.assertEqual(entity2.metadata, {})
6060
# Verify entity 3.
6161
self.assertEqual(entity3.name, 'The Calling of Saint Matthew')
6262
self.assertEqual(entity3.entity_type, EntityType.EVENT)
6363
self.assertTrue(0 < entity3.salience < 0.1)
6464
self.assertEqual(entity3.mentions, [entity3.name])
6565
wiki_url = ('http://en.wikipedia.org/wiki/'
6666
'The_Calling_of_St_Matthew_(Caravaggio)')
67-
self.assertEqual(entity3.metadata, {'wikipedia_url': wiki_url})
67+
self.assertEqual(entity3.wikipedia_url, wiki_url)
68+
self.assertEqual(entity3.metadata, {})

0 commit comments

Comments
0 (0)
Morty Proxy This is a proxified and sanitized view of the page, visit original site.