How do I study linguistic features of NLP libraries like spacy/NLTK in-depth? [closed] - nlp

Closed. This question is not about programming or software development. It is not currently accepting answers.
This question does not appear to be about a specific programming problem, a software algorithm, or software tools primarily used by programmers. If you believe the question would be on-topic on another Stack Exchange site, you can leave a comment to explain where the question may be able to be answered.
Closed 13 days ago.
Improve this question
My Objective
I am trying to do Natural Language Processing(NLU to be precise) with spaCy. But the more I dive into this wonderful library, the more I realize that I need to understand some linguistics first.
The Problem
The problem is, spacy explains NLP with terminologies that just don't seem to follow a single branch of linguistics. I am new to NLP and if anyone can give me some pointers on how to study linguistics for Natural Language Understanding, I think I would have an easier time getting a grasp of this library.
I have tried understanding Morphology but stuff like Part of Speech tagging, syntactic dependencies, etc. all seem to relate to different concepts that are implemented together. How much theory and in which subfields of linguistics do I need to study to have a strong grasp of all the concepts used?
I want to learn the theory so I know what to do even if spacy is missing something that I might wanna use.

I would read an overview like this one Introduction to Linguistics for Natural Language Processing and then would dive deeper into the topics that interest you.

Related

What is extreme programming and when it is using? [closed]

Closed. This question needs to be more focused. It is not currently accepting answers.
Want to improve this question? Update the question so it focuses on one problem only by editing this post.
Closed 2 years ago.
Improve this question
I am new to programming and I try to research as much as possible in this field. And once I came across to this expression: "Extreme and pair programming". Pair programming is an easy term, and I found quite clear documentation about this. But extreme programming... I found some articles about it, but explanation wasn't so well. All I understood that extreme programming is an Agile development framework. But why I must use that, what is difference between this and another types of programming styles?
Can anyone explain me what is extreme programming language very clearly?
Extreme programming (often called XP) is an agile framework that was developed by Kent Beck in the 1990's.
There aren't too many people that use the whole XP framework these days, but a lot of the engineering practices it popularised are very common.
Examples include:
Pair programming
Test driven development
Continuous integration
Frequent releases
Constant refactoring
XP favours an approach of writing the minimum amount of code to solve the problem at hand. Things like optimisation and forward planning are generally a low priority. This is the 'extreme' part of extreme programming.
The idea is that you write code to solve the current requirement. If you then find you need the code to be faster, or scaleable, etc. then you refactor it.

Programming Language for Senior Citizens [closed]

Closed. This question does not meet Stack Overflow guidelines. It is not currently accepting answers.
We don’t allow questions seeking recommendations for books, tools, software libraries, and more. You can edit the question so it can be answered with facts and citations.
Closed 3 years ago.
Improve this question
I am looking for a programming language fit for senior citizens that is:
easy to get into
can be used to implement easy functions and concepts (for loops, maybe a plot, etc.).
The language should be very light on the syntax side. The performance in terms of speed etc. is irrelevant.
What I am looking for is a way for people in retirement who are tired of crossword puzzles to be able to code as a pastime.
Thanks for any suggestions.
I think there are good opportunities for learning a programming language e.g. also for seniors. I think "becoming familiar" with the programming language is important. E.g. seeing how it works (samel like "using crossword puzzles"):
Programming language, which ist suitable for kids (and hence for seniors)
Kara - basic ideas of programming langauge will be provided here (
Scratch(visual programming language / Users of the site can create online projects using a block-like-interface)
Open roberta (encourage kids and maybe seniors using robots e.g. Lego Mindstorms)
Nepro programming language
Programming for advanced people (search for pupils and kid programming)
SNAP! (blocks based educational graphical programming language)
GameKit
Maybe there are some seniors with little programming experience from the past (e.g. school) then I would use the "old" programming languages
Lisp
Pascal
I would really recommend to start something easy and something visual, this helps seniors to understand how the algorithms working.

Why is it called "Rust"? [closed]

Closed. This question is not about programming or software development. It is not currently accepting answers.
This question does not appear to be about a specific programming problem, a software algorithm, or software tools primarily used by programmers. If you believe the question would be on-topic on another Stack Exchange site, you can leave a comment to explain where the question may be able to be answered.
Closed 7 days ago.
Improve this question
Why is the Rust programming language called "Rust"?
Is there anything known about who named it, and why? (I am having a hard time coming up with a positive association).
There is a thread on reddit that claims the answer.
TL;DR: Rust is named after a fungus that is robust, distributed, and parallel.
It is also a subsequence of "robust".
Found another interesting quote:
Also, calling Rust a research language is funny to me because -- as its name reflects -- we've tried hard to avoid incorporating new technology into it. We haven't always succeeded at failing to be novel, but we have a rule of thumb of not including any ideas in the language that are new as of the past ten years of programming language research. The field of programming language is full of old technology that hasn't been put to use in solving problems that it's exactly suited for. The goals with Rust were to avoid reinventing wheels, and see what the past had to teach us. I can't blame anyone for thinking Rust is a research language, though, since it is being developed by Mozilla Research.
So this alludes to "exclusively relying on old technology and shunning the new".
Again, I get the "old" implication of "rust", but still cannot get over the "will eventually corrode to junk metal" association.
It's by analogy to web browser architecture. The user-interface parts of mozilla are often called "chrome", because they're supposed to be shiny (this was the case even before the chrome browser came along). And in Firefox, a lot of chrome code is implemented in javascript.
Rust, on the other hand, is intended for implementing the guts of the browser; the non-chrome parts. The name makes me think of big metal gears meshing together deep in the bowels of some giant machine.

NLP POS Annotation Tool with Penn Treebank tags [closed]

Closed. This question does not meet Stack Overflow guidelines. It is not currently accepting answers.
This question does not appear to be about a specific programming problem, a software algorithm, or software tools primarily used by programmers. If you believe the question would be on-topic on another Stack Exchange site, you can leave a comment to explain where the question may be able to be answered.
Closed 9 years ago.
Improve this question
I've got a corpus that I want to annotate the parts of speech (verbs, nouns, adjectives, etc.) I'm looking for a nice tool that I can use to do that however I have a requirement that I want it to tag the corpus using the same tags that Penn Treebank does. The reason is that I want to use Stanford NLP to do the pos identification.
Any help is appreciated,
mj
You might want to look into brat or webanno. These are both span-based annotators rather than token-based annotators but you should be able to double-click words and then pick the tags from a list if they're configured correctly.
brat has a dependency and tagging example configuration which would probably be a good starting point, though you may want to borrow parts from the Stanford CoreNLP configuration's visual.conf which includes some coloring for Penn Treebank tags. I'm less familiar with webanno's configuration but since it's based on brat, one can presumably customize it in the same way.
You have a number of options; here's my thoughts in order of easiest/least complex to most complex:
1) Any of the modules on CPAN, particularly Lingua::EN::Tagger.
Not sure how accurate it is, but it's very very easy to implement, but you have to like Perl.
2) Almost as easy NLTK (a python natural language toolkit). Installing the whole package takes a while, but writing the code is easy cheezy. NLTK has pretty strong documentation and examples; here's pos tagging:
http://nltk.googlecode.com/svn/trunk/doc/book/ch05.html
3) Personally I tend to use the stanford parser a lot and there's a nice pos tagger built in. I have an example of programmatic interaction with the stanford system on my webpage (search the page for 'Simple version using built in tokenization'):
https://sites.google.com/site/nicoflacco/
You'll have to customize the code a bit to only do the tokenization/tagging and not parse, but that's not too hard.
4) Lingpipe is a bit heavier duty. I believe they incorporate the stanford parser, but I could be wrong.
From what you are saying (3) might not be bad if you want to use the stanford parser and not just the pos tagger.

Ideas from function/logic/object-oriented programming [closed]

Closed. This question does not meet Stack Overflow guidelines. It is not currently accepting answers.
We don’t allow questions seeking recommendations for books, tools, software libraries, and more. You can edit the question so it can be answered with facts and citations.
Closed 7 years ago.
Improve this question
Can someone please point me to articles or books that discusses different programming paradigm (function/logical/OOP)... I am not looking for the syntax details but the ideas that make them good..
for ex: using functional programming we avoid any side-effects.. If I know the idea I could write side effect free program even in a language (OOP) that does not enforce it.
Programming Language Pragmatics gives a pretty thorough overview of different paradigms. The book is about language design, so it talks a lot about syntax, semantics, type systems, target architectures, etc. The newest edition has an entire chapter on logical programming languages and one on functional languages.
As I understand it, the way to write functional in OOP is to make every member final (pretty much always). This avoids side-effects, and although I'm not really down with the functional programming, I think since I've started making variables final wherever possible my code has improved--so it's certainly got some benefits.
There is a reading list about programming language concepts here
I have started reading "Concepts, Techniques, and Models of Computer Programming" by Peter Van Roy and so far its very good...

Resources