Text Generation as a Service with Cloudera Data Science Workbench
Fortunately there is an awesome Text Generating Neural Network in Python 3 with Tensorflow/Keras by Max Woolf.
It is very easy to wrap this in a REST API from CDSW to use with Apache NiFi or microservices in your organization.
Here is my simple CDSW Model:
from time import gmtime, strftime import os import time import psutil from time import gmtime, strftime # https://github.com/minimaxir/textgenrnn # To Install pip3 install textgenrnn # Text Generation RNN # def textgeneration(args): # sentence = args["sentence"] start = time.time() textgen = textgenrnn() newtextstring = generated_texts = textgen.generate(n=1, temperature=0.5, return_as_list=True) end = time.time() row = { } row['starttime'] = '{0:.2f}'.format(start) row['sentence'] = str(newtextstring[0]) row['endtime'] = '{0:.2f}'.format(end) row['runtime'] = '{0:.2f}'.format(end - start) row['systemtime'] = datetime.datetime.now().strftime('%m/%d/%Y %H:%M:%S') row['cpu'] = psutil.cpu_percent(interval=1) row['memory'] = psutil.virtual_memory().percent result = row return result
Python Setup
pip3.6 install tensorflow pip3.6 install textgenrnn
Example Run
args = {}
textgeneration(args)
2019-03-13 01:31:59.772430: I tensorflow/core/platform/cpu_feature_guard.cc:141] Your CPU supports instructions that this TensorFlow binary was not compiled to use: AVX2 FMA {'cpu': 0.3, 'endtime': '1552440721.04', 'memory': 18.6, 'runtime': '1.29', 'sentence': "A female programming bank - World's father", 'starttime': '1552440719.75', 'systemtime': '03/13/2019 01:32:01'}
Resources:
https://minimaxir.com/2018/05/text-neural-networks/
https://github.com/minimaxir/textgenrnn