- Hands-On Natural Language Processing with Python
- Rajesh Arumugam Rajalingappaa Shanmugamani
- 359字
- 2021-08-13 16:01:44
What is POS tagging?
POS refers to categorizing the words in a sentence into specific syntactic or grammatical functions. In English, the main parts of speech are nouns, pronouns, adjectives, verbs, adverbs, prepositions, determiners, and conjunctions. POS tagging is the task of attaching one of these categories to each of the words or tokens in a text. NLTK provides both a set of tagged text corpus and a set of POS trainers for creating custom taggers. The most common tagged datasets in NLTK are the Penn Treebank and Brown Corpus. The Penn Treebank consists of a parsed collection of texts from journal articles, telephone conversations, and so on. Similarly, the Brown Corpus consists of text from 15 different categories of articles (science, politics, religion, sports, and so on). This text data provides very fine granularity tagging, while many applications might need only the following universal tag set:
- VERB: Verbs (all tenses and modes)
- NOUN: Nouns (common and proper)
- PRON: Pronouns
- ADJ: Adjectives
- ADV: Adverbs
- ADP: Adpositions (prepositions and postpositions)
- CONJ: Conjunctions
- DET: Determiners
- NUM: Cardinal numbers
- PRT: Particles or other function words
- X-other: Foreign words, typos, abbreviations
- .: Punctuation
NLTK also provides mapping from a tagged corpus (such as the Brown Corpus) to the universal tags, as shown in the following code. The Brown Corpus has a finer granularity of POS tags than the universal tag set. For example, the tags VBD (for past tense verb) and VB (for base form verb) map to just VERB in the universal tag set:
>>> from nltk.corpus import brown
>>> brown.tagged_words()[30:40]
[('term-end', 'NN'), ('presentments', 'NNS'), ('that', 'CS'), ('the', 'AT'), ('City', 'NN-TL'), ('Executive', 'JJ-TL'), ('Committee', 'NN-TL'), (',', ','), ('which', 'WDT'), ('had', 'HVD')]
>>> brown.tagged_words(tagset='universal')[30:40]
[('term-end', 'NOUN'), ('presentments', 'NOUN'), ('that', 'ADP'), ('the', 'DET'), ('City', 'NOUN'), ('Executive', 'ADJ'), ('Committee', 'NOUN'), (',', '.'), ('which', 'DET'), ('had', 'VERB')]
Here, you can see that the word City is tagged as NP-TL, which is a proper noun (NP) appearing in the context of a title (TL) in the Brown Corpus. This is mapped to NOUN in the universal tag set. Some NLP tasks may need these fine-grained categories, instead of the general universal tags.
- Vue.js入門與商城開發實戰
- Mastering Scientific Computing with R
- Silverlight魔幻銀燈
- 概率成形編碼調制技術理論及應用
- Symfony2 Essentials
- 數據結構習題解析與實驗指導
- Visual Basic程序設計教程
- Building Machine Learning Systems with Python(Second Edition)
- iOS自動化測試實戰:基于Appium、Python與Pytest
- Managing Microsoft Hybrid Clouds
- .NET 4.0面向對象編程漫談:應用篇
- 3ds Max 2018從入門到精通
- MySQL從入門到精通
- Mastering Magento Theme Design
- 編程風格:程序設計與系統構建的藝術(原書第2版)