diff --git a/05_categorizing_and_tagging_words.ipynb b/05_categorizing_and_tagging_words.ipynb index c1f42ed..42581b3 100644 --- a/05_categorizing_and_tagging_words.ipynb +++ b/05_categorizing_and_tagging_words.ipynb @@ -383,16 +383,1233 @@ "source": [ "## Tagged Corpora\n", "\n", - "### Representing Tagged Tokens" + "### Representing Tagged Tokens\n", + "\n", + "*typically represented as a tuple:* `(token, tag)`\n", + "\n", + "Can be generated using `str2tuple`..." + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "data": { + "text/plain": [ + "('fly', 'NN')" + ] + }, + "execution_count": 10, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "tagged_token = nltk.tag.str2tuple('fly/NN')\n", + "tagged_token" + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "data": { + "text/plain": [ + "[('The', 'AT'),\n", + " ('grand', 'JJ'),\n", + " ('jury', 'NN'),\n", + " ('commented', 'VBD'),\n", + " ('on', 'IN'),\n", + " ('a', 'AT'),\n", + " ('number', 'NN'),\n", + " ('of', 'IN'),\n", + " ('other', 'AP'),\n", + " ('topics', 'NNS'),\n", + " (',', ','),\n", + " ('AMONG', 'IN'),\n", + " ('them', 'PPO'),\n", + " ('the', 'AT'),\n", + " ('Atlanta', 'NP'),\n", + " ('and', 'CC'),\n", + " ('Fulton', 'NP-TL'),\n", + " ('County', 'NN-TL'),\n", + " ('purchasing', 'VBG'),\n", + " ('departments', 'NNS'),\n", + " ('which', 'WDT'),\n", + " ('it', 'PPS'),\n", + " ('said', 'VBD'),\n", + " ('``', '``'),\n", + " ('ARE', 'BER'),\n", + " ('well', 'QL'),\n", + " ('operated', 'VBN'),\n", + " ('and', 'CC'),\n", + " ('follow', 'VB'),\n", + " ('generally', 'RB'),\n", + " ('accepted', 'VBN'),\n", + " ('practices', 'NNS'),\n", + " ('which', 'WDT'),\n", + " ('inure', 'VB'),\n", + " ('to', 'IN'),\n", + " ('the', 'AT'),\n", + " ('best', 'JJT'),\n", + " ('interest', 'NN'),\n", + " ('of', 'IN'),\n", + " ('both', 'ABX'),\n", + " ('governments', 'NNS'),\n", + " (\"''\", \"''\"),\n", + " ('.', '.')]" + ] + }, + "execution_count": 11, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "sent = '''\n", + "The/AT grand/JJ jury/NN commented/VBD on/IN a/AT number/NN of/IN\n", + "other/AP topics/NNS ,/, AMONG/IN them/PPO the/AT Atlanta/NP and/CC\n", + "Fulton/NP-tl County/NN-tl purchasing/VBG departments/NNS which/WDT it/PPS\n", + "said/VBD ``/`` ARE/BER well/QL operated/VBN and/CC follow/VB generally/RB\n", + "accepted/VBN practices/NNS which/WDT inure/VB to/IN the/AT best/JJT\n", + "interest/NN of/IN both/ABX governments/NNS ''/'' ./.\n", + "'''\n", + "[nltk.tag.str2tuple(t) for t in sent.split()]" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Reading Tagged Corpora\n", + "\n", + " The/at Fulton/np-tl County/nn-tl Grand/jj-tl Jury/nn-tl said/vbd Friday/nr an/at investigation/nn of/in Atlanta's/np$ recent/jj primary/nn election/nn produced/vbd / no/at evidence/nn ''/'' that/cs any/dti irregularities/nns took/vbd place/nn ./.\n", + "\n", + "if a corpus contains tagged text, the corpus interface will have a **`tagged_words()`** method" + ] + }, + { + "cell_type": "code", + "execution_count": 12, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "data": { + "text/plain": [ + "[('The', 'AT'), ('Fulton', 'NP-TL'), ...]" + ] + }, + "execution_count": 12, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "nltk.corpus.brown.tagged_words()" + ] + }, + { + "cell_type": "code", + "execution_count": 13, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "data": { + "text/plain": [ + "[('The', 'DET'), ('Fulton', 'NOUN'), ...]" + ] + }, + "execution_count": 13, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "nltk.corpus.brown.tagged_words(tagset='universal')" + ] + }, + { + "cell_type": "code", + "execution_count": 14, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "[('now', 'RB'), ('im', 'PRP'), ('left', 'VBD'), ...]\n" + ] + } + ], + "source": [ + "print(nltk.corpus.nps_chat.tagged_words())" + ] + }, + { + "cell_type": "code", + "execution_count": 15, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "data": { + "text/plain": [ + "[('Confidence', 'NN'), ('in', 'IN'), ('the', 'DT'), ...]" + ] + }, + "execution_count": 15, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "nltk.corpus.conll2000.tagged_words()" + ] + }, + { + "cell_type": "code", + "execution_count": 16, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "data": { + "text/plain": [ + "[('Pierre', 'NNP'), ('Vinken', 'NNP'), (',', ','), ...]" + ] + }, + "execution_count": 16, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "nltk.corpus.treebank.tagged_words()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "*not all corpora have the same tag sets, so can force mapping to **universal** tagset*" + ] + }, + { + "cell_type": "code", + "execution_count": 17, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "data": { + "text/plain": [ + "[('The', 'DET'), ('Fulton', 'NOUN'), ...]" + ] + }, + "execution_count": 17, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "nltk.corpus.brown.tagged_words(tagset='universal')" + ] + }, + { + "cell_type": "code", + "execution_count": 18, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "data": { + "text/plain": [ + "[('Pierre', 'NOUN'), ('Vinken', 'NOUN'), (',', '.'), ...]" + ] + }, + "execution_count": 18, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "nltk.corpus.treebank.tagged_words(tagset='universal')" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Tagged corpora in other languages..." + ] + }, + { + "cell_type": "code", + "execution_count": 19, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "data": { + "text/plain": [ + "[('一', 'Neu'), ('友情', 'Nad'), ('嘉珍', 'Nba'), ...]" + ] + }, + "execution_count": 19, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "nltk.corpus.sinica_treebank.tagged_words()" + ] + }, + { + "cell_type": "code", + "execution_count": 20, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "data": { + "text/plain": [ + "[('মহিষের', 'NN'), ('সন্তান', 'NN'), (':', 'SYM'), ...]" + ] + }, + "execution_count": 20, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "nltk.corpus.indian.tagged_words()" + ] + }, + { + "cell_type": "code", + "execution_count": 21, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "data": { + "text/plain": [ + "[('Jersei', 'N'), ('atinge', 'V'), ('média', 'N'), ...]" + ] + }, + "execution_count": 21, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "nltk.corpus.mac_morpho.tagged_words()" + ] + }, + { + "cell_type": "code", + "execution_count": 23, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "data": { + "text/plain": [ + "[('Sao', 'NC'), ('Paulo', 'VMI'), ('(', 'Fpa'), ...]" + ] + }, + "execution_count": 23, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "nltk.corpus.conll2002.tagged_words()" + ] + }, + { + "cell_type": "code", + "execution_count": 24, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "data": { + "text/plain": [ + "[('El', 'da0ms0'), ('Tribunal_Suprem', 'np0000o'), ...]" + ] + }, + "execution_count": 24, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "nltk.corpus.cess_cat.tagged_words()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### A Universal Part-of-Speech tagset\n", + "\n", + "**Common POS tags**" + ] + }, + { + "cell_type": "code", + "execution_count": 25, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "data": { + "text/plain": [ + "[('NOUN', 30640),\n", + " ('VERB', 14399),\n", + " ('ADP', 12355),\n", + " ('.', 11928),\n", + " ('DET', 11389),\n", + " ('ADJ', 6706),\n", + " ('ADV', 3349),\n", + " ('CONJ', 2717),\n", + " ('PRON', 2535),\n", + " ('PRT', 2264),\n", + " ('NUM', 2166),\n", + " ('X', 106)]" + ] + }, + "execution_count": 25, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "brn = nltk.corpus.brown\n", + "brown_news_tagged = brn.tagged_words(categories='news', tagset='universal')\n", + "tag_fd = nltk.FreqDist(tag for (word, tag) in brown_news_tagged)\n", + "tag_fd.most_common()" + ] + }, + { + "cell_type": "code", + "execution_count": 26, + "metadata": { + "collapsed": false, + "scrolled": false + }, + "outputs": [ + { + "data": { + "image/png": "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\nGccsY5lnLPOMU+9ZLl8OM2a0PToyZ077+4YMadu82H9/2HLLDf959Z5nuZlnHLOMZZ7l0/ANDUmS\nJNW/NWvgiSfa7ryYMQNWrmx7X58+xW6LMWPggAOKP3faybkXklSNnKHhDA1JkqS688IL7edevP56\n23tSKuZctN59sffexWNUJUnVwRkakiRJqluLF8NDD7U9OjJ/fvv7tt++bfNi331hwIDy1ytJitHw\nDQ1naMTyvFgs84xlnnHMMpZ5xjLPONWY5VtvwcyZbXdfzJ5dPI2ktc03L2ZdtG5gbLNNZWpuVo15\n1jLzjGOWscyzfBq+oSFJkqTqtGYNPPlk2+bFtGlFU6O13r1h1Ki2zYtddy0epSpJql/O0HCGhiRJ\nUlV46aWWR6ZOnlx83dTU/r7dd287tHPEiGKYpySp/jhDQ5IkSVVl6dJi7kXr3RfPPdf+vq23bmlc\njBkD++0H7uSWJIENDWdoBPO8WCzzjGWeccwylnnGMs84UVmuXAmPPtq2eTFrVnGkpLXNNms/92K7\n7ernkan+bsYyzzhmGcs8y6fhGxqSJEmKkzM880xL42LyZHj4YVi+vO19m2zSdu7FAQcUR0l69qxM\n3ZKk2uMMDWdoSJIkvWOvvNIy96L5tXBh+/t22aXtzotRo2DTTctfrySptjhDQ5IkSRvtzTeL3Rat\nmxfPPNP+vi22aD/34l3vKn+9kqT61vANDWdoxPK8WCzzjGWeccwylnnGMs8Yq1fDjBlNTJs26O2j\nI48+Wqy31q8f7Ltv290Xw4bVz9yLSP5uxjLPOGYZyzzLp+EbGpIkSYLFi+GBB+C++4rX5Mmw884w\nfXrLPT16wMiRbZsXw4cX8zAkSSo3Z2g4Q0OSJDWYnOHJJ1uaF/fdB489Vqy3NmxY26Mj++wD/ftX\npmZJUmNyhoYkSVIDW7YMpk5t28B49dW29/TqVRwdOeig4nXggbDttpWpV5Kkrmj4hoYzNGJ5XiyW\necYyzzhmGcs8Y5knvPBC2+bFww/DqlVt79lyy5bmxUEHFc2Mvn3b3mOWscwzlnnGMctY5lk+Dd/Q\nkCRJqmUrV8LMmW0bGM891/aelIrZFwce2NLA2GknB3dKkmqbMzScoSFJkmrIwoVth3c++GDxONXW\nBg5s27wYM6ZYkySp1jhDQ5IkqQatWQOzZxeNi/vvL/6cPbv9fbvu2vb4yJ57Qs+e5a9XkqRyaviG\n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\nedYxy1rmWcs865hlLfOsZZ51zLKWeXZPj/5YrEU80USSJEmSpEdzy0mPbzmZNg322ac50eSa2Yv1\nmQAAGA9JREFUaxwCKkmSJEkaHG456VNXXOGJJpIkSZIkjWTgGxq9OkNj1izYeWdYuLA50WTKlLYr\nWjruF6tlnrXMs45Z1jLPWuZZxyxrmWct86xjlrXMs3sGvqHRi2bPhje9qTmedfvt4fDD265IkiRJ\nkqTe4gyNHpuhMX8+bLklXH01TJoE117rEFBJkiRJ0mByhkafWHSiydVXNyeazJhhM0OSJEmSpJEM\nfEOjl2ZonHginHZac6LJjBkwYULbFS0794vVMs9a5lnHLGuZZy3zrGOWtcyzlnnWMcta5tk9A9/Q\n6BWeaCJJkiRJ0tJzhkYPzNCYNQs23bQZAnrwwXDkka2WI0mSJElSTxhthoYNjZYbGrNnN6sx7ryz\nOdHkwgthJdfNSJIkSZLkUNDRtDlDY/582GGHppkxaRJMn97/zQz3i9Uyz1rmWccsa5lnLfOsY5a1\nzLOWedYxy1rm2T19/uNz//JEE0mSJEmSlp9bTlracjJtGuyzT3OiyTXXOARUkiRJkqTh3HLSYzzR\nRJIkSZKkFTPwDY1uz9CYNQt23hkWLmxONJkypatvP+bcL1bLPGuZZx2zrGWetcyzjlnWMs9a5lnH\nLGuZZ/cMfEOjm2bPhje9qTmedfvt4fDD265IkiRJkqT+5AyNLs3QmD8fttyyGQI6aRJce61DQCVJ\nkiRJGo0zNFqWCR/6kCeaSJIkSZJUZeAbGt2YoTFtGpx+enOiyYwZMGHCmL9la9wvVss8a5lnHbOs\nZZ61zLOOWdYyz1rmWccsa5ln9wx8Q2OsXXEF7L9/89gTTSRJkiRJquEMjTGcoXH77fDv/94MAT34\nYDjyyDF5G0mSJEmSxqXRZmjY0Bijhsbs2c1qjDvvbE40ufBCWMn1MJIkSZIkLTWHgo5iLGZozJ8P\nO+zQNDMmTYLp0wenmeF+sVrmWcs865hlLfOsZZ51zLKWedYyzzpmWcs8u2dAfszunqEnmjz96Z5o\nIkmSJEnSWHDLSfGWkxNOgH33bU40ueYah4BKkiRJkrS8nKExisqGxhVXwDbbwMKFcO65MGVKyR8r\nSZIkSdJAcobGKKpmaNx+O+y8c9PMOOSQwW1muF+slnnWMs86ZlnLPGuZZx2zrGWetcyzjlnWMs/u\n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\nJEmSJKnv/P/heu4yGlJ0FwAAAABJRU5ErkJggg==\n", + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "plot = plt.figure(figsize=(18,10))\n", + "tag_fd.plot(cumulative=True)" + ] + }, + { + "cell_type": "code", + "execution_count": 30, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "data": { + "image/png": "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\nhXu/AAAAAElFTkSuQmCC\n", + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "tag_fd.plot()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Nouns\n", + "\n", + "**what parts of speech appear before nouns?**" + ] + }, + { + "cell_type": "code", + "execution_count": 41, + "metadata": { + "collapsed": false, + "scrolled": true + }, + "outputs": [ + { + "data": { + "text/plain": [ + "[(('The', 'DET'), ('Fulton', 'NOUN')),\n", + " (('Fulton', 'NOUN'), ('County', 'NOUN')),\n", + " (('County', 'NOUN'), ('Grand', 'ADJ')),\n", + " (('Grand', 'ADJ'), ('Jury', 'NOUN')),\n", + " (('Jury', 'NOUN'), ('said', 'VERB')),\n", + " (('said', 'VERB'), ('Friday', 'NOUN')),\n", + " (('Friday', 'NOUN'), ('an', 'DET')),\n", + " (('an', 'DET'), ('investigation', 'NOUN')),\n", + " (('investigation', 'NOUN'), ('of', 'ADP')),\n", + " (('of', 'ADP'), (\"Atlanta's\", 'NOUN')),\n", + " ((\"Atlanta's\", 'NOUN'), ('recent', 'ADJ')),\n", + " (('recent', 'ADJ'), ('primary', 'NOUN')),\n", + " (('primary', 'NOUN'), ('election', 'NOUN')),\n", + " (('election', 'NOUN'), ('produced', 'VERB')),\n", + " (('produced', 'VERB'), ('``', '.')),\n", + " (('``', '.'), ('no', 'DET')),\n", + " (('no', 'DET'), ('evidence', 'NOUN')),\n", + " (('evidence', 'NOUN'), (\"''\", '.')),\n", + " ((\"''\", '.'), ('that', 'ADP')),\n", + " (('that', 'ADP'), ('any', 'DET'))]" + ] + }, + "execution_count": 41, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "word_tag_pairs = nltk.bigrams(brown_news_tagged)\n", + "list(word_tag_pairs)[:20]" + ] + }, + { + "cell_type": "code", + "execution_count": 42, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "data": { + "text/plain": [ + "['DET',\n", + " 'NOUN',\n", + " 'ADJ',\n", + " 'VERB',\n", + " 'DET',\n", + " 'ADP',\n", + " 'ADJ',\n", + " 'NOUN',\n", + " 'DET',\n", + " 'DET',\n", + " 'VERB',\n", + " 'DET',\n", + " 'ADP',\n", + " 'NOUN',\n", + " 'DET',\n", + " 'ADJ',\n", + " 'ADJ',\n", + " 'DET',\n", + " 'DET',\n", + " 'CONJ']" + ] + }, + "execution_count": 42, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "word_tag_pairs = nltk.bigrams(brown_news_tagged) # generator needs to be redefined\n", + "noun_preceders = [a[1] for a, b in word_tag_pairs if b[1] == 'NOUN']\n", + "noun_preceders[:20]" + ] + }, + { + "cell_type": "code", + "execution_count": 34, + "metadata": { + "collapsed": false, + "scrolled": true + }, + "outputs": [ + { + "data": { + "text/plain": [ + "['NOUN',\n", + " 'DET',\n", + " 'ADJ',\n", + " 'ADP',\n", + " '.',\n", + " 'VERB',\n", + " 'CONJ',\n", + " 'NUM',\n", + " 'ADV',\n", + " 'PRT',\n", + " 'PRON',\n", + " 'X']" + ] + }, + "execution_count": 34, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "fdist = nltk.FreqDist(noun_preceders)\n", + "[tag for tag, _ in fdist.most_common()]" + ] + }, + { + "cell_type": "code", + "execution_count": 44, + "metadata": { + "collapsed": false, + "scrolled": false + }, + "outputs": [ + { + "data": { + "image/png": "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\nYII=\n", + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "fdist.plot(cumulative=True)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Verbs\n", + "\n", + "**what are the most common verbs in news text?**" + ] + }, + { + "cell_type": "code", + "execution_count": 47, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "data": { + "text/plain": [ + "['is',\n", + " 'said',\n", + " 'was',\n", + " 'are',\n", + " 'be',\n", + " 'has',\n", + " 'have',\n", + " 'will',\n", + " 'says',\n", + " 'would',\n", + " 'were',\n", + " 'had',\n", + " 'been',\n", + " 'could',\n", + " \"'s\",\n", + " 'can',\n", + " 'do',\n", + " 'say',\n", + " 'make',\n", + " 'may',\n", + " 'did',\n", + " 'rose',\n", + " 'made',\n", + " 'does',\n", + " 'expected']" + ] + }, + "execution_count": 47, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "wsj = nltk.corpus.treebank.tagged_words(tagset='universal')\n", + "word_tag_fd = nltk.FreqDist(wsj)\n", + "[wt[0] for wt, _ in word_tag_fd.most_common() if wt[1] == 'VERB'][:25]" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "*words and tags are paired. treat the **word as a condition** and the **tag as an event** and create a cfd*\n", + "\n", + "**lists the most common tags, given a word**" + ] + }, + { + "cell_type": "code", + "execution_count": 59, + "metadata": { + "collapsed": false, + "scrolled": true + }, + "outputs": [ + { + "data": { + "text/plain": [ + "[('VERB', 28), ('NOUN', 20)]" + ] + }, + "execution_count": 59, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "cfd1 = nltk.ConditionalFreqDist(wsj)\n", + "cfd1['yield'].most_common()" + ] + }, + { + "cell_type": "code", + "execution_count": 60, + "metadata": { + "collapsed": false, + "scrolled": true + }, + "outputs": [ + { + "data": { + "text/plain": [ + "[('VERB', 25), ('NOUN', 3)]" + ] + }, + "execution_count": 60, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "cfd1['cut'].most_common()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "---\n", + "\n", + "reverse the order... conditions: tags, events: words \n", + "\n", + "**see the likely words, given a tag**" ] }, { "cell_type": "code", - "execution_count": null, + "execution_count": 61, "metadata": { - "collapsed": true + "collapsed": false, + "scrolled": false }, - "outputs": [], + "outputs": [ + { + "data": { + "text/plain": [ + "['protective',\n", + " 'insidious',\n", + " 'long',\n", + " 'crash',\n", + " 'daily',\n", + " '238,000-circulation',\n", + " 'interior',\n", + " 'only',\n", + " 'near-record',\n", + " 'matching',\n", + " 'three-month',\n", + " 'Per-share',\n", + " 'questionable',\n", + " 'aggressive',\n", + " 'combined',\n", + " 'acute',\n", + " '63-year-old',\n", + " 'seven-year',\n", + " 'mortgage-based',\n", + " 'impudent',\n", + " 'unproductive',\n", + " 'socialist',\n", + " 'tall',\n", + " 'sticky',\n", + " 'computer-aided']" + ] + }, + "execution_count": 61, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "wsh = nltk.corpus.treebank.tagged_words()\n", + "cfd2 = nltk.ConditionalFreqDist((tag, word) for (word, tag) in wsj)\n", + "list(cfd2['ADJ'])[:25]" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Adjectives and Adverbs\n", + "\n", + "*skipping*\n", + "\n", + "### Unsimplified Tags\n", + "\n", + "*skipping*" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Exploring Tagged Corpora\n", + "\n", + "**Find words that follow '*often*'**" + ] + }, + { + "cell_type": "code", + "execution_count": 66, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "data": { + "text/plain": [ + "[',',\n", + " '.',\n", + " 'accomplished',\n", + " 'analytically',\n", + " 'appear',\n", + " 'apt',\n", + " 'associated',\n", + " 'assuming',\n", + " 'became',\n", + " 'become',\n", + " 'been',\n", + " 'began',\n", + " 'call',\n", + " 'called',\n", + " 'carefully',\n", + " 'chose',\n", + " 'classified',\n", + " 'colorful',\n", + " 'composed',\n", + " 'contain',\n", + " 'differed',\n", + " 'difficult',\n", + " 'encountered',\n", + " 'enough',\n", + " 'equate',\n", + " 'extremely',\n", + " 'found',\n", + " 'happens',\n", + " 'have',\n", + " 'ignored',\n", + " 'in',\n", + " 'involved',\n", + " 'more',\n", + " 'needed',\n", + " 'nightly',\n", + " 'observed',\n", + " 'of',\n", + " 'on',\n", + " 'out',\n", + " 'quite',\n", + " 'represent',\n", + " 'responsible',\n", + " 'revamped',\n", + " 'seclude',\n", + " 'set',\n", + " 'shortened',\n", + " 'sing',\n", + " 'sounded',\n", + " 'stated',\n", + " 'still',\n", + " 'sung',\n", + " 'supported',\n", + " 'than',\n", + " 'to',\n", + " 'when',\n", + " 'work']" + ] + }, + "execution_count": 66, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "brown_learned_text = brn.words(categories='learned')\n", + "sorted(set(b for a, b in nltk.bigrams(brown_learned_text) if a == 'often'))" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "**instead, use `tagged_words()` to look at POS tags**" + ] + }, + { + "cell_type": "code", + "execution_count": 68, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "data": { + "text/plain": [ + "[('1', 'NUM'), ('.', '.'), ('Introduction', 'NOUN'), ...]" + ] + }, + "execution_count": 68, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "brown_lrnd_tagged = brn.tagged_words(categories='learned', tagset='universal')\n", + "brown_lrnd_tagged" + ] + }, + { + "cell_type": "code", + "execution_count": 69, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "data": { + "text/plain": [ + "['ADJ', 'ADV', 'VERB', 'VERB', 'ADJ']" + ] + }, + "execution_count": 69, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "tags = [b[1] for a, b in nltk.bigrams(brown_lrnd_tagged) if a[0] == 'often']\n", + "tags[:5]" + ] + }, + { + "cell_type": "code", + "execution_count": 70, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "VERB ADV ADP ADJ . PRT \n", + " 37 8 7 6 4 2 \n" + ] + } + ], + "source": [ + "fd = nltk.FreqDist(tags)\n", + "fd.tabulate()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "*POS that follow **'often'** the most are **verbs***\n", + "\n", + "---\n", + "\n", + "Find words that are parts of sequences of tags+words (e.g., **`Verb`, to, `Verb`**)" + ] + }, + { + "cell_type": "code", + "execution_count": 75, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "combined to achieve\n", + "continue to place\n", + "serve to protect\n", + "wanted to wait\n", + "allowed to place\n", + "expected to become\n", + "expected to approve\n", + "expected to make\n", + "intends to make\n", + "seek to set\n", + "like to see\n", + "designed to provide\n", + "get to hear\n", + "expects to tell\n", + "expected to give\n", + "prefer to pay\n", + "required to obtain\n", + "permitted to teach\n", + "designed to reduce\n" + ] + } + ], + "source": [ + "def process(sentence):\n", + " for (w1, t1), (w2, t2), (w3, t3) in nltk.trigrams(sentence):\n", + " if (t1.startswith('V') and t2 == 'TO' and t3.startswith('V')):\n", + " print(w1, w2, w3)\n", + " \n", + "for tagged_sent in brn.tagged_sents()[:200]:\n", + " process(tagged_sent)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "---\n", + "**Identifying words that have ambiguous POS tags**" + ] + }, + { + "cell_type": "code", + "execution_count": 76, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "best ADJ ADV NOUN VERB\n", + "close ADV ADJ VERB NOUN\n", + "open ADJ VERB NOUN ADV\n", + "present ADJ ADV NOUN VERB\n", + "that ADP DET PRON ADV\n" + ] + } + ], + "source": [ + "brown_news_tagged = brn.tagged_words(categories='news', tagset='universal')\n", + "data = nltk.ConditionalFreqDist((word.lower(), tag)\n", + " for word, tag in brown_news_tagged)\n", + "for word in sorted(data.conditions()):\n", + " if len(data[word]) > 3:\n", + " tags = [tag for tag, _ in data[word].most_common()]\n", + " print(word, ' '.join(tags))" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Mapping Words to Properties Using Python Dictionaries\n", + "\n", + "*skipping this section on python dictionary usage*\n", + "\n", + "## Automatic Tagging\n", + "\n", + "**Using tagged *sentences* instead of words**" + ] + }, + { + "cell_type": "code", + "execution_count": 78, + "metadata": { + "collapsed": false, + "scrolled": false + }, + "outputs": [ + { + "data": { + "text/plain": [ + "[['The',\n", + " 'Fulton',\n", + " 'County',\n", + " 'Grand',\n", + " 'Jury',\n", + " 'said',\n", + " 'Friday',\n", + " 'an',\n", + " 'investigation',\n", + " 'of',\n", + " \"Atlanta's\",\n", + " 'recent',\n", + " 'primary',\n", + " 'election',\n", + " 'produced',\n", + " '``',\n", + " 'no',\n", + " 'evidence',\n", + " \"''\",\n", + " 'that',\n", + " 'any',\n", + " 'irregularities',\n", + " 'took',\n", + " 'place',\n", + " '.']]" + ] + }, + "execution_count": 78, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "from nltk.corpus import brown\n", + "brown_tagged_sents = brown.tagged_sents(categories='news')\n", + "brown_sents = brown.sents(categories='news')\n", + "brown_sents[:1]" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Example: create a default tagger that tags everything as **NN**\n", + "\n", + "*default taggers assign a tag to every single word*" + ] + }, + { + "cell_type": "code", + "execution_count": 79, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "data": { + "text/plain": [ + "[('I', 'NN'),\n", + " ('do', 'NN'),\n", + " ('not', 'NN'),\n", + " ('like', 'NN'),\n", + " ('green', 'NN'),\n", + " ('eggs', 'NN'),\n", + " ('and', 'NN'),\n", + " ('ham', 'NN'),\n", + " (',', 'NN'),\n", + " ('I', 'NN'),\n", + " ('do', 'NN'),\n", + " ('not', 'NN'),\n", + " ('like', 'NN'),\n", + " ('them', 'NN'),\n", + " ('Sam', 'NN'),\n", + " ('I', 'NN'),\n", + " ('am', 'NN'),\n", + " ('!', 'NN')]" + ] + }, + "execution_count": 79, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "raw = 'I do not like green eggs and ham, I do not like them Sam I am!'\n", + "tokens = word_tokenize(raw)\n", + "default_tagger = nltk.DefaultTagger('NN')\n", + "default_tagger.tag(tokens)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "*this \"tagger\" performs poorly, of course*" + ] + }, + { + "cell_type": "code", + "execution_count": 80, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "data": { + "text/plain": [ + "0.13089484257215028" + ] + }, + "execution_count": 80, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "default_tagger.evaluate(brown_tagged_sents)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "**Default taggers are still useful because after processing several thousand words of English text, most new words will be nouns**\n", + "\n", + "---\n", + "\n", + "### The Regular Expression Tagger" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, "source": [] } ],