I was wondering, are these fields related to each other?<p>Also, how much programming is needed for LP/NLP? From what I hear, it's mostly math, but I think I also heard Python is used in this field.
LP = logic programming
NLP = natural language processing<p>Strictly speaking, the term "logic programming" is used to describe backwards-chaining reasoning systems such as prolog, although logic inspires other kinds of systems such as production rules (expert systems) and SAT/SMT solvers, theorem provers and related tools.<p>Natural Language Processing is a term for systems that process natural language, no matter what techniques are used. These could be systems that use formal grammars (like used for programming languages) or they could be based on machine learning or a hybrid.<p>There is also some overlap between logic-based systems and machine learning. For instance, C4.5 learns a tree of rules that can decide something, Random Forests learns a large number of rule sets that can be combined to make high-accuracy decisions, also there is something called "Inductive Logic Programming" that can combine human-specified rules with learned rules.<p>LP is, by definition, a form of programming.<p>In the case of NLP somebody is doing programming somewhere, but you might have a linguist or other subject matter expert involved. Python has a rich collection of libraries of NLP.