NLTK学习之三:文本分类与构建基于分类的词性标注器

机器学习:利用NLTK进行简单文本分析 利用机器学习算法进行文本分类利用机器学习算法进行文本分类 一监督式分类建立在训练语料基础上的分类 特征提取器和朴素贝叶斯分类器 过拟合当特征过多 错误分析 二实例文本分类和词性标注 文本分类 词性标注决策树分类器 三更近一步的连续分类或贪婪序列分类在朴素贝叶斯和决策树之后 四评估 五三种分类器的总结 六后记 关于分类文本,有三个问题 1. 怎么识别出文本中用于明显分类的特征 2. 怎么构建自动分 阅读详情

1 有监督的分类

1.1 分类相关概念

分类是为给定输入选择正确的类标签的任务。比如判断一封Email是否是垃圾邮件,确定一篇新闻的主题。
如果分类需要人工标准的标签进行训练,则称为有监督分类。有监督的学习使用下图的框架。
此处输入图片的描述
在框架中,特征是一个非常重要的概念。使用分类器首先要决定选择什么 样的特征,以及对特征进行编码。如果没有特征直接输入原始数据,则数据会十分离散而难以训练出有用的模型。

1.2 NLTK的分类器介绍

在NLTK中提供了NaiveBayesClassifier,DecisionTreeClassifier,MaxentClassifier三种类型的分类器。分类器都提供了类方法可以训练出一个分类器实例,有了这个实例,便能对新的样本进行分类预测,以及其进行准确度评测。

方法说明
train(train_set)类方法,用于生成一个分类器实例
classify(feature)实例方法,基于训练的模型对输入特征进行分类
show_most_informative_features()实例方法,显示训练过程中最有效的特性统计

nltk.classify包的工具类提供了下列的方法辅助训练及优化过程

方法说明
accuracy(classifier,test_set)评估分类器在测试集上的准确度
apply_feature(func,data)将特征函数func应用到data上,类似于map操作

1.3 文本分类示例

下面基于nltk的movie_reviews语料库的正负向标注数据训练一个简单的分类器,用来预测评论的正负向。PS:语料库文本被分两类,pos与neg。
代码先统计出最常用2000个词,简单假设这些词的使用情况可以决定一篇评论的正负向情感。针对每篇文档,特征提取器计算其在这2000个词上出现的情况,若出现则在特性中标记为True,否则标记为False。

import random
import nltk
from nltk.corpus import movie_reviews

docs = [(list(movie_reviews.words(fileid)),category)
        for category in movie_reviews.categories()
        for fileid in movie_reviews.fileids(category)]
random.shuffle(docs)

all_words = nltk.FreqDist(w.lower() for w in movie_reviews.words())
most_common_word = [word for (word,_) in all_words.most_common(2000)]

def doc_feature(doc):
    doc_words = set(doc)
    feature = {}
    for word in most_common_word:
        feature[word] = (word in doc_words)
    return feature

train_set = nltk.apply_features(doc_feature,docs[:100])
test_set = nltk.apply_features(doc_feature,docs[100:])

classifier = nltk.NaiveBayesClassifier.train(train_set)
print nltk.classify.accuracy(classifier,test_set) #0.735
classifier.show_most_informative_features()
'''
Most Informative Features
hard = True                neg : pos    =      8.6 : 1.0
worst = True               neg : pos    =      7.1 : 1.0
giant = True               neg : pos    =      7.1 : 1.0
unlike = True              pos : neg    =      6.8 : 1.0
entire = True              pos : neg    =      5.6 : 1.0
headed = True              neg : pos    =      5.6 : 1.0
gun = True                 neg : pos    =      5.6 : 1.0
attempt = True             neg : pos    =      5.2 : 1.0
small = True               pos : neg    =      5.0 : 1.0
'''

可以看到出现hard,worst,giant词的文档通常是neg的,出现entire,small词的文档通常是正向的。基于特征词的分类器在测试集上达到了73.5%的正确率。精心构造的对于当前任务透彻理解的特性,通常可以显著提高分类的正确性。

nltk.sentiment包提供了两个情感分析器的实现,使用示例见这里。

类名说明
SentimentAnalyzer实现和上面代码的思想一致,只是简单做了些封装,支持传入不同的分类器和使用串联的多个特征提取器。可以直接使用此类进行中文的情感分析。
SentimentIntensityAnalyzer实现基于《VADER: A Parsimonious Rule-based Model for Sentiment Analysis of Social Media Text》这篇文章,思想是基于词典对词进行打分,得到了个分值来表示句子情感的极性。这个类由于规则词典的词都是英文,如果想使用它处理中文,需要自己统计提取中文极性词并打分,以替换掉英文词典。

1.4 过拟合和欠拟合

特性如果选择的太多则会导致算法在训练集上正确率很高,而在测试集上较差的情况,此时就出现了过拟合。尤其是训练数据集较小的情况下更容易出现。因此要平衡特征的选取,以取得算法在未知数据上更好泛化能力。
过拟合的反面是欠拟合,即特征不足。此时通过对失败情况进行分析,改进特征提取器以重建分类器是提升模型准确性的一种方法。但要注意防止出现过拟合。

2 基于上下文的词性标注器

在上一篇文章中,主要介绍了N-gramTagger的词性标注器的使用方法,其主要思想是基于词的词性的历史出现次数进行推测。下面介绍实现一种基于分类器的词性标注器,它借助词本身,词的上下文,标注信息的上下文等特征来训练一个词性分类器,从而实现词性标注。

import nltk
from nltk.corpus import brown

def pos_feature_use_hist(sentence,i,history):
    features = {
        'suffix-1': sentence[i][-1:],
        'suffix-2': sentence[i][-2:],
        'suffix-3': sentence[i][-3:],
        'pre-word': 'START',
        'prev-tag': 'START'
    }
    if i>0:
        features['prev-word'] = sentence[i-1],
        features['prev-tag'] =  history[i-1]
    return features

class ContextPosTagger(nltk.TaggerI):
    def __init__(self,train):
        train_set = []
        for tagged_sent in train:
            untagged_sent = nltk.tag.untag(tagged_sent)
            history = []
            for i,(word,tag) in enumerate(tagged_sent):
                features = pos_feature_use_hist(untagged_sent,i,history)
                train_set.append((features,tag))
                history.append(tag)
        print train_set[:10]
        self.classifier = nltk.NaiveBayesClassifier.train(train_set)

    def tag(self,sent):
        history = []
        for i,word in enumerate(sent):
            features = pos_feature_use_hist(sent,i,history)
            tag = self.classifier.classify(features)
            history.append(tag)
        return zip(sent,history)

tagged_sents = brown.tagged_sents(categories='news')
size = int(len(tagged_sents)*0.8)
train_sents,test_sents = tagged_sents[0:size],tagged_sents[size:]

#tagger = nltk.ClassifierBasedPOSTagger(train=train_sents)  # 0.881
tagger = ContextPosTagger(train_sents)  #0.78
tagger.classifier.show_most_informative_features()
print tagger.evaluate(test_sents)

这个简单只考虑前一个词及前一个词的词性的标注器,在测试集上有约78%的准确度,尚没有上节的组合N-gram标注器的正确率高,这主要是例子中的特征提取器考虑十分简单的缘故。nltk默认实现了一个ClassifierBasedPOSTagger类,可以实现约88%的标注准确度。
例子中实现存在的问题是一旦一个词的词定下来,那么后面就无法修改,即使是后面发现前面判断出了错。解决这个问题有两种方法:一种是采用转换策略,即Brill标注器。另一种对所有的词性标记序列打分,选择总分最高的序列。隐含马尔可夫模型即实现此方法,此外更高级的如最大熵马尔可夫模型,线性条件随机场模型。

3 算法评估方法

3.1 精确度与召回率

对于分类算法在测试集上运行之后,数据会被分为下表的四类

预测\类别正例负例
分类为正TP(真正例)FP(假正例)
分类为负FN(假负例)TN(真负例)

准确度A:(TP+TN)/ALL 分类器正确分类的比例。
精确度P:TP/(TP+FP), 预测为正的样本中,有多少真的正样本
召回率R:TP/(TP+FN),测试集中的正样本,有多少被正确分类
F1评分:(2*P*R)/(P+R),R与P的调和平均数

3.2 混淆矩阵

对于多分类任务,可以使用混淆矩阵来分析错误分类的细分信息。混淆矩阵的元素m[i,j],表示正确的类别i,被预测为类别j的次数。

import nltk
gold = [1,2,3,4]
test = [1,3,2,4]
print nltk.ConfusionMatrix(gold,test)
'''output
  | 1 2 3 4 |
--+---------+
1 |<1>. . . |
2 | .<.>1 . |
3 | . 1<.>. |
4 | . . .<1>|
--+---------+
'''

4 分类器模型介绍

4.1 决策树分类器

决策树(decision tree)是一个树结构。其每个非叶节点表示一个特征属性上的测试,而每个叶节点存放一个类别。使用决策树进行决策的过程就是从根节点开始,测试待分类项中相应的特征属性,并按照其值选择输出分支,直到到达叶子节点,将叶子节点存放的类别作为决策结果。
下面是一棵形象的决策树:此处输入图片的描述

4.2 朴素贝叶斯分类器

由条件概率和乘法法则:

P(A|B)=P(AB)P(B)=P(B|A)P(A)P(B)

对于贝叶斯分类器,假设某个样本集有n项特征(Feature),分别为F1、F2、…、Fn。现有m个类别(Category),分别为C1、C2、…、Cm。分类器就是计算出概率最大的那个分类,也就是求下面这个算式的最大值:
P(C|F1F2...Fn)=P(F1F2...Fn|C)P(C)P(F1F2...Fn)

由于 P(F1F2...Fn) 对于所有的类别都是相同的,可以省略,问题就变成了求 P(F1F2...Fn|C)P(C) 的最大值。
朴素贝叶斯分类器则是更进一步,假设所有特征都彼此独立,因此有
P(F1F2...Fn|C)P(C)=P(F1|C)P(F2|C)...P(Fn|C)P(C)

上式等号右边的每一项,都可以从统计资料中得到,由此就可以计算出每个类别对应的概率,从而找出最大概率的那个类。

4.3 最大熵分类器

在信息论中,熵表示离散随机事件的出现概率。一个系统越是有序,信息熵就越低;反之,一个系统越是混乱,信息熵就越高。下面给出一些定义:

4.3.1 熵

如果一个随机变量X的可能取值为X = {x1, x2,…, xk},其概率分布为P(X = xi) = pi(i = 1,2, …, n),则随机变量X的熵定义为:

H(X)=−∑i=1kP(xi)∗log2P(xi)

4.3.2 条件熵

对于两个随机变量X,Y的联合分布,可以形成联合熵Joint Entropy,用H(X,Y)表示。

在随机变量X发生的前提下,随机变量Y发生所新带来的熵定义为Y的条件熵,用H(Y|X)表示,用来衡量在已知随机变量X的条件下随机变量Y的不确定性,定义为:

H(Y|X)=H(X,Y)–H(X)

4.3.3 相对熵

又称互熵,交叉熵。设p(x)、q(x)是X中取值的两个概率分布,则p对q的相对熵是:

D(p||q)=∑xp(x)logp(x)q(x)=Ep(x)logp(x)q(x)

4.3.4 互信息

互信息:两个随机变量X,Y的互信息定义为X,Y的联合分布和各自独立分布乘积的相对熵,用I(X,Y)表示。

I(X,Y)=∑x,yp(x,y)logp(x,y)p(x)p(y)=H(X)+H(Y)−H(X,Y)

4.3.5 最大熵模型

最大熵模型的本质,就是已知X,计算Y的概率,且尽可能让Y的概率最大(实践中,X可能是某单词的上下文信息,Y是该单词翻译成me,I,us、we的各自概率),从而根据已有信息,尽可能最准确的推测未知信息。模型表示为:

maxH(Y|X)=−∑x,yP(x,y)logP(y|x)

求解最大熵参数的算法有GIS,IIS,MEGAM,TADM,可以在nltk.classify.maxent类中找到实现。

5 参考文献

1 贝叶斯分类应用:
http://www.ruanyifeng.com/blog/2013/12/naive_bayes_classifier.html
2 最大熵模型中的数学推导:
http://blog.youkuaiyun.com/v_july_v/article/details/40508465

学习如何使用NLTK和Spacy库进行文本分词、词性标注、命名实体识别等操作 在Python中,自然语言处理(NLP)是处理和理解人类语言数据的过程。在NLP中,有一些基本任务,例如分词、词性标注和命名实体识别。在这些任务中,我们可以使用NLTK和Spacy这两个库。 阅读详情

相关推荐

常用工具包-nltk初步学习

目录 一、软件安装... 1 二、相关实践理解... 1 2.1分词、词性标注... 2 2.2句法、语义分析... 2 2.3加载语料库... 2 2.4概率统计... 3 2.4.1 FreqDist. 3 2.5聚类器... 4 2.5.1kmeans聚类... 4 2.5.2gaac聚类... 4 2.5.3混合高斯聚类... 5 2.6分类器

alihonglong的专栏 7692

Pytorch构建LSTM(batch-training)

本课程基于pytorch深度学习框架,详细介绍了lstm网络的原理与搭建过程,并介绍如何重构基本网络来进行batch的训练

Python实现文本分类:机器学习与NLP的综合应用

在信息时代,文本数据的爆炸式增长使得我们每天都要面对海量的文本信息,例如新闻文章、社交媒体动态、电子邮件以及各种在线评论等。文本分类技术作为一种重要的自然语言处理手段,通过自动化的手段将这些文本数据按照内容、主题或意图进行归类,从而极大地方便了信息检索、情感分析、垃圾邮件过滤和个性化推荐等应用场景。文本分类的应用广泛,它的准确性和效率直接影响了用户体验和数据处理的成本。例如,在垃圾邮件过滤中,准确的文本分类能够提高用户通讯的效率;在新闻网站上,有效的分类算法可以帮助用户更快找到感兴趣的新闻类别;

weixin_30205153的博客 1061

【Python自然语言处理】读书笔记:第五章:分类和标注词汇

jupyter 版请见我的github:https://github.com/JackKuo666/Python_nlp_notes 【Python自然语言处理】读书笔记:第五章:分类和标注词汇 本章原文:https://usyiyi.github.io/nlp-py-2e-zh/5.html 本章的目的是要回答下列问题: 1. 什么是词汇分类,在自然语言处理中它们是如何使用? 2. 一个好的存...

Jack_Kuo的博客 2034

Visual Studio调试时遇到ntdll.dll的PDB文件缺失?别慌,这3个方法帮你搞定(附详细步骤)

本文详细解析了Visual Studio调试时ntdll.dll的PDB文件缺失问题,提供了3种实用解决方案:调整调试设置、配置符号服务器与缓存目录、手动下载管理符号文件。通过分步指导和高级技巧,帮助开发者快速恢复完整的调试功能,特别适用于Windows平台下的C++项目开发。

weixin_42537919的博客 513

大样本EEG公共数据集汇总

描述: OpenNeuro平台包含多个认知障碍相关的EEG数据集,例如针对轻度认知障碍(MCI)或阿尔茨海默病(AD)的研究。描述: 天普大学医院EEG语料库包含大量临床EEG记录,可通过元数据筛选出与认知障碍相关的片段(如诊断标签包含dementia或MCI)。描述: ADNI主要提供多模态神经影像数据(MRI/PET),但部分合作研究整合了EEG数据。样本量: 部分数据集包含100+被试(例如结合MRI与EEG的多模态数据)。样本量:30,000+ EEG记录(持续更新,全球最大临床EEG数据库)。

谁人打的太极拳的博客 1759

NLP之nltk:基于nltk库实现句子分词及标注对应词性、句子分割、波特词干算法进行词干提取代码案例实现

NLP之nltk:基于nltk库实现句子分词及标注对应词性、句子分割、波特词干算法进行词干提取代码案例实现。

头部AI社区如有邀博主AI主题演讲请私信—心比天高,仗剑走天涯,保持热爱,奔赴向梦想!低调,专注,谦虚,自律,反思,成长,还算比较正能量的博主,公益免费传播…内心特别想在AI界做出一些可以推进历史进程影响力的技术(兴趣使然,有点小情怀,也有点使命感呀 1万+

USB接口ESD保护电路:深度剖析与选型建议

USB接口在热插拔和频繁使用中极易遭遇静电放电(ESD)冲击,导致芯片损坏或通信异常。本文结合实际电路设计经验,详解TVS二极管、集成ESD防护器件等方案在USB接口上的应用要点,重点分析钳位电压、结电容、IEC 61000-4-2等级等关键参数对信号完整性与防护效果的影响,助你为USB接口匹配高可靠、低干扰的ESD保护方案。

weixin_36289813的博客 510

NLTK3:文本分类与文本信息抽取

目录0. nltk的分类器介绍0.1分类器示例0.2 基于上下文的词性标注器1.信息抽取2.分块2.1关于命名实体识别2.2 基于正则的匹配2.3 处理递归2.4基于分类的分块器2.5 命名实体识别2.6 关系抽取 参考链接1 参考链接2 0. nltk的分类器介绍 在NLTK中提供了NaiveBayesClassifier,DecisionTreeClassifier,MaxentClassifier三种类型的分类器。分类器都提供了类方法可以训练出一个分类器实例,有了这个实例,便能对新的样本进行分类预测,

qq_33489955的博客 2636

S4 Hana SD -信贷管理 - 02

在S4版本中,客户的信用管理数据在事务代码BP维护,业务伙伴角色是UKM000。在维护过程中,我们并不能直接输入信贷控制范围这个组织架构,而是需要输入一个信用段,并且在信用段的维度下去维护相应信用管理数据。对于信用段,可以分为主信用段(信用段是0000)和其他临时信用段,我们可以通过配置把次级信用段的客户信贷负债汇总到主信用段。当然,在后台也有配置,会把信用段和信贷控制范围这两者进行关联.3.2SPROIMG > 财务供应链管理 > 信用管理 > 信贷风险监视 > 主数据 > 创建信用段。

weixin_46525734的博客 1965

高通Camera HAL3调试实战:如何用camxoverridesettings.txt高效抓取日志与dump图像数据

本文深入探讨了高通Camera HAL3调试中camxoverridesettings.txt文件的高效应用,重点介绍了如何通过该文件精准控制日志输出级别与dump图像数据,帮助开发者快速定位移动影像系统中的问题。文章详细解析了日志分级配置、图像数据捕获技巧及典型问题排查流程,为高通Camera HAL3项目开发提供了实用技术点。

weixin_30315905的博客 861

NLTK学习笔记——Classify模块(2)

注:本文为实战过程作铺垫,因为参考原文是英文的,每看一遍都要琢磨一遍单词和语法,因此总结一下原文的过程,以备忘之用。本文主要介绍原文中利用NLTK进行twitter语句分类的过程,在下一节就记录本人的实战过程。 参考:http://www.cnblogs.com/wentingtu/archive/2012/04/07/2436583.html 首先与NLTK的例子(即通过name判断gend

cangqiong112758的博客 2865

第03章 Hermes Agent 核心原理

环境跑通之后,读者会很自然地想问:Hermes 的内部到底是怎么转起来的?为什么它能做到"越用越聪明"?长对话不会忘记上下文吗?这一章用尽量短的篇幅把核心原理讲清楚。理解原理不是为了纸上谈兵,而是为了在第7章实战时能判断"为什么 Hermes 这么响应"以及"我应该把哪类任务交给它"。

亢少军的博客 141

Python自然语言处理:NLTK入门指南

自然语言处理(Natural Language Processing,NLP)是指计算机处理人类语言的领域。它是一门多学科交叉的学科,将计算机科学、人工智能、语言学等诸多学科的理论和方法融合在一起,将人类语言转化为计算机所能理解的形式,实现对人类语言的自动处理、理解和生成。NLP可以应用到很多方面,比如语音识别、机器翻译、情感分析、智能客服等等。NLTK是Natural Language Toolkit的缩写,是Python自然语言处理领域中最流行的一款工具包。

BXA 1万+

Altium Designer(AD24/25)导入DXF或DWG结构文件的方法

DXF(Drawing Exchange Format)和DWG(Drawing)是两种常见的CAD(计算机辅助设计)文件格式,常用于结构和硬件之间的沟通。本文介绍Altium Designer(AD24/25)导入DXF或DWG结构文件的方法。

fydar的博客 1441

sim800c插卡后指示灯还是一秒一闪无法接收发送短信,如何解决?

🏆 本文收录于《全栈Bug调优(实战版)》专栏,致力于分享我在项目实战过程中遇到的各类Bug及其原因,并提供切实有效的解决方案。无论你是初学者还是经验丰富的开发者,本文将为你指引出一条更高效的Bug修复之路,助你早日登顶,迈向财富自由的梦想🚀!同时,欢迎大家关注、收藏、订阅本专栏,更多精彩内容正在持续更新中。让我们一起进步,Up!Up!Up!    备注: 部分问题/难题源自互联网,经过精心筛选和整理,结合数位十多年大厂实战经验资深大佬经验总结所得,数条可行方案供所需之人参考。

**My Coding Family** 1167

深入理解 NLTK 词性标注器:从基础使用到完整系统构建

NN:名词(如 “apple”)VB:动词(如 “run”)JJ:形容词(如 “beautiful”)这些标签构成了词性标注的基础,而 “词性标注器(Tagger)” 的任务,就是为每个单词分配对应的标签。用快速实现高精度标注。用自定义规则处理特定模式。用+ 退避构建基线,再通过优化。整个过程围绕 “训练→评估→改进→测试” 闭环,通过黄金数据的严格评估,不断打磨模型。无论是学术研究还是工业级应用,这套流程都能帮助我们构建可靠的词性标注系统。

佑瞻的博客 1290

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

python的nltk中文使用和学习资料汇总帮你入门提高

nltk是一个python工具包, 用来处理和自然语言处理相关的东西. 包括分词(tokenize), 词性标注(POS), 文本分类, 等等现成的工具. 1. nltk的安装 资料1: 黄聪:Python+NLTK自然语言处理学习(一):环境搭建  http://www.cnblogs.com/huangcong/archive/2011/08/29/2157437.html   这个图文并

糯米糊糊的专栏 7万+

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

Python与自然语言处理案例:文本分类应用

这就像是在一个巨大的图书馆里寻找一本特定的书,如果没有一个好的分类系统,你可能要花上一整天的时间。这里不仅有好玩的内容和知识等着你,还特别欢迎你畅所欲言,分享你的想法和见解。你可以把这里当作自己的家,无论是工作之余的小憩,还是寻找灵感的驿站,我都希望你能在这里找到属于你的那份快乐和满足。spaCy则是一个更加现代和高效的库,它专注于工业级应用,提供了更快的速度和更简洁的API。那么,今天的分享就到这里了,希望你们喜欢。

master_chenchen的博客 1575

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

QQ空间数据导出与说说备份怎么做?GetQzonehistory 完整上手指南

如果 QQ 空间是存放过往说说的"相册",最让人担心的就是那些早期内容正一点点从消息列表里淡出。GetQzonehistory 是一个 QQ 空间数据导出工具,可以把历史说说、留言、转发和好友列表批量下载下来,输出成 Excel 表格和网页两种格式,长期留在本地。 ## 导出的成品长什么样:一个以 QQ 号命名的文件夹 先说结果。程序跑完后,会在 `resource/result/你的QQ号/

gitblog_01113的博客 372

NLTK--词性标注

tag标注说明 import nltk from nltk.tag import pos_tag from nltk.tokenize import word_tokenize 1.词性标注器 text=word_tokenize('And now for something completely different') print(pos_tag(text)) out:[('And', 'CC'), ('now', 'RB'), ('for', 'IN'), ('something', 'NN'),

jaffe507的博客 6998

使用 NLTK 库遇到的问题及解决方案

NLTK是Natural Language Toolkit缩写,是自然语言处理的一款流行的工具包,可以用来完成各种自然语言处理的任务,包括词汇处理,文本分类,分词,语言标准化等。

just的博客 2935

NLTK进行文本分类和词性标注

词性标注将句子中的单词以不同语义功能或语法功能进行分类。在英语中,主要的词性为名词、代词、形容词、动词、副词、介词、限定词和连词,而词性标注正是为文本中的每个单词或词元附加这些类别之一。VERB:动词(所有时态和方式)NOUN:名词(普通名词、专有名词)PRON:代词ADJ:形容词ADV:副词ADP:介词(前置词、后置词)CONJ:连词DET:限定词NUM:基数PRT:小品词或其他功能词X-other:外来词、错别字、缩写.:标点符号。

dark 633

NLTK自然语言处理实战:2.2 词性标注

本文介绍了NLTK中的词性标注技术,重点讲解了词性标注的基本概念、常用标签集(Penn Treebank和Universal POS)以及NLTK提供的多种标注器(pos_tag、RegexpTagger等)。通过代码示例展示了如何使用pos_tag进行英文文本标注,查看标签详细说明,以及基于正则表达式的标注方法。词性标注是NLP基础任务,对语法分析、信息提取等高级应用至关重要。文章适合NLP初学者,要求具备Python和NLTK基础知识。

AI 题库 —— 软件编程老兵专属分享阵地,聚焦青少年编程等级考、Python/C++ 信息学奥赛、机器人技术等级考试备考干货,依托智能题库资源,用 5 年一线教学经验助力编程学习高效备考! 1291

NLTK 词性标注与句法分析

NLTK的词性标注与句法分析功能为自然语言处理提供了强大的支持。通过这两项技术,我们可以深入理解文本的结构和含义,为后续的高级NLP任务打下坚实的基础。无论是初学者还是经验丰富的开发者,都可以从NLTK中受益。在未来的自然语言处理研究中,随着深度学习等技术的不断发展,NLTK将继续发挥重要的作用,推动该领域不断向前发展。

得塔云的博客 946

文本分类 决策树 python_NLTK学习笔记(六):利用机器学习进行文本分类

关于分类文本,有三个问题怎么识别出文本中用于明显分类的特征怎么构建自动分类文本的模型相关的语言知识按照这个思路,博主进行了艰苦学习(手动捂脸。。)一、监督式分类:建立在训练语料基础上的分类训练过程中,特征提取器将输入转化为特征集,并且记录对应的正确分类。生成模型。预测过程中,未见过的输入被转换特征集,通过模型产生预测标签。特征提取器和朴素贝叶斯分类器特征提取器返回字典,这个字典被称为特征集。然后利...

weixin_39535283的博客 629
上一篇: NLTK学习之二:建构词性标注器
下一篇: NLTK学习之四:文本信息抽取
zzulp
博客等级 码龄19年 464粉丝 176原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值