When given a text document, the keyword tagging service automatically extracts keywords or key phrases that best describe the subject of the document. In order to extract keywords, a combination of named entity recognition (NER) and unsupervised keyword tagging algorithms are used.
The following table lists the named entities that Content Tagging can identify:
Entity name | Description |
---|---|
PERSON | People, including fictional ones. |
GPE | Countries, cities, and states. |
LOC | Non-GPE locations, mountain ranges, and bodies of water. |
FAC | Buildings, airports, highways, bridges, etc. |
ORG | Companies, agencies, institutions, etc. |
PRODUCT | Objects, vehicles, foods, etc. (Not services.) |
EVENT | Named hurricanes, battles, wars, sports events, etc. |
WORK_OF_ART | Titles of books, songs, etc. |
LAW | Named documents made into laws. |
LANGUAGE | Any named language. |
API format
POST /services/v2/predict
Request
The following request extracts keywords from a document based on the input parameters provided in the payload.
See the table below the example payload for more information on the input parameters shown.
This sample pdf file was used in the example shown in this document.
curl -w'\n' -i -X POST https://sensei.adobe.io/services/v2/predict \
-H 'Prefer: respond-async, wait=59' \
-H "x-api-key: $API_KEY" \
-H "content-type: multipart/form-data" \
-H "authorization: Bearer $API_TOKEN" \
-F 'contentAnalyzerRequests={
"sensei:name": "test",
"sensei:invocation_mode": "synchronous",
"sensei:invocation_batch": false,
"sensei:engines": [
{
"sensei:execution_info": {
"sensei:engine": "Feature:cintel-ner:Service-1e9081c865214d1e8bace51dd918b5c0"
},
"sensei:inputs": {
"documents": [
{
"sensei:multipart_field_name": "infile_1",
"dc:format": "application/pdf"
}
]
},
"sensei:params": {
"application-id": "1234",
"min_key_phrase_length": 1,
"max_key_phrase_length": 3,
"top_n": 5,
"last_semantic_unit_type": "concept"
},
"sensei:outputs":{
"result" : {
"sensei:multipart_field_name" : "result",
"dc:format": "application/json"
}
}
}
]
}' \
-F 'infile_1=@simple-text.pdf'
Input parameters
Property | Description | Mandatory |
---|---|---|
top_n |
Number of results to be returned. 0, to return all results. When used in conjunction with threshold, the number of results returned will be less than either limit. | No |
min_relevance |
Score threshold below which results must be returned. Exclude the parameter to return all results. | No |
min_key_phrase_length |
Minimum number of words required in the key phrases. | No |
max_key_phrase_length |
Maximum number of words required in the key phrases. | No |
last_semantic_unit_type |
Return only semantic units up to the given level in the hierarchical response. “key_phrase” returns only key phrases, “linked_entity” returns only key phrases and their corresponding linked entities, and “concept” returns key phrases, linked entities and concepts. | No |
entity_types |
Types of entities to be returned as key phrases. | No |
Document object
Name | Data Type | Required | Default | Values | Description |
---|---|---|---|---|---|
repo:path |
string | - | - | - | Presigned url of the document from which key phrases are to be extracted. |
sensei:repoType |
string | - | - | HTTPS | Type of repo where the document is being stored. |
sensei:multipart_field_name |
string | - | - | - | Use this when passing the document as a multipart argument instead of using presigned urls. |
dc:format |
string | Yes | - | “text/plain”, “application/pdf”, “text/pdf”, “text/html”, “text/rtf”, “application/rtf”, “application/msword”, “application/vnd.openxmlformats-officedocument.wordprocessingml.document”, “application/mspowerpoint”, “application/vnd.ms-powerpoint”, “application/vnd.openxmlformats-officedocument.presentationml.presentation” |
Document encoding is checked against allowed input encoding types before being processed. |
Response
A successful response returns a JSON object containing extracted keywords in the response
array.
{
[
{
"key_phrases": [
{
"name": "Canada",
"type": "GPE",
"relevance": 0.9525035277863068,
"confidence": 1.0,
"linked_entity": {
"name": "Canada",
"id": "b27a82e6-e963-45de-add8-dc4f3f0dd399",
"confidence": 1.0,
"relevance": 0.9706433035237365,
"concepts": [
{
"name": "Commonwealth realm",
"relationship": "instance_of",
"id": "f5354ab6-ad25-406a-b289-9209db0db8ea",
"confidence": 1.0,
"relevance": 0.9525035277863066
},
{
"name": "sovereign state",
"relationship": "instance_of",
"id": "10c24191-beef-43cc-a823-c170f217fe12",
"confidence": 1.0,
"relevance": 0.9525035277863066
},
{
"name": "dominion of the British Empire",
"relationship": "instance_of",
"id": "4ffabaee-e6ab-422d-b121-145dcdbcf427",
"confidence": 1.0,
"relevance": 0.9525035277863066
},
{
"name": "country",
"relationship": "instance_of",
"id": "6e8f43cb-7e64-41fc-93b4-119adfe87926",
"confidence": 1.0,
"relevance": 0.9525035277863066
},
{
"name": "North America",
"relationship": "part_of",
"id": "0f4b1f78-9681-414a-91c6-576ed643941a",
"confidence": 1.0,
"relevance": 0.9525035277863066
}
]
}
},
{
"name": "Sherlock Homles",
"type": "ENTITY_UNKNOWN_TYPE",
"relevance": 0.9516463011782174,
"confidence": 1.0,
"linked_entity": null
},
{
"name": "Albert Einstein",
"type": "PERSON",
"relevance": 0.95080732382989,
"confidence": 1.0,
"linked_entity": {
"name": "Albert Einstein",
"id": "0fdb37f6-f575-4b4d-91e9-fbff57eae0ab",
"confidence": 1.0,
"relevance": 0.9695742180192723,
"concepts": [
{
"name": "pedagogue",
"relationship": "occupation",
"id": "1439eb14-2988-43cc-865d-ad5a60d3ea62",
"confidence": 1.0,
"relevance": 0.9508073238298899
},
{
"name": "philosopher of science",
"relationship": "occupation",
"id": "eefb9bbf-e617-4434-abb2-56b5853abd3a",
"confidence": 1.0,
"relevance": 0.9508073238298899
},
{
"name": "university teacher",
"relationship": "occupation",
"id": "bb2c4745-4116-46ef-a122-c28c2f902026",
"confidence": 1.0,
"relevance": 0.9508073238298899
},
{
"name": "science writer",
"relationship": "occupation",
"id": "5084431d-9073-45cb-be82-4a6898becd5b",
"confidence": 1.0,
"relevance": 0.9508073238298899
},
{
"name": "non-fiction writer",
"relationship": "occupation",
"id": "57cc1f7b-5391-458b-9303-ec35b3ba01a4",
"confidence": 1.0,
"relevance": 0.9508073238298899
},
{
"name": "patent examiner",
"relationship": "occupation",
"id": "d3f10fc5-ca81-4049-8c48-3d935552d9e7",
"confidence": 1.0,
"relevance": 0.9508073238298899
},
{
"name": "philosopher",
"relationship": "occupation",
"id": "04d3cd32-68ad-4b71-9231-bdf3acfb09b2",
"confidence": 1.0,
"relevance": 0.9508073238298899
},
{
"name": "scientist",
"relationship": "occupation",
"id": "dc8c068b-aa75-4ece-acd7-06fa304964fb",
"confidence": 1.0,
"relevance": 0.9508073238298899
},
{
"name": "physicist",
"relationship": "occupation",
"id": "56ac942c-12a2-42c1-b10c-d1394a7971af",
"confidence": 1.0,
"relevance": 0.9508073238298899
},
{
"name": "teacher",
"relationship": "occupation",
"id": "c70301bd-bcf4-47ab-b958-b983f0b0a6bd",
"confidence": 1.0,
"relevance": 0.9508073238298899
},
{
"name": "human",
"relationship": "instance_of",
"id": "ead8a1d7-f901-44e6-b80f-63ebbbca4ffe",
"confidence": 1.0,
"relevance": 0.9508073238298899
},
{
"name": "professor",
"relationship": "occupation",
"id": "c6d691f2-1e26-49fd-8481-58cb2d64d3e9",
"confidence": 1.0,
"relevance": 0.9508073238298899
},
{
"name": "mathematician",
"relationship": "occupation",
"id": "23bf46db-a69a-4546-b18a-690a41144caa",
"confidence": 1.0,
"relevance": 0.9508073238298899
},
{
"name": "theoretical physics",
"relationship": "field_of_work",
"id": "d6c03027-4efd-49d6-a7e5-ac4994c9143e",
"confidence": 1.0,
"relevance": 0.9508073238298899
},
{
"name": "theoretical physicist",
"relationship": "occupation",
"id": "eedb6531-c2bf-4d05-af92-6f21751bc894",
"confidence": 1.0,
"relevance": 0.9508073238298899
},
{
"name": "inventor",
"relationship": "occupation",
"id": "7baf322e-5913-4e2a-997a-90a039b0ff5c",
"confidence": 1.0,
"relevance": 0.9508073238298899
},
{
"name": "writer",
"relationship": "occupation",
"id": "4c4c287c-0d83-4da3-b8c7-26df5adc9b33",
"confidence": 1.0,
"relevance": 0.9508073238298899
}
]
}
},
{
"name": "Toronto",
"type": "GPE",
"relevance": 0.9370046727951885,
"confidence": 1.0,
"linked_entity": {
"name": "Toronto",
"id": "762db630-b272-4828-b1af-e7c65334e1d3",
"confidence": 1.0,
"relevance": 0.9608202651283239,
"concepts": [
{
"name": "provincial or territorial capital city in Canada",
"relationship": "instance_of",
"id": "d7447629-e940-43b1-a726-4ac3f675410c",
"confidence": 1.0,
"relevance": 0.9370046727951883
},
{
"name": "city",
"relationship": "instance_of",
"id": "d9d95c34-a2ce-4098-bd9d-3616b85620a8",
"confidence": 1.0,
"relevance": 0.9370046727951883
},
{
"name": "big city",
"relationship": "instance_of",
"id": "68275742-3451-40af-8f5a-84211953a438",
"confidence": 1.0,
"relevance": 0.9370046727951883
},
{
"name": "single-tier municipality",
"relationship": "instance_of",
"id": "a0f67ef3-52bb-44d9-bc52-9059d37c6d0c",
"confidence": 1.0,
"relevance": 0.9370046727951883
},
{
"name": "city with millions of inhabitants",
"relationship": "instance_of",
"id": "b08def76-4b71-4545-9efb-f4858aaf253d",
"confidence": 1.0,
"relevance": 0.9370046727951883
}
]
}
},
{
"name": "vacation",
"type": "KEY_PHRASE",
"relevance": 0.933964522339908,
"confidence": 1.0,
"linked_entity": null
}
],
"detected_languages": [
{
"language": "en",
"confidence": 0.9999951616458576
}
],
"word_count": 183
}
]
}