Search code examples
pythonjsonibm-cloudibm-watsonwatson-discovery

How to generate summary from JSON data Using watson discovery news servies


How to generate summary like IBM from json using discovery news services with python

qopts = {'nested':'(enriched_text.entities)','filter':'(enriched_text.entities.type::Person)','term':'(enriched_text.entities.text,count:10)','filter':'(enriched_text.concepts.text:infosys)','filter':'(enriched_text.concepts.text:ceo)'}
my_query = discovery.query('system', 'news', qopts)  
print(json.dumps(my_query, indent=2))

This query is proper or not for find ceo of Infosys ? Output came in large json format the how I identify answer or create summary like top ten ceo or people. How to generate summary from json using discovery news services with python. I fire query then output became large json format ..how to find proper summary from that json file my query is correct or not


Solution

  • I believe there are two questions here.

    1. In order to answer a question like "Who is the CEO of Infosys?" I would instead make use of the natural_language_query parameter as follows:

      qopts = {'natural_language_query':'Who is the CEO of Infosys?','count':'5'}
      response = discovery.query(environment_id='system',collection_id='news',query_options=qopts)
      print(json.dumps(response,indent=2))
      
    2. In order to make use of aggregations, they must be specified in a single aggregation parameter combined with filter aggregations in the query options as follows:

      qopts = {'aggregation': 'nested(enriched_text.entities).filter(enriched_text.entities.type::Person).term(enriched_text.entities.text,count:10)', 'filter':'enriched_text.entities:(text:Infosys,type:Company)','count':'0'}
      response = discovery.query(environment_id='system',collection_id='news',query_options=qopts}
      print(json.dumps(response,indent=2))
      

    Notice that aggregations are chained/combined with the . symbol.