5 ms·
This is really cool, and props to Google for making it publicly available. The blog post says this can be used as a building block for natural language underst
by teraflop 10y ago
This is really cool, and props to Google for making it publicly available.
The blog post says this can be used as a building block for natural language understanding applications. Does anyone have examples of how that might work? Parse trees are cool to look at, but what can I do with them?
For instance, let's say I'm interested in doing text classification. I can imagine that the parse tree would convey more semantic information than just a bag of words. Should I be turning the edges and vertices of the tree into a feature vectors somehow? I can think of a few half-baked ideas off the top of my head, but I'm sure other people have already spent a lot of time thinking about this, and I'm wondering if there are any "best practices".
- gipp 10y agoThe typical approach is something like a tree kernel (https://en.wikipedia.org/wiki/Tree_kernel https://en.wikipedia.org/wiki/Tree_kernel). Looked into them briefly for a work project that never got off the ground, can't say too much about using them in practice.
- yolesaber 10y agoThis is actually really useful for a project I'm working on. I'm trying to detect bias in news sources using sentiment analysis and one of the problems I've run into is identifying who exactly is the subject of a sentence. Using this could be really helpful in parsing out the noun phrases and breaking them down in order to find the subject.
- writeslowly 10y agoI've been experimenting with Stanford's CoreNLP to identify named entities for analyzing RSS feeds and I was really impressed by how well it worked, having known nothing about the state of NLP research before I started. Especially things like being able to identify coreferences.
- yolesaber 10y agoYes, I've used that before. I'm currently using Textacy for python which is also really good. However, extracting the named entities from a sentence is still a ways off from determining what's the subject of the sentence, although it gives a good indication. Using NER + quality POS tagging and tree building should do the trick for me I think.
- fatimafouda 10y agoAre you using BOW for sentiment analysis? Also, have you tried tinkering with Watson's sentiment analyzer? I'm working on a project that analyzes sentiment from speech, and I've been meaning to start on text sentiment analysis, but I'm not sure where to start.
- yolesaber 10y agoI'm using VADER - https://github.com/cjhutto/vaderSentiment https://github.com/cjhutto/vaderSentiment - because it's trained on NYT data which makes it suitable for news sentiment parsing. The code is pretty readable but relies heavily on a ruleset which might need to be tweaked for one's need.
- nostrademons 10y agoI was actually pretty disappointed with the NER in CoreNLP - I fed a few articles (including this one) into it, and while it's impressive that a computer can do this at all, it's pretty far away from being able to build a usable product. It seems to over-recognize Persons, for example - Parsey McParseFace was tagged as a person, as were Alice and Bob, as was Tesla (in another article), and while all of these are understandable, they weren't the intended meanings in the articles. I was also pretty disappointed with the date parser: while it gets some tricky ones like "Today" and "7 hours ago", it misses very common abbreviations like 7m or 7min or even "7min ago".
- nl 10y agoThe state of NLP tools generally is much lower than most people think. People think it is much easier than it is. For the date parser you want http://nlp.stanford.edu/software/sutime.html http://nlp.stanford.edu/software/sutime.html The code and rules aren't fun to customize though.
- nostrademons 10y agoYeah, I looked at SuTime, but it fell down on many common cases (the CoreNLP online demo is actually integrating SuTime into the annotations it produces). Another option is Natty [1], but it also seems to fail on the same examples. Natty at least has an ANTLR grammar that's reasonably easy to understand, though. [1] http://natty.joestelmach.com/ http://natty.joestelmach.com/
- nl 10y agoI know of one large group that switched (from Timen[1]) to Heideltime[2] because of multi-language support. One day someone will build a neural net model to do this rather than hand written rules. [1] https://github.com/leondz/timen https://github.com/leondz/timen [2] https://github.com/HeidelTime/heideltime https://github.com/HeidelTime/heideltime
- TeMPOraL 10y ago
- rcpt 10y agoI think the magic word here is "aspect based" sentiment analysis cf http://datascience.stackexchange.com/a/4870 http://datascience.stackexchange.com/a/4870
- jlos 10y agoThis would be very interesting when applied to Biblical Studies. Any serious academic discussion of biblical texts will involve syntactical breakdown of the text being discussed. Most of the times the ambiguities are clear, but its still quite common for a phrase to have several possible syntactical arrangements that are not immediately clear. These ambiguities are also challenging becuase the languages are dead (at least as used in the biblical texts). So the type of ambiguity of "Alice drove down the street in her car" can lead to some significant scholarly disagreement. I could see Parsey McParseface helping identifying patterns in literature contemporaneous to the biblical texts. Certain idiomatic uses of syntax, which would have been obvious to the original readers, could be identified much more quickly.
- giancarlostoro 10y agoI was going to say... my main interest in this project is precisely for Biblical studies... I could talk about analyzing the Bible for hours, but let's just say there's way more depth than many even realize. The Aleph Tav in relation to the Book of Revelation is one such example, many translations omit it, but the Aleph Tav Study Bible explores it in depth. There could be many discoveries made with these kind of projects that are missed by just about anyone only reading a translation. There are a ton of Jewish Idioms in the Bible that many don't understand at all, including "No man knows the day or the hour" which is a traditional Jewish Wedding Idiom. Lots and lots of things could be explored with enough data and resources.
- arthurdenture 10y agoI'd think that the advantage of machine translation is on corpora that are not known up front (i.e. user-supplied text) or corpora that are exceptionally large. If you have a small (ish), well-known text, I don't think you will get much insight from machine translation. Certainly there are plenty of uses for computer text analysis/mining in biblical studies, but I doubt translation is one of them. And for obscure idioms or hapax legomena, machine translation definitely can't help you because by definition there are no other sources to rely on.
- syllogism 10y agoMost of the really good applications are part of larger systems. Parsing is good in machine translation, for instance. You transform the source text so that it's closer to the target language. Parsing is also useful for question answering, information extraction, text-to-speech... Here's an example of using information from a syntactic parser to decorate words, and create an enhanced bag-of-words model: https://spacy.io/demos/sense2vec https://spacy.io/demos/sense2vec Here's a very terse explanation of using them in a rule-based way: https://spacy.io/docs/tutorials/syntax-search https://spacy.io/docs/tutorials/syntax-search
- endtime 10y ago> Parse trees are cool to look at, but what can I do with them? One really simple and obvious thing is word sense disambiguation. Plenty of homonyms are different parts of speech (e.g. the verb "lead" and the noun "lead"). I'm sure there's lots of more sophisticated stuff you can do as well, but this might be the lowest-hanging fruit.
- gattilorenz 10y agoHowever, for that you just need PoS tags (which is also provided by this Google thing, yes). And of course the hard part of WSD is detecting whether "bank" refers to the bank of a river, or the financial institution, or the building where the institution is located, or [you name it]. I use parse trees as a kind of "advanced language model" for when I need to replace a word in a sentence (see for example: http://www.aclweb.org/anthology/P13-1142 http://www.aclweb.org/anthology/P13-1142 ), it's so much better than using just simple n-grams.
- deleted 10y ago[deleted]
- CAPSLOCKENGAGED 10y agoHere is an application of parse trees: sentiment analysis with recursive neural networks based on how components of the parse tree combine to create the overall meaning. http://nlp.stanford.edu/~socherr/EMNLP2013_RNTN.pdf http://nlp.stanford.edu/~socherr/EMNLP2013_RNTN.pdf They are useful as a preprocessing step for a lot of downstream NLP tasks. It shouldn't be hard to find more papers that take advantage of the tree structure of language.
- bigiain 10y agoIdea: point this at political speeches / security breach notifications / outage postmortems / etc, and rate them by how many ambiguities with starkly different dependancy parses there are... (Well of _course_ we mean the roads inside Alice's car when we made that commitment!)