网络编程
位置:首页>> 网络编程>> Python编程>> Python机器学习NLP自然语言处理基本操作关键词

Python机器学习NLP自然语言处理基本操作关键词

作者:我是小白呀  发布时间:2023-11-09 05:51:31 

标签:Python,机器学习,NLP,关键词

概述

从今天开始我们将开启一段自然语言处理 (NLP) 的旅程. 自然语言处理可以让来处理, 理解, 以及运用人类的语言, 实现机器语言和人类语言之间的沟通桥梁.

Python机器学习NLP自然语言处理基本操作关键词

关键词

关键词 (keywords), 即关键词语. 关键词能描述文章的本质, 在文献检索, 自动文摘, 文本聚类 / 分类等方面有着重要的应用.

Python机器学习NLP自然语言处理基本操作关键词

关键词抽取的方法

关键词提取: 针对新文档, 通过算法分析. 提取文档中一些词语作为该文档的关键词

关键词分配: 给定已有的关键词库, 对于新来的文档从该词库里面分配几个词语作为这篇文档的关键词

TF-IDF 关键词提取

TF-IDF (Term Frequency-Inverse Document Frequency), 即词频-逆文件频率是一种用于信息检索与数据挖掘的常用加权技术. TF-IDF 可以帮助我们挖掘文章中的关键词. 通过数值统计, 反映一个词对于语料库中某篇文章的重要性.

TF

TF (Term Frequency), 即词频. 表示词在文本中出现的频率.

公式:

Python机器学习NLP自然语言处理基本操作关键词

IDF

IDF (Inverse Document Frequency), 即逆文档频率. 表示语料库中包含词的文档的数目的倒数.

公式:

Python机器学习NLP自然语言处理基本操作关键词

TF-IDF

公式:

Python机器学习NLP自然语言处理基本操作关键词

TF-IDF = (词的频率 / 句子总字数) × (总文档数 / 包含该词的文档数)

如果一个词非常常见, 那么 IDF 就会很低, 反之就会很高. TF-IDF 可以帮助我们过滤常见词语, 提取关键词.

jieba TF-IDF 关键词抽取

格式:


jieba.analyse.extract_tags(sentence, topK=20, withWeight=False, allowPOS=())

参数:

sentence: 待提取的文本语料

topK: 返回的关键词个数, 默认为 20

withWeight: 是否需要返回关键词权重, 默认为 False

allowPOS: 仅包括指定词性的词, 默认为空, 即不筛选

jieba 词性

编号词性描述
Ag形语素形容词性语素。形容词代码为 a,语素代码g前面置以A。
a形容词取英语形容词 adjective的第1个字母。
ad副形词直接作状语的形容词。形容词代码 a和副词代码d并在一起。
an名形词具有名词功能的形容词。形容词代码 a和名词代码n并在一起。
b区别词取汉字“别”的声母。
c连词取英语连词 conjunction的第1个字母。
dg副语素副词性语素。副词代码为 d,语素代码g前面置以D。
d副词取 adverb的第2个字母,因其第1个字母已用于形容词。
e叹词取英语叹词 exclamation的第1个字母。
f方位词取汉字“方”
g语素绝大多数语素都能作为合成词的“词根”,取汉字“根”的声母。
h前接成分取英语 head的第1个字母。
i成语取英语成语 idiom的第1个字母。
j简称略语取汉字“简”的声母。
k后接成分
l习用语习用语尚未成为成语,有点“临时性”,取“临”的声母。
m数词取英语 numeral的第3个字母,n,u已有他用。
Ng名语素名词性语素。名词代码为 n,语素代码g前面置以N。
n名词取英语名词 noun的第1个字母。
nr人名名词代码 n和“人(ren)”的声母并在一起。
ns地名名词代码 n和处所词代码s并在一起。
nt机构团体“团”的声母为 t,名词代码n和t并在一起。
nz其他专名“专”的声母的第 1个字母为z,名词代码n和z并在一起。
o拟声词取英语拟声词 onomatopoeia的第1个字母。
p介词取英语介词 prepositional的第1个字母。
q量词取英语 quantity的第1个字母。
r代词取英语代词 pronoun的第2个字母,因p已用于介词。
s处所词取英语 space的第1个字母。
tg时语素时间词性语素。时间词代码为 t,在语素的代码g前面置以T。
t时间词取英语 time的第1个字母。
u助词取英语助词 auxiliary
vg动语素动词性语素。动词代码为 v。在语素的代码g前面置以V。
v动词取英语动词 verb的第一个字母。
vd副动词直接作状语的动词。动词和副词的代码并在一起。
vn名动词指具有名词功能的动词。动词和名词的代码并在一起。
w标点符号
x非语素字非语素字只是一个符号,字母 x通常用于代表未知数、符号。
y语气词取汉字“语”的声母。
z状态词取汉字“状”的声母的前一个字母。
un未知词

不带关键词权重

例子:


import jieba.analyse
# 定义文本
text = "自然语言处理是计算机科学领域与人工智能领域中的一个重要方向。" \
      "它研究能实现人与计算机之间用自然语言进行有效通信的各种理论和方法。" \
      "自然语言处理是一门融语言学、计算机科学、数学于一体的科学。" \
      "因此,这一领域的研究将涉及自然语言,即人们日常使用的语言," \
      "所以它与语言学的研究有着密切的联系,但又有重要的区别。" \
      "自然语言处理并不是一般地研究自然语言," \
      "而在于研制能有效地实现自然语言通信的计算机系统,特别是其中的软件系统。" \
      "因而它是计算机科学的一部分"
# 提取关键词
keywords = jieba.analyse.extract_tags(text, topK=20, withWeight=False)
# 调试输出
print([i for i in keywords])

输出结果:


Building prefix dict from the default dictionary ...
Loading model from cache C:\Users\Windows\AppData\Local\Temp\jieba.cache
Loading model cost 0.890 seconds.
Prefix dict has been built successfully.
['自然语言', '计算机科学', '语言学', '研究', '领域', '处理', '通信', '有效', '软件系统', '人工智能', '实现', '计算机系统', '重要', '一体', '一门', '日常', '计算机', '密切', '数学', '研制']

附带关键词权重


import jieba.analyse
# 定义文本
content = "自然语言处理是人工智能和语言学领域的分支学科。此领域探讨如何处理及运用自然语言;自然语言处理包括多方面和步骤,基本有认知、理解、生成等部分。"
# 定义文本
text = "自然语言处理是计算机科学领域与人工智能领域中的一个重要方向。" \
      "它研究能实现人与计算机之间用自然语言进行有效通信的各种理论和方法。" \
      "自然语言处理是一门融语言学、计算机科学、数学于一体的科学。" \
      "因此,这一领域的研究将涉及自然语言,即人们日常使用的语言," \
      "所以它与语言学的研究有着密切的联系,但又有重要的区别。" \
      "自然语言处理并不是一般地研究自然语言," \
      "而在于研制能有效地实现自然语言通信的计算机系统,特别是其中的软件系统。" \
      "因而它是计算机科学的一部分"
# 提取关键词 (带权重)
keywords = jieba.analyse.extract_tags(text, topK=20, withWeight=True)
# 调试输出
print([i for i in keywords])

输出结果:


Building prefix dict from the default dictionary ...
Loading model from cache C:\Users\Windows\AppData\Local\Temp\jieba.cache
Loading model cost 1.110 seconds.
Prefix dict has been built successfully.
[('自然语言', 1.1237629576061539), ('计算机科学', 0.4503481350267692), ('语言学', 0.27566262244215384), ('研究', 0.2660770221507693), ('领域', 0.24979825580353845), ('处理', 0.24973179957046154), ('通信', 0.2043557391963077), ('有效', 0.16296019853692306), ('软件系统', 0.16102600688461538), ('人工智能', 0.14550809839215384), ('实现', 0.14389939312584615), ('计算机系统', 0.1402028601413846), ('重要', 0.12347581087876922), ('一体', 0.11349408224353846), ('一门', 0.11300493477184616), ('日常', 0.10913612756276922), ('计算机', 0.1046889912443077), ('密切', 0.10181409957492307), ('数学', 0.10166677655076924), ('研制', 0.09868653898630769)]

TextRank

TextRank 通过词之间的相邻关系构建网络,然后用PageRank 迭代计算每个节点的 rank 值. 排序 rank值即可得到关键词.


import jieba.analyse
# 定义文本
content = "自然语言处理是人工智能和语言学领域的分支学科。此领域探讨如何处理及运用自然语言;自然语言处理包括多方面和步骤,基本有认知、理解、生成等部分。"
# 定义文本
text = "自然语言处理是计算机科学领域与人工智能领域中的一个重要方向。" \
      "它研究能实现人与计算机之间用自然语言进行有效通信的各种理论和方法。" \
      "自然语言处理是一门融语言学、计算机科学、数学于一体的科学。" \
      "因此,这一领域的研究将涉及自然语言,即人们日常使用的语言," \
      "所以它与语言学的研究有着密切的联系,但又有重要的区别。" \
      "自然语言处理并不是一般地研究自然语言," \
      "而在于研制能有效地实现自然语言通信的计算机系统,特别是其中的软件系统。" \
      "因而它是计算机科学的一部分"
# TextRank提取关键词
keywords = jieba.analyse.textrank(text, topK=20, withWeight=False)
# 调试输出
print([i for i in keywords])

调试输出:


Building prefix dict from the default dictionary ...
Loading model from cache C:\Users\Windows\AppData\Local\Temp\jieba.cache
['研究', '领域', '计算机科学', '实现', '处理', '语言学', '数学', '人们', '计算机', '涉及', '有着', '一体', '方法', '语言', '研制', '使用', '人工智能', '在于', '联系', '科学']
Loading model cost 1.062 seconds.
Prefix dict has been built successfully.

Python机器学习NLP自然语言处理基本操作关键词

以上就是Python机器学习NLP自然语言处理基本操作关键词的详细内容.

来源:https://blog.csdn.net/weixin_46274168/article/details/120111925

0
投稿

猜你喜欢

  • 这里会讨论令Oracle停机时间最小化的步骤。各种形式的停机--计划的或者是非计划的--总是不断地发生,一个DBA应该有正确的备份策略,这样
  • 相信每个前端工程师都有自己喜爱的javascript框架,说情感也好,道信仰也罢,javascript框架带给人的不仅仅是便捷的开发,更有一
  • 抓取“xmly”鬼故事音频import json  # 在这个url,音频链接为JSON动态生成,所以用到了json模块impor
  • 创作思路:主要还是想尝试做点稍微不同于整天为迎合客户而做的东西.然后闲时就开始构思,比如坐车,走路什么的.看到有一些复古手机的相关图,就想到
  • 有这么一个题目,说bt其实也不bt,为了重点突出其中的意图,特意加上了括号:var a = (++Math.P
  • 【原文地址】My "First Look at Orcas" Presentation 【原文发表日期】 Th
  • Go 程序的性能优化及 pprof 的使用程序的性能优化无非就是对程序占用资源的优化。对于服务器而言,最重要的两项资源莫过于 CPU 和内存
  • 背景每次加载数据都要重新Load,想通过加入的注解方式开发缓存机制,每次缓存不用写代码了缺点:目前仅支持一个返回值,虽然能弄成字典,但是已经
  • 本文实例为大家分享了bootstrapTable+ajax加载数据,和refresh更新数据两部分,供大家参考,具体内容如下1.html&l
  • 很长时间以来,一直想将自己的一些零碎的想法总结下,给自己一个完整的思维,也算是做个存档。一家之言,绝不敢说对别人会有什么帮助,对外人的层面上
  • 通过视图来访问数据,其优点是非常明显的。如可以起到数据保密、保证数据的逻辑独立性、简化查询操作等等。但是,话说回来,SQL Server数据
  • MySQL是一个非常流行的小型关系型数据库管理系统,2008年1月16号被Sun公司收购。目前MySQL被广泛地应用在Internet上的中
  • 以下为在asp中增加一个sql server2000用户函数,并为建立一个数据库,给他dbo的权限。注意:sql server的验证方式不要
  • 关于英文的写作有一本十分著名的书,The Elements of Style(风格要素),编写程序也有一本The Elements of P
  • 首先将ORACLE 10g的安装光盘放入光驱,如果自动运行,一般会出现如图1安装界面: 图1 单击“开始安装”,就可以安装ORACLE 10
  • 【摘 要】 我只是提供我几个我认为有助于提高写高性能的asp.net应用程序的技巧,本文提到的提高asp.net性能的技巧只是一个起步,更多
  • 本文实例讲述了Python实现运行其他程序的四种方式。分享给大家供大家参考,具体如下:在Python中,可以方便地使用os模块来运行其他脚本
  • 列表是Python中最基本的数据结构,列表是最常用的Python数据类型,列表的数据项不需要具有相同的类型。列表中的每个元素都分配一个数字
  • 一、定位 oracle分两大块,一块是开发,一块是管理。开发主要是写写存储过程、触发器什么的,还有就是用Oracle的Develop工具做f
  • 本文实例讲述了Python实现读取字符串按列分配后按行输出。分享给大家供大家参考,具体如下:问题:输入一个字符串和一个数字,数字代表分为几行
手机版 网络编程 asp之家 www.aspxhome.com