language/snippets/api/analyze.py (50 lines of code) (raw):

#!/usr/bin/env python # Copyright 2016 Google, Inc # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. """Analyzes text using the Google Cloud Natural Language API.""" import argparse import json import sys import googleapiclient.discovery def get_native_encoding_type(): """Returns the encoding type that matches Python's native strings.""" if sys.maxunicode == 65535: return "UTF16" else: return "UTF32" def analyze_entities(text, encoding="UTF32"): body = { "document": {"type": "PLAIN_TEXT", "content": text}, "encoding_type": encoding, } service = googleapiclient.discovery.build("language", "v1") request = service.documents().analyzeEntities(body=body) response = request.execute() return response def analyze_sentiment(text, encoding="UTF32"): body = { "document": {"type": "PLAIN_TEXT", "content": text}, "encoding_type": encoding, } service = googleapiclient.discovery.build("language", "v1") request = service.documents().analyzeSentiment(body=body) response = request.execute() return response def analyze_syntax(text, encoding="UTF32"): body = { "document": {"type": "PLAIN_TEXT", "content": text}, "encoding_type": encoding, } service = googleapiclient.discovery.build("language", "v1") request = service.documents().analyzeSyntax(body=body) response = request.execute() return response if __name__ == "__main__": parser = argparse.ArgumentParser( description=__doc__, formatter_class=argparse.RawDescriptionHelpFormatter ) parser.add_argument("command", choices=["entities", "sentiment", "syntax"]) parser.add_argument("text") args = parser.parse_args() if args.command == "entities": result = analyze_entities(args.text, get_native_encoding_type()) elif args.command == "sentiment": result = analyze_sentiment(args.text, get_native_encoding_type()) elif args.command == "syntax": result = analyze_syntax(args.text, get_native_encoding_type()) print(json.dumps(result, indent=2))