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

别再乱调了!Zygo MetroPro软件滤波功能保姆级指南,从均值到鲁棒高斯样条一次讲清

本文深入解析Zygo MetroPro软件的滤波功能,从均值滤波到鲁棒高斯样条等九种算法,帮助用户根据测量对象特性选择最佳滤波组合。通过真实工业案例和参数配置指南,提升光学测量数据的准确性和效率,特别适用于硅晶圆、光学镜片等精密测量场景。

weixin_30888413的博客 160

Mamba与iTransformer融合:时间序列预测中的曼巴注意力机制创新实践

本文探讨了Mamba与iTransformer融合在时间序列预测中的创新实践,重点介绍了曼巴注意力机制的设计与优势。通过双路径信息流设计,该方案在保持O(n)复杂度的同时,显著提升了预测精度和训练效率。实验证明,混合架构在电力负荷、气象数据等多变量长序列场景中表现优异,预测误差降低至0.083,内存占用仅4.2GB。

weixin_29292535的博客 220

Cursor赋能Qt C++:从环境配置到项目构建的AI开发新范式

本文详细介绍了如何利用Cursor工具链提升Qt C++开发效率,从智能环境配置到CMake项目构建的全流程实践。通过AI辅助编程、Qt生态优化及高级调试技巧,开发者可快速完成从传统开发到AI驱动的新范式转换,显著缩短项目搭建时间并提升代码质量。

weixin_30329623的博客 548

智能驾驶感知模块评测实战:如何用回灌测试提升BEV模型准确率(附数据集处理技巧)

本文深入探讨了如何通过诊断型回灌测试系统性地提升智能驾驶BEV感知模型的准确率与鲁棒性。文章详细拆解了从场景切片、时空对齐到多维指标分析的完整评测流水线,并针对BEV模型特有的深度估计、特征融合等环节提供了优化思路,旨在帮助工程师将海量路采数据转化为精准的模型迭代燃料。

weixin_29045585的博客 396

ArcGIS属性表汉字转拼音

接着我安装了一个编辑器“PyCharm Community Edition 2019.3.3\bin\pycharm64.exe”,在里面添加“pypinyin”包,然后将其设置为arcgis的编辑器和调试程序,还是失败;我在10.6的机器上折腾了上面几步,直到两周后脚本突然运行成功,我也不确定是哪一步导致pypinyin包配置成功,因此将心得体会写出来,如果过一段时间,打开10.2的机器运行脚本成功了,再写后续.......,按照“配置方法1:”进行尝试,显示配置失败。

2301_77413856的博客 1296

常见消息队列:ActiveMQ、RabbitMQ、RocketMQ、Kafka的区别总结

常见消息队列:ActiveMQ、RabbitMQ、RocketMQ、Kafka的区别。

qq_30713721的博客 3472

大模型复杂问答能力评测框架:从原理到实践

在人工智能领域,大语言模型(LLM)的评估是衡量其实际应用价值的关键环节。其核心原理在于通过系统化的评测框架,对模型的理解、推理、整合与表达能力进行量化分析。传统的NLP基准测试往往侧重于事实性检索或简单推理,难以全面反映模型在应对多跳推理、隐含条件、长上下文整合等复杂现实任务时的真实性能。因此,专门针对复杂问答设计的评测技术应运而生,其价值在于为模型选型、效果优化和瓶颈诊断提供数据驱动的科学依据。该技术广泛应用于需要深度逻辑判断的业务场景,如智能投顾、法律咨询、医疗诊断等。本文聚焦的`tan92hl/Co

weixin_28679635的博客 363

大数据开发工程师必备面试题与解答

大数据开发岗位一直是互联网行业的热门方向,面试过程中既考察基础知识,也关注实际项目经验和问题解决能力。本文整理了等核心组件相关的高频面试题及参考解答,帮助大家高效准备面试。大数据面试不仅考察基础理论,更看重项目经验与问题解决能力。本文涵盖了等核心知识点及调优思路,希望能帮助你在面试中游刃有余。

X2829352498的博客 305

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

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

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值