- Natural Language Toolkit - Discussion
- Natural Language Toolkit - Useful Resources
- Natural Language Toolkit - Quick Guide
- Natural Language Toolkit - Text Classification
- Synonym & Antonym Replacement
- Natural Language Toolkit - Word Replacement
- Stemming & Lemmatization
- Looking up words in Wordnet
- Training Tokenizer & Filtering Stopwords
- Natural Language Toolkit - Tokenizing Text
- Natural Language Toolkit - Getting Started
- Natural Language Toolkit - Introduction
- Natural Language Toolkit - Home
自然语言工具包
- 自然语言工具箱——改造树木
- 自然语言工具箱——改造楚克
- Chunking & Information 排外
- 自然语言工具箱——包装
- 自然语言工具包 - 更多国家 Taggers
- 自然语言工具箱——将Taggers混为一谈
- 自然语言工具箱——Unigram Tagger
- 部分Speech(POS)基本原理
- Corpus Readers and Customs Corpora
Selected Reading
- Who is Who
- Computer Glossary
- HR Interview Questions
- Effective Resume Writing
- Questions and Answers
- UPSC IAS Exams Notes
Natural Language Toolkit - Combining Taggers
Combining Taggers
相互交织的夸夸大或相互交错是挪威皇家骑士团的重要特征之一。 混淆夸大论背后的主要概念是,如果一触即发者不知道如何打上一字,就会被带上链条.。 为此目的,SequentialBackoffTagger 为我们提供Backoff tagging。
Backoff Tagging
如前所述,背对冲是SequentialBackoffTagger
How does it work?
实际上,每一次SequentialBackoffTagger 可以提出“背弃”关键词。 这一关键词的数值是SequentialBackoffTagger的另一个例子。 现在每逢SequentialBackoffTagger。 分类为初步分类,将编制一份内部备份清单(作为第一个要素)。 此外,如果提供背书的夸张,将附上该冲锋枪的内部清单。
以下文为例,我们正在把DefaulTagger作为上面的Zalph recipe的背叛者,我们已培训UnigramTagger。
Example
在这方面,我们利用DefaulTagger作为后继器。 每当UnigramTagger无法打上词、背书、即DefaulTagger时,就我们而言,它将与“NN”混在一起。
from nltk.tag import UnigramTagger from nltk.tag import DefaultTagger from nltk.corpus import treebank train_sentences = treebank.tagged_sents()[:2500] back_tagger = DefaultTagger( NN ) Uni_tagger = UnigramTagger(train_sentences, backoff = back_tagger) test_sentences = treebank.tagged_sents()[1500:] Uni_tagger.evaluate(test_sentences)
Output
0.9061975746536931
从上述产出来看,你可以观察到,通过增加回击率,准确性将增加约2%。
Saving taggers with pickle
正如我们已经看到,培训一触即发非常麻烦,也需要时间。 为节省时间,我们可以选择一个经过训练的夸张,以便日后使用。 在下面的例子中,我们将对我们已经受过培训的夸张——`Uni_tagger'——这样做。
Example
import pickle f = open( Uni_tagger.pickle , wb ) pickle.dump(Uni_tagger, f) f.close() f = open( Uni_tagger.pickle , rb ) Uni_tagger = pickle.load(f)
NgramTagger Class
从前单位讨论的等级图表,UnigramTagger 页: 1 但是,我们有另外两个小类别:NgarmTagger。 班级
BigramTagger subclass
实际只有一克是一小件,因此,正如名称所示,BigramTagger。 分层看着这两个项目。 第一项目是前一个滞后字,第二个项目是目前滞后字。
TrigramTagger subclass
关于BigramTagger, TrigramTagger 次列审视了三个项目,即前两字和当前一字。
实际上,如果我们采用BigramTagger和TrigramTagger,按我们与UnigramTagger分流一样单独使用,这两者都表现很差。 让我们在以下例子中看到:
Using BigramTagger Subclass
from nltk.tag import BigramTagger from nltk.corpus import treebank train_sentences = treebank.tagged_sents()[:2500] Bi_tagger = BigramTagger(train_sentences) test_sentences = treebank.tagged_sents()[1500:] Bi_tagger.evaluate(test_sentences)
Output
0.44669191071913594
Using TrigramTagger Subclass
from nltk.tag import TrigramTagger from nltk.corpus import treebank train_sentences = treebank.tagged_sents()[:2500] Tri_tagger = TrigramTagger(train_sentences) test_sentences = treebank.tagged_sents()[1500:] Tri_tagger.evaluate(test_sentences)
Output
0.41949863394526193
你可以比较UnigramTagger的表现,我们以前使用过(约89%的准确性)比德拉·塔格(约44%的准确性)和特里克塔戈(大约41%的准确性)。 原因是,Bigram和Trinc taggers不能从第一句中学习。 另一方面,UnigramTagger族对以往情况没有兴趣,对每个字的主角进行了评估,因此能够有较高的基线准确性。
Combining ngram taggers
从上述例子来看,很显然,当我们把大布拉和三瑞克的夸夸大与背对等结合起来时,它们可以作出贡献。 在下面的例子中,我们把Unigram、Bigram和Trigram的夸大同背对。 这一概念与先前的对应办法相同,同时将UnigramTagger与背书gger合。 唯一的区别是,我们利用下文所述从夸大_util.py中点名的背负功能开展后继行动。
def backoff_tagger(train_sentences, tagger_classes, backoff=None): for cls in tagger_classes: backoff = cls(train_sentences, backoff=backoff) return backoff
Example
from tagger_util import backoff_tagger from nltk.tag import UnigramTagger from nltk.tag import BigramTagger from nltk.tag import TrigramTagger from nltk.tag import DefaultTagger from nltk.corpus import treebank train_sentences = treebank.tagged_sents()[:2500] back_tagger = DefaultTagger( NN ) Combine_tagger = backoff_tagger(train_sentences, [UnigramTagger, BigramTagger, TrigramTagger], backoff = back_tagger) test_sentences = treebank.tagged_sents()[1500:] Combine_tagger.evaluate(test_sentences)
Output
0.9234530029238365
从上述产出来看,我们可以看到它提高了精确度约3%。
Advertisements