Systems and methods for generating graphs
Systems, methods and non-transitory computer readable media for facilitating generation of graphs based on data records through natural language are provided. A selection of a first group of data records of a plurality of data records may be received from an individual. Further, a textual input in a natural language may be received from the individual. The textual input may be analyzed to select a second group of data records of the plurality of data records. The textual input may be analyzed to select a type of graph. The first group of data records and the second group of data records may be used to generate a graph of the selected type of graph. The generated graph may be presented to the individual. An indication of the second group of data records may be presented to the individual.
1 . A non-transitory computer readable medium storing computer implementable instructions that when executed by at least one processor cause the at least one processor to perform operations for facilitating generation of graphs based on data records through natural language, the operations comprising:
accessing a plurality of data records, each data record of the plurality of data records includes at least a respective numerical value;
receiving from an individual a selection of a first group of at least one data record of the plurality of data records;
receiving from the individual an input in a natural language;
analyzing the input to select a second group of at least one data record of the plurality of data records;
analyzing the input to select a type of graph;
in response to a zoom intent identified in the input, selecting a crossing point between two axes by automatically determining a coordinate for the crossing point that is closer to a region containing the first group and the second group than a default crossing point;
using the first group of at least one data record and the second group of at least one data record to generate a graph of the selected type of graph;
presenting the generated graph to the individual based on the selected crossing point; and
presenting an indication of the second group of at least one data record to the individual.
2 . The non-transitory computer readable medium of claim 1 ,
wherein the input includes a question in the natural language, and the operations further comprise generating an answer in the natural language to the question that refers to a specific element of the generated graph and automatically presenting a visual indication of the specific element within the generated graph.
3 . The non-transitory computer readable medium of claim 1 , wherein the operations further comprise analyzing the input to select a color for at least one element of the generated graph indicated in the input, wherein the selected color is different from a color of other elements of the generated graph to highlight the at least one element indicated in the input.
4 . The non-transitory computer readable medium of claim 1 , wherein the operations further comprise analyzing the input to determine a gridlines property for the generated graph, wherein in response to the input being indicative of a desire to avoid clutter, the gridlines property includes horizontal or vertical gridlines but not both.
5 . The non-transitory computer readable medium of claim 1 , wherein the operations further comprise analyzing the input to select a scale for at least one axis of the generated graph, wherein selecting the scale includes automatically determining the scale for the at least one axis to satisfy an intent to avoid clutter as identified in the input.
6 . The non-transitory computer readable medium of claim 1 , wherein the operations further comprise analyzing the input to select a range for at least one axis of the generated graph, wherein in response to a margin intent identified in the input, the range is selected to be larger than a minimal range required to show data-points.
7 . The non-transitory computer readable medium of claim 1 , wherein the automatically determining the coordinate for the crossing point comprises identifying a minimum numerical value and a maximum numerical value for at least one of the two axes for at least one of the first group or the second group to define the region.
8 . The non-transitory computer readable medium of claim 1 , wherein the operations further comprise analyzing the input to select a layout for the generated graph, wherein the selecting the layout includes determining a position of a legend relative to a plot area of the generated graph to satisfy an intent for a particular viewing order identified in the input.
9 . The non-transitory computer readable medium of claim 1 , wherein the operations further comprise analyzing the input to determine whether to associate the first group with a horizontal axis of the generated graph and the second group with a vertical axis of the generated graph, wherein the association is determined by identifying in the input an intended relationship between the first group and the second group.
10 . The non-transitory computer readable medium of claim 1 ,
wherein the operations further comprise:
analyzing the input to generate an output in the natural language, the output refers to an element of the generated graph;
presenting the output to the individual; and
presenting a visual indication of the element within the generated graph.
11 . The non-transitory computer readable medium of claim 1 ,
wherein the operations further comprise:
after presenting the generated graph to the individual and presenting the indication of the second group of at least one data record to the individual, receiving from the individual a second input in the natural language; and
analyzing the second input to cause a modification of the generated graph, wherein in response to an intent to ignore outliers identified in the second input, the modification comprises automatically modifying a range of at least one axis of the generated graph to exclude at least one data record determined to be an outlier.
12 . The non-transitory computer readable medium of claim 1 , wherein the operations further comprise:
identifying a first mathematical object in a mathematical space, the first mathematical object corresponds to a first word of the input;
identifying a second mathematical object in the mathematical space, the second mathematical object corresponds to a second word of the input;
calculating a function of the first mathematical object and the second mathematical object to obtain a third mathematical object in the mathematical space; and
basing the selection of the type of graph on the third mathematical object.
13 . The non-transitory computer readable medium of claim 1 , wherein the operations further comprise using a machine learning model to analyze the input to select the second group of at least one data record of the plurality of data records.
14 . The non-transitory computer readable medium of claim 1 , wherein the operations further comprise analyzing the input and the first group of at least one data record to select the second group of at least one data record of the plurality of data records, wherein selecting the second group includes identifying an omission intent in the input to exclude at least one data record from the second group based on a statistical analysis.
15 . The non-transitory computer readable medium of claim 1 , wherein the operations further comprise analyzing the input and at least one of the first group of at least one data record or the second group of at least one data record to select the type of graph.
16 . The non-transitory computer readable medium of claim 1 ,
wherein the operations further comprise:
analyzing the input to select a third group of at least one data record of the plurality of data records; and
using the first group of at least one data record, the second group of at least one data record and the third group of at least one data record to generate the graph of the selected type of graph, wherein the generated graph is a three-dimensional graph, the first group is associated with a first axis of the three-dimensional graph, the second group is associated with a second axis of the three-dimensional graph, and the third group is associated with a third axis of the three-dimensional graph.
17 . The non-transitory computer readable medium of claim 1 , wherein the input includes an adjective indicative of a temporal granularity for the respective numerical values of the second group, and the selection of the second group is based on the adjective indicative of the temporal granularity.
18 . The non-transitory computer readable medium of claim 1 , wherein the input includes a conjunction, and the selection of the type of graph is based on the conjunction, wherein the selecting the type of graph includes selecting a bar graph when the conjunction indicates an intent to present the first group and the second group on a common axis.
19 . The non-transitory computer readable medium of claim 1 , wherein the operations further comprise analyzing the input to identify an intent for data point precision, and in response, generating the graph to include a respective data-label associated with each data-point of the graph, wherein the respective data-label indicates a respective precise numerical value for the data-point.
20 . A system for facilitating generation of graphs based on data records through natural language, the system comprising;
at least one processing unit configured to perform operations, the operations comprise:
accessing a plurality of data records, each data record of the plurality of data records includes at least a respective numerical value;
receiving from an individual a selection of a first group of at least one data record of the plurality of data records;
receiving from the individual an input in a natural language;
analyzing the input to select a second group of at least one data record of the plurality of data records;
analyzing the input to select a type of graph;
in response to a zoom intent identified in the input, selecting a crossing point between two axes by automatically determining a coordinate for the crossing point that is closer to a region containing the first group and the second group than a default crossing point;
using the first group of at least one data record and the second group of at least one data record to generate a graph of the selected type of graph;
presenting the generated graph to the individual based on the selected crossing point; and
presenting an indication of the second group of at least one data record to the individual.
21 . A method for facilitating generation of graphs based on data records through natural language, the method comprising:
accessing a plurality of data records, each data record of the plurality of data records includes at least a respective numerical value;
receiving from an individual a selection of a first group of at least one data record of the plurality of data records;
receiving from the individual an input in a natural language;
analyzing the input to select a second group of at least one data record of the plurality of data records;
analyzing the input to select a type of graph;
in response to a zoom intent identified in the input, selecting a crossing point between two axes by automatically determining a coordinate for the crossing point that is closer to a region containing the first group and the second group than a default crossing point;
using the first group of at least one data record and the second group of at least one data record to generate a graph of the selected type of graph;
presenting the generated graph to the individual based on the selected crossing point; and
presenting an indication of the second group of at least one data record to the individual.