NLP-task2

python自然语言处理(NLP)1------中文分词1,基于规则的中文分词方法 python中文分词方法之基于规则的中文分词 目录 常见中文分词方法 推荐中文分词工具 参考链接 一、四种常见的中文分词方法: 基于规则的中文分词 基于统计的中文分词 深度学习中文分词 混合分词方法 基于规则的中文分词 包括, 正向最大匹配法,逆向最大匹配法和双向最大匹配法。 最大匹配方法是最有代表性的一种基于词典和规则的方法,其缺点是严重依赖... 阅读详情

1. 基本文本处理技能

1.1 分词的概念(分词的正向最大、逆向最大、双向最大匹配法);

  • 正向最大匹配
    从左到右将待切分句子的m个字符作为匹配字符,m为初始词典中最长词条的长度。
    将字符与字典中元素进行匹配:
    若匹配成功,则将这个字符作为一个词切分出来
    若匹配不成功,则将这个字符的最后一个字去掉,再进行匹配,重复上述过程,知道切分完整个文本为止。
    举个例子吧:
    假设我们要切分的句子为“南京市长江大桥”,字典中最长的元素长度为5,则先取待切分句子的前5个字符“南京市长江”。字典中没有元素与之匹配,长度减一,则变成“南京市长”,匹配成功。
    对剩余三个字“江大桥”再次进行正向最大匹配,会切成“江”、“大桥”;
    整个句子切分完成为:南京市长、江、大桥;

  • 逆向最大匹配
    逆向最大匹配思想与正向最大匹配基本相同,不同的是将扫描方向变成了从右往左,匹配不成功时,去掉最左边的字符。
    实验表明,逆向最大匹配算法效果要优于正向最大匹配算法。
    “南京市长江大桥”的逆向最大匹配:
    1.取出“南京市长江大桥”的后5个字“市长江大桥”,字典中无匹配元素,将字符“市”去掉,发现词典中有匹配,切割下来;
    2.对剩余的“南京市”进行分词,整体结果为:南京市、长江大桥

  • 双向最大匹配
    双向最大匹配法是将正向最大匹配法得到的分词结果和逆向最大匹配法得到的结果进行比较,从而决定正确的分词方法。
    还是上面的例子,双向最大匹配的划分结果为:南京市长、南京市、长江大桥、江、大桥。
    这类算法的优点是速度快,时间复杂度为O(n),实现简单;但是对于歧义和未登录词表现不佳。

1.2 词、字符频率统计;(可以使用Python中的collections.Counter模块,也可以自己寻找其他好用的库)

import re 
from collections import Counter
 
def get_max_value_vl(text):
	text = text.lower()
	result = re.findall('[a-zA-Z0-9]',text) #去掉列表中的符号
	count = Counter(result)                 #词频统计
	count_list = list(count.values())
	max_value = max(count_list)
	max_list = []
	for k,v in count.items():
		if v == max_value:
			max_list.append(k)
	max_list = sorted(max_list)
	return max_list[0]

目前国内针对中文分词有几个比较流行的库:
jieba:基于python语言开发,同时最开始接触的也是这个开源库,整体而言也不错,github上关注度也是最高的;
Yaha:也是基于python语言开发的,跟jieba差不多,貌似功能方面有所改变;
NLPIR:开发语言C/C++/C#/Java;

2. 语言模型

2.1 语言模型中unigram、bigram、trigram的概念;

unigram: 单个word
bigram: 双word
trigram:3 word
比如:
西安交通大学:
unigram 形式为:西/安/交/通/大/学
bigram形式为: 西安/安交/交通/通大/大学
trigram形式为:西安交/安交通/交通大/通大学

2.2 unigram、bigram频率统计;(可以使用Python中的collections.Counter模块,也可以自己寻找其他好用的库)

import collections
import os
import wordCount
base_dir = 'data/cnews'
train_dir = os.path.join(base_dir, 'news.txt')
text = wordCount.read_file(train_dir)
unigram_counter = collections.Counter([text[i] for i in range(0, len(text))])
for k, v in unigram_counter.items():
    print(k, v)
bigram_counter = collections.Counter([(text[i], text[i + 1]) for i in range(0, len(text) - 1)])
for k, v in bigram_counter.items():
    print(k, v)
bigram_counter = collections.Counter([(text[i], text[i + 1], text[i + 2]) for i in range(0, len(text) - 2)])
for k, v in bigram_counter.items():
    print(k, v)

3. 文本矩阵化:要求采用词袋模型且是词级别的矩阵化

步骤有:
分词(可采用结巴分词来进行分词操作,其他库也可以);去停用词;构造词表。
每篇文档的向量化。

# -*- coding: utf-8 -*-
from sklearn.feature_extraction.text import TfidfVectorizer
import wordCount
import jieba
# 训练语料集路径
file_obj = open(wordCount.train_dir, "rb")
# 读取持久化后的对象
data_set = file_obj.read()
data_set = data_set.split()
file_obj.close()
sent_words = [list(jieba.cut(sent0)) for sent0 in data_set]
document = [" ".join(sent0) for sent0 in sent_words]
print(document)
tfidf_model = TfidfVectorizer().fit(document)
print(tfidf_model.vocabulary_)
sparse_result = tfidf_model.transform(document)
print(sparse_result)
 
输出结果如下:
['财经', '华夏 大盘 逆势 减仓 近 5% 大多数 基金 一季度 加仓 □ 晨报 记者 \xa0 李锐 在 一片 加仓声 中 , 一季度 减仓 的 基金 备受 市场 关注 , 而 华夏 大盘 就是 其中 一个 。 随着 一 季报 的 披露 , 来自 WIND 资讯 的 统计数据 显示 , 目前 大多数 开放式 偏股 型基金 的 仓位 普遍 上涨 , 平均 涨幅 达到 10 个 百分点 , 几乎 接近 牛市 的 仓位 水平 。 不过 , 作为 市场 里 的 最 赚钱 基金 之一 , 华夏 大盘 的 举动 颇受 关注 , 一季度 不但 没加仓 , 反而 大幅 减仓 近 5% 。 由此 看出 , 基金 对 后市 判断 的 分歧 日益 明显 。 华夏 大盘 仓位 下降 在 整体 乐观 声中 , 基金 的 一季度 股票 仓位 出现 上升 很 正常 , 但 如果 出现 下降 呢 ? 而 仓位 下降 的 基金 , 恰恰 又 是 “ 最 赚钱 基金 经理 ” 王亚伟 掌舵 的 华夏 大盘 呢 ? 刚刚 披露 的 一 季报 显示 , 不同于 大多数 偏股 型基金 , 华夏 大盘 的 股票 仓位 确实 降低 了 。 一 季报 显示 , 截至 3 月 31 日 , 华夏 大盘 的 股票 仓位 为 55.63% , 相比 去年 四季度 末 的 60.41% 的 股票 持仓 , 大幅 降低 了 4.78 个 百分点 。 换句话说 , 华夏 大盘 一季度 不但 没有 加仓 , 而是 大幅 减仓 近 5% , 这 与 大多数 同 类型 基金 的 做法 恰好相反 。 同时 , 根据 一 季报 , 华夏 大盘 净值 增长率 为 37.76% , 同期 业绩 排在 偏股 型基金 前十名 。 来自 WIND 资讯 的 统计数据 显示 , 在 率先 披露 一 季报 的 105 只 偏股 型基金 中 , 股票 
NLP task2 _ 自然语言处理中N-Gram模型的Smoothing算法 使用N-Gram模型时的数据平滑算法 背景:为什么要做平滑处理?   零概率问题,就是在计算实例的概率时,如果某个量x,在观察样本库(训练集)中没有出现过,会导致整个实例的概率结果是0。在文本分类的问题中,当一个词语没有在训练样本中出现,该词语调概率为0,使用连乘计算文本出现概率时也为0。这是不合理的,不能因为一个事件没有观察到就武断的认为该事件的概率是0。 平滑技术 平滑技术是为了解决训练集的数... 阅读详情

相关推荐

NLP task_2

基本文本处理能力 1. 文本分词概念 文本分词,即将长文本分成各种词,以便我们进一步的统计并分析。分词需要遵循几个基本法则: 1、颗粒度越大越好:用于进行语义分析的文本分词,要求分词结果的颗粒度越大,即单词的字数越多,所能表示的含义越确切,如:“公安局长”可以分为“公安 局长”、“公安局 长”、“公安局长”都算对,但是要用于语义分析,则“公安局长”的分词结果最好(当然前提是所使用的词典中有这个词)...

weixin_41761677的博客 372

NLP 学习 task1_2

1.IMDB数据集下载和探索 下载 IMDB 数据集 TensorFlow 中包含 IMDB 数据集。我们已对该数据集进行了预处理,将影评(字词序列)转换为整数序列,其中每个整数表示字典中的一个特定字词。 以下代码会将 IMDB 数据集下载到您的计算机上(如果您已下载该数据集,则会使用缓存副本): imdb = keras.datasets.imdb (train_data, train_lab...

沐埜专栏 353

中小团队必看!用Harbor+Jenkins打造轻量级K3S交付流水线(含成本优化方案)

本文为中小团队详细介绍了如何利用K3S、Harbor与Jenkins构建一套高性价比的自动化交付流水线。内容涵盖单节点K3S集群的效能配置、Harbor镜像仓库的磁盘空间优化、Jenkins共享库实现流水线复用,并提供了完整的实战案例与成本优化方案,帮助团队以较低成本快速落地高效的自动化部署。

weixin_29223603的博客 504

【Cadence软件技巧集萃】从Capture到Allergo——分布演示从原理符号导出到网络表

Cadence软件功能多样、性能强大,但是使用起来颇费步骤,尤其是从原理图到网络表的导入步骤,没有经过上手实践还真不一定一次就能搞定哩。本文笔者用将分步演示:1、在Capture软件上绘制原理图;2、将原理图导出网络表;3、在Allergo软件上更新网络表;希望给予使用Cadence的读者有效的帮助1、本文简述了建立Capture项目的步骤,演示了调用元件符号库的方法,并绘制了电气原理图;2、针对加载元件封装库可能遇到的问题,做了排查步骤建议;

qq_33175704的博客 2538

脱壳--02.exe

程序开始 使用OD打开程序 发现无法利用esp定律 程序直接运行 查找模块间调用 随便找到一个函数的调用 发现是FF15方式调用 所以是vs的程序 vs程序大致分成两种 vs20xx (特征函数:GetSystemTimeAsFileTime)和 vc++6.0(特征函数:GetVersion) 通过链接器版本 发现是vc6.0 直接在GetVersion上下断点 重新运行程序 断点断下 返回到调用处 vc6.0和易语言的第一个CALL都是GetVers...

weixin_45012273的博客 1115

数学建模国赛C题实战:从数据预处理到模型优化的完整流程(附Python代码)

本文系统讲解了数学建模国赛C题的完整实战流程,涵盖从数据预处理、模型选择与构建到优化与结果可视化的关键步骤。文章重点分享了如何利用Python进行高效的数据清洗、特征工程,并提供了多种机器学习模型的实现代码与对比验证方法,旨在帮助参赛者构建逻辑清晰、结果可靠的解决方案。

weixin_29079643的博客 295

【Lua面试】2021年Lua面试题分享(4.25更新)

lua深拷贝和浅拷贝的区别?如何实现深拷贝? lua中ipairs和pairs的区别? 链接: link.

qq_21407523的博客 2万+

2023最新扫码连wifi-扫码挪车-聚合CPS返利多合一小程序源码

2023最新扫码连wifi-扫码挪车-聚合CPS返利多合一系统 系统特点: 目前已接入的 CPS 渠道: 充值:话费充值、电费充值、影视会员充值、会员卡券充值 本地团购:联联周边游 电商平台:京东、拼多多、唯品会、淘宝、抖音美团:外卖、闪购、酒店、到店、优选饿了么:外卖、商超 出行服务:滴滴打车、滴滴加油、滴滴货运、花小猪打车、高德打车、同程打车 连锁餐饮点餐:肯德基、麦当劳、百果园、奈雪的茶、瑞幸咖啡、星巴克、喜茶、汉堡王、必胜客电影票:特价电影票 注意:以上涉及到需要支付的 CPS 渠道,不需要预存!

qq_41837379的博客 3113

【UE5】【蓝图】 LevelSequence 动画播放与暂停

最近有些工作,在研究UE5 蓝图的LevelSequence,来制作一些简单动画。做个笔记,记录一下动画更换绑定actor的操作,以及动画播放后如何暂停和继续。

UE5开发备忘录 1万+

010、Zephyr RTOS开发环境搭建(Docker)

摘要 本文分享了使用Docker搭建Zephyr RTOS开发环境的实践经验。作者通过团队新人配置环境的真实案例,指出传统安装方式存在版本冲突、缓存污染等问题,而Docker方案能确保环境一致性。文章详细介绍了自定义Docker镜像的设计思路,重点解决工具链版本匹配、Python虚拟环境隔离等问题,将镜像体积从2GB优化到800MB。提供了从拉取镜像到点亮LED的完整工作流程,并总结了USB设备直通、文件权限、缓存问题等常见陷阱。还探讨了多阶段构建、CI集成等进阶用法,同时客观分析了Docker方案的局限性

m0_50546716的博客 81

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

廖雪峰Python教程[完整版]

廖雪峰的python教程整理的,已经排好版了,而且还是完整的,适合小白

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

上一篇: 线性回归-task4
下一篇: leetcode111. 二叉树的最小深度
程序员椰子橙
博客等级 码龄9年 46粉丝 163原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值