文本离散表示

理解独热编码的原理,掌握词袋模型的实现方法,词频-逆文本频率的实现方法。

项目地址:zz-zik/NLP-Application-and-Practice: 本项目将《自然语言处理与应用实战》原书中代码进行了实现,并在此基础上进行了改进。原书作者:韩少云、裴广战、吴飞等。 (github.com)icon-default.png?t=N7T8https://github.com/zz-zik/NLP-Application-and-Practice

实现独热编码

onehot.py具体功能根据输入数据输出指定数字的独热编码,输入数据共3列,每一列表示不同的特征及取值范围,程序输出结果为数字0、1、3的独热编码。

"""
实现独热编码
具体功能根据输入数据输出指定数字的独热编码,输入数据共3列,每一列表示不同的特征及取值范围,程序输出结果为数字0、1、3的独热编码。
"""
from sklearn import preprocessing

"""调用独热编码,拟合训练数据"""
enc = preprocessing.OneHotEncoder()  # 调用独热编码
enc.fit([
    [0, 0, 3],
    [1, 1, 0],
    [0, 2, 1],
    [1, 0, 2]
])  # 训练集
"""将结果转化为数组,并打印显示"""
res = enc.transform([[0,1,3]]).toarray() #将结果转化为数组
print(res)

从运行结果可以看出,前两个数字(1.0.)表示数字0的独热编码;中间3个数字(0.1.0)表示数字1的独热编码;后4个数字(0.0.0.1.)表示数字33的独热编码。.

实现词袋模型

bow.py具体功能是输出语料库中每个句子对应词袋模型的表示。
"""
实现词袋模型
具体功能是输出语料库中每个句子对应词袋模型的表示
"""
from sklearn.feature_extraction.text import CountVectorizer

"""加载语料库"""
texts = ['橘子 香蕉 苹果 葡萄',
         '葡萄 苹果 苹果',
         '葡萄',
         '橘子 苹果']  # 语料库

"""文本向量化"""
cv = CountVectorizer()  # 词袋模型对象
cv_fit = cv.fit_transform(texts)  # 完成文本到向量的表示

"""打印结果"""
print(cv.vocabulary_)  # 词汇表
print(cv_fit.toarray())  # 文本向量表示的数组格式

从运行结果可以看出,第一行打印信息表示语料库构建的词汇表,第二行打印信息表示每个句子对应的词袋模型表示。

实现TF-IDF模型

tfidf.py实现TF-IDF模型,具体功能是输出语料库中每个句子对应的TF-IDF的表示。
"""
实现TF-IDF模型,具体功能是输出语料库中每个句子对应的TF-IDF的表示。
"""
from sklearn.feature_extraction.text import TfidfVectorizer

""""加载语料库"""
texts = ['橘子 香蕉 苹果 葡萄',
         '葡萄 苹果 苹果',
         '葡萄',
         '橘子 苹果']  # 语料库
"""文本向量化表示"""
cv = TfidfVectorizer()  # TF-TDF
cv_fit = cv.fit_transform(texts)  # 完成文本到向量的表示

"""打印结果"""
print(cv.vocabulary_)  # 词汇表
print(cv_fit.toarray())  # 文本向量表示的数组格式

从运行结果可以看出,第一行打印信息表示语料库的词汇表,第二行打印信息表示每个句子对应的TF-IDF模型表示。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

伪_装

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值