python机器学习8--自然语言处理(1)

1.基本定义:

语义:就是一句话的重点是什么。

自定词汇:因为语言、文字太多,自定和处理你所关心的重点词汇。

简体转繁体代码

from opencc import OpenCCtext1 = "我去过清华大学"
openCC = OpenCC('s2t')
line = openCC.convert(text1)
print(" "+text1)  # 打印原文本
print("s2t;"+line)  # 打印转换后的文本

结果如下:

 2.中文分词断词工具

        在中文分词的处理方面,Python有几个第三方的程序pymmseg、smallseg和jieba,本节将介绍的是jieba。这个需要先安装。

pip install jieba

        原理: jieba中文分词所使用的算法是通过Trie Tree(又称前缀树或字典树)结构去创建句子,根据文字所有可能成词的情况,通过动态规划算法找出最大概率的路径,这个路径就是基于词频的最大断词结果。对于字典词库中不存在的词,则使用HMM(Hidden Markov Model,隐马尔可夫模型)及Viterbi算法来辨识出来。

一个小demo

import jieba
text1="我去过清华大学"
test2="小明来到了行研大厦"
seg_list=jieba.cut(text1,cut_all=True,HMM=False)
print("Full Mode:"+"/".join(seg_list))
seg_list=jieba.cut(text1,cut_all=False,HMM=True)
print("Default Mode:"+"/".join(seg_list))
print(",".join(jieba.cut(test2,HMM=True)))
print(",".join(jieba.cut(test2,HMM=False)))
print(",".join(jieba.cut(test2)))
print(",".join(jieba.cut_for_search(test2)))

运行结果

上面的几种模式:

        Full Mode(全模式):试图将句子最精确地切开,适合文本分析,输出的是所有可能的分词组合,比如清华大学,会被分成:清华、清华大学、华大、大学。

        Default Mode(精确模型):把句子中所有可以成词的词语都扫描出来,速度非常快,但是不能解决歧义,比如清华大学,只会输出清华大学。

        jieba.cut_for_search(搜索引擎模式):在精确模式的基础上,对长词再次切分,提高召回率,适合用于搜索引擎分词。

注意有些词分割不正确,可以自己进行设置jieba.load_userdict("userdict.txt")这样再次通过jieba.cut(text)切割后就会达到自己的预期了。取得词性jieba.posseg.cut(text)

3.使用TF-IDF算法的关键词计算

 jieba.analyse.extract_tags(content, topK = 20, withWeight = True, allowPOS=( ))

参数如下:

· content:待处理的文字。

· topK:返回关键词的数量,重要性权重TF-IDF从高到低排序,如topK=20,就是回传20个最重要的分词。

· withWeight:设置为True或False,即是否返回每个关键词的权重TF-IDF。

· allowPOS:词性过滤,为空表示不过滤。词性,如同jieba.posseg.cut所输出的内容,即n是名词、v是动词。

        关键词的权重(TF-IDF)也就是这个关键词在这篇文章中所出现的比重。有很多不同的数学公式可以用来计算TF-IDF,具体公式不在详细介绍。

import sys
from os import path
import jieba
import jieba.analyse# 取得现在的路径
d = path.dirname(__file__)# 读取文本
with open(path.join(d, "C:\\Users\\nsy\\Desktop\\test.txt"), 'r', encoding='utf-8') as f:text = f.read()# 去除不要的文字
text = text.replace("", "")  # 这里假设您要替换的是一个特定的字符串,但原代码中是空的
text = text.replace("「", "")
text = text.replace("」", "")
text = text.replace(",", "")
text = text.replace(" ", "")# 使用jieba进行分词
print('/'.join(jieba.cut(text)))# 开启HMM做分词动作
# 样例1使用自定义字典
jieba.load_userdict(path.join(d, "C:\\Users\\nsy\\Desktop\\userdict.txt.txt"))  # 加载自定义字典# 再次使用自定义字典进行分词
print('/'.join(jieba.cut(text)))# 样例2取得词性
words = jieba.posseg.cut(text)
for word, flag in words:print('%s, %s' % (word, flag))  # 显示切割的词语和词性# 样例3和样例4取得关键字
if sys.version_info > (3, 0):content = text
else:content = text.decode('utf-8')keywords = jieba.analyse.extract_tags(content, topK=20, withWeight=True, allowPOS=('ns', 'n', 'vn', 'v'))# 访问捕获结果
for item in keywords:print('%s=%f' % (item[0], item[1]))  # 分别为关键词和相应的权重print("程序执行完毕")

运行结果:

 4.自定分词

        jieba.load_userdict,在jieba之中,还有另一个类似的函数jieba.suggest_freq。

from os import path
import jieba
import jieba.analyse
d=path.dirname(__file__)
text="今天学习好累,还没有效率"
text=text.replace(",","")
print('/'.join(jieba.cut(text)))
jieba.suggest_freq('还没有',True)
print('/'.join(jieba.cut(text)))

 取出断词位置

jieba.tokenize(文字)
import sys
from os import path
import jieba# 获取脚本文件的目录
d = path.dirname(__file__)
# 定义自定义词典的路径
userdict_path = path.join(d, "C:\\Users\\nsy\\Desktop\\userdict.txt.txt")
# 加载自定义词典
jieba.load_userdict(userdict_path)# 定义要分词的文本
content = "今天学习好累,在家还没有效率"# 使用自定义词典进行精确模式分词
print('default' + '-'*40)
result = jieba.cut(content, use_paddle=False)  # 精确模式
for word in result:print(word)# 使用自定义词典进行搜索引擎模式分词
print('tokenize search' + '-'*40)
result = jieba.cut_for_search(content)  # 搜索引擎模式
for word in result:print(word)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/49775.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Typora 【最新1.8.6】版本安装下载教程 (轻量级 Markdown 编辑器),图文步骤详解,免费领取(软件可激活使用)

文章目录 软件介绍软件下载安装步骤激活步骤 软件介绍 Typora 是一款专为 Markdown 爱好者设计的文本编辑器,它结合了简洁的界面设计与强大的 Markdown 渲染能力,为用户提供了一个流畅、高效的写作环境。以下是对 Typora 更详细的介绍: 核心特…

MATLAB绘制方波、锯齿波、三角波、正弦波和余弦波、

一、引言 MATLAB是一种具有很强的数值计算和数据可视化软件,提供了许多内置函数来简化数学运算和图形的快速生成。在MATLAB中,你可以使用多种方法来快速绘制正弦波、方波和三角波。以下是一些基本的示例,展示了如何使用MATLAB的命令来实现正弦…

数据科学统计面试问题 -40问

前 40 名数据科学统计面试问题 一、介绍 正如 Josh Wills 曾经说过的那样,“数据科学家是一个比任何程序员都更擅长统计、比任何统计学家都更擅长编程的人”。统计学是数据科学中处理数据及其分析的基本工具。它提供了工具和方法,可帮助数据科学家获得…

【React】条件渲染:深入探讨高效开发技巧与最佳实践

文章目录 一、什么是条件渲染?二、条件渲染的实现方式三、条件渲染的最佳实践四、复杂条件渲染的实现 在现代前端开发中,React 已成为开发者构建用户界面的首选框架之一。React 的强大之处在于其组件化和状态管理能力,而条件渲染则是 React 开…

防火墙限制docker了

今天有个安全方面的需求,演示环境禁止将3306等高危端口暴露到外网。 于是同事开启了防火墙,仅将应用端口暴露。结果导致演示环境无法使用。 由于公司的应用是基于docker部署的。结果他问我为什么同一台机器,应用无法访问mysql。 docker对于…

SQL labs-SQL注入(五,使用sqlmap进行cookie注入)

本文仅作为学习参考使用,本文作者对任何使用本文进行渗透攻击破坏不负任何责任。 引言: Cookie 是一些数据, 存储于你电脑上的文本文件中。当 web 服务器向浏览器发送 web 页面时,在连接关闭后,服务端不会记录用户的信息。Cookie…

第十一章 数据结构

第十一章 数据结构 11.1 数组 数组是元素的顺序集合,通常这些元素具有相同的数据类型 索引表示元素在数组中的顺序号,顺序号从数组开始处计数 数组元素通过索引被独立给出了地址,数组整体上有一个名称,但每个元素利用数组的的…

elasticsearch 解决全模糊匹配最佳实践

事件背景: 某 CRM 系统,定义了如下两个表: 客户表 t_custom 字段名 类型 描述 idlong自增主键phonestring客户手机......... 客户产品关系表 t_custom_product 字段名 类型 描述 idlong自增主键custom_idlong客户idproduct_idlong产品…

笔记本检测工具 | 爱回收笔记本质检系统 v1.9.6

软件简介 爱回收笔记本质检系统是一款专为笔记本电脑硬件检测而设计的软件。它以其快速的检测速度、简便的操作流程和直观的检测结果,为用户提供了一种高效、易懂的硬件检测解决方案。 这款软件不仅适用于对电脑硬件有一定了解的用户,也特别适合对硬件…

C#使用csvhelper实现csv的操作

新建控制台项目 安装csvhelper 33.0.1 写入csv 新建Foo.cs namespace CsvSut02;public class Foo {public int Id { get; set; }public string Name { get; set; } }批量写入 using System.Globalization; using CsvHelper; using CsvHelper.Configuration;namespace Csv…

如何为WordPress网站设置多语言站点

随着全球化的发展,拥有一个支持多语言的站点已成为提升用户体验、扩大受众范围的重要手段。本文将详细介绍如何为WordPress网站设置多语言站点,提供两种最佳方案详解,帮助您轻松实现多语言站点的搭建与管理。无论您是选择在同一站点内发布多语…

FastGPT 知识库搜索测试功能解析(一)

本文以 FastGPT 知识库的搜索测试功能为入口,分析 FastGPT 的知识检索流程。 一、搜索功能介绍 1.1 整体介绍 搜索测试功能包含三种类型:语义检索、全文检索、混合检索。 语义检索:使用向量进行文本相关性查询,即调用向量数据库根据向量的相似性检索; 全文检索:使用…

我在Vscode学Java集合类

Java集合类 一、集合1.1 集合和数组之间的对比1.2 集合框架的核心接口1.3 集合框架中的实现类单列集合双列集合 1.4 集合框架的特点 二、 Collection集合与Iterator迭代器2.1 Collection的概述2.1.1 常用方法增加元素的方法修改元素的方法删除元素的方法查询元素的方法遍历集合…

LLMs之Agent:Agentscope的简介、安装和使用方法、案例应用之详细攻略

LLMs之Agent:Agentscope的简介、安装和使用方法、案例应用之详细攻略 目录 Agentscope的简介 1、更新的日志 2、支持的模型API 3、支持的服务 Agentscope的安装和使用方法 1、安装 支持的本地模型部署 从源码安装 使用pip 配置 创建Agent 构造对话 Age…

Go语言编程 学习笔记整理 第2章 顺序编程 后半部分

1.流程控制 1.1 条件语句 if a < 5 { return 0 } else { return 1 } 注意&#xff1a;在有返回值的函数中&#xff0c;不允许将“最终的”return语句包含在if...else...结构中&#xff0c; 否则会编译失败&#xff01;&#xff01;&#xff01; func example(x int) i…

基于 HTML+ECharts 实现智慧景区数据可视化大屏(含源码)

构建智慧景区数据可视化大屏&#xff1a;基于 HTML 和 ECharts 的实现 随着旅游业的蓬勃发展&#xff0c;智慧景区的概念逐渐深入人心。通过数据可视化&#xff0c;景区管理者可以实时监控游客流量、设施使用情况以及环境状况&#xff0c;从而提升游客体验和管理效率。本文将详…

线性代数:向量组与向量组等价

向量组概述 向量组是由若干个同维数的行向量或列向量组成的集合。这些向量可以是二维的、三维的&#xff0c;甚至是更高维度的。在数学和物理学的许多领域中&#xff0c;向量组扮演着至关重要的角色&#xff0c;特别是在线性代数、矩阵论、以及工程学中。 例如&#xff0c;一…

《梦醒蝶飞:释放Excel函数与公式的力量》18.2 数据可视化技术

第18章&#xff1a;创建图表和数据可视化 18.2 数据可视化技术 数据可视化是将数据转化为图形和图表的过程&#xff0c;以便更好地理解和分析数据。有效的数据可视化可以揭示数据的模式、趋势和异常&#xff0c;从而帮助做出更明智的决策。以下将介绍几种常用的数据可视化技术…

3dsMax 设置近平面削减,靠近模型之后看不到模型,看很小的模型放大看不到

3dsMax 设置近平面削减&#xff0c;靠近模型之后看不到模型&#xff0c;看很小的模型放大看不 问题展示 解决办法_1 把这两个东西最上面的拖拽到最上面&#xff0c;最下面的拖拽到最下面。 解决办法_2 勾选视口裁剪 把这两个东西最上面的拖拽到最上面&#xff0c;最下面的…

服务器部署环境(docker安装Mysql + Redis + MongoDB)

1. 安装Docker 1、选择要安装的平台 Docker要求CentOS系统的内核版本高于3.10 uname -r #通过 uname -r 命令查看你当前的内核版本官网地址 2. 卸载已安装的Docker, 使用Root权限登录 Centos。确保yum包更新到最新。 sudo yum update如果操作系统没有安装过Docker , 就不需要…