python nltk 6 学习分类文本

英文文档 http://www.nltk.org/book/
中文文档 https://www.bookstack.cn/read/nlp-py-2e-zh/0.md
以下编号按个人习惯

Learning to Classify Text

1 Supervised Classification(有监督分类)

1.1 Gender Identification(性别鉴定)

1、依据男女名字差异的特点,来建立分类器,进行分类。
2、首先要创建特征提取器,特征提取器返回一个字典,称为特征集,包括特征名称(可读、区分大小写的字符串)和特征值(简单类型)。再者准备通过特征提取器处理原始数据集,再将其分为训练集和测试集,利用训练集训练一个分类器。
3、最后可利用分类器进行分类或评估分类器。

from nltk.corpus import names
from nltk.classify import apply_features
import random
import nltk

# 特征提取器
def gender_features(word):
    # 返回的字典成为特征集。映射了特征名称到其值
    # 特征名称是区分大小写的字符串,可读。特征值是简单类型的值,如布尔、数字、字符串
    # 当返回的特征集不同,准确性有所差距
    return {
   'last_letter': word[-1], 'word_length': len(word), 'first_letter': word[0]}
    # return {'last_letter': word[-1]}


# 性别鉴定
def gender_identification():

    labeled_names = [(name, 'male') for name in names.words('male.txt')] + [(name, 'female') for name in
                                                                            names.words('female.txt')]
    random.shuffle(labeled_names)
    # 划分训练集和测试集。以下方法处理大型语料库,使得不会再内存中存储所有特征集对象
    train_set = apply_features(gender_features, labeled_names[500:])
    test_set = apply_features(gender_features, labeled_names[:500])
    # 利用训练集训练一个朴素贝叶斯分类器
    classifier = nltk.NaiveBayesClassifier.train(train_set)
    # 进行测试分类时,要先提取特征,再进行分类
    classify_result = classifier.classify(g
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值