1. A method of automatically generating natural language patterns based on a knowledge graph, the method comprising: selecting a relation from a knowledge graph; extracting at least a first pair of words from the knowledge graph, wherein the first pair of words is connected by the relation; receiving a set of documents as a search result based on a first query, wherein the first query comprises at least one instruction to select documents based on the first pair of words; extracting, from the set of documents, at least one textual snippet based on the first query, wherein the at least one textual snippet includes at least in part the first pair of words; extracting a second query from a query click log, wherein the query click log comprises at least one search query against at least a part of the set of documents and at least one link to at least one document, and wherein the second query is associated with at least one link to the at least one document containing the at least one textual snippet; generating a first set of training patterns, wherein the first set of training patterns is based on association between the at least one textual snippet and the relation; generating a second set of training patterns, wherein the second set of training patterns is based on association between the second query and the relation; generating a third set of natural language patterns for the knowledge graph, wherein generating the set of natural language patterns further comprises selectively combining the first set of training patterns and the second set of training patterns based on at least one weight between the first set of training patterns and the second set of training patterns; and applying the generated third set of natural language patterns to the knowledge graph to automatically train a natural language dialog system.