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

目录
  • 概述
  • 关键词
  • TF-IDF 关键词提取
    • TF
    • IDF
    • TF-IDF
  • jieba TF-IDF 关键词抽取
    • jieba 词性
    • 不带关键词权重
    • 附带关键词权重
    • TextRank

概述

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

关键词

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

关键词抽取的方法

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

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

TF-IDF 关键词提取

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

TF

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

公式:

IDF

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

公式:

TF-IDF

公式:

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自然语言处理的资料请关注我们其它相关文章!

(0)

相关推荐

  • Python机器学习NLP自然语言处理Word2vec电影影评建模

    目录 概述 词向量 词向量维度 代码实现 预处理 主程序 概述 从今天开始我们将开启一段自然语言处理 (NLP) 的旅程. 自然语言处理可以让来处理, 理解, 以及运用人类的语言, 实现机器语言和人类语言之间的沟通桥梁. 词向量 我们先来说说词向量究竟是什么. 当我们把文本交给算法来处理的时候, 计算机并不能理解我们输入的文本, 词向量就由此而生了. 简单的来说, 词向量就是将词语转换成数字组成的向量. 当我们描述一个人的时候, 我们会使用身高体重等种种指标, 这些指标就可以当做向量. 有了向量

  • Python机器学习NLP自然语言处理基本操作新闻分类

    目录 概述 TF-IDF 关键词提取 TF IDF TF-IDF TfidfVectorizer 数据介绍 代码实现 概述 从今天开始我们将开启一段自然语言处理 (NLP) 的旅程. 自然语言处理可以让来处理, 理解, 以及运用人类的语言, 实现机器语言和人类语言之间的沟通桥梁. TF-IDF 关键词提取 TF-IDF (Term Frequency-Inverse Document Frequency), 即词频-逆文件频率是一种用于信息检索与数据挖掘的常用加权技术. TF-IDF 可以帮助我

  • Python编程使用NLTK进行自然语言处理详解

    自然语言处理是计算机科学领域与人工智能领域中的一个重要方向.自然语言工具箱(NLTK,NaturalLanguageToolkit)是一个基于Python语言的类库,它也是当前最为流行的自然语言编程与开发工具.在进行自然语言处理研究和应用时,恰当利用NLTK中提供的函数可以大幅度地提高效率.本文就将通过一些实例来向读者介绍NLTK的使用. NLTK NaturalLanguageToolkit,自然语言处理工具包,在NLP领域中,最常使用的一个Python库. NLTK是一个开源的项目,包含:P

  • Python机器学习NLP自然语言处理基本操作之精确分词

    目录 概述 分词器 jieba 安装 精确分词 全模式 搜索引擎模式 获取词性 概述 从今天开始我们将开启一段自然语言处理 (NLP) 的旅程. 自然语言处理可以让来处理, 理解, 以及运用人类的语言, 实现机器语言和人类语言之间的沟通桥梁. 分词器 jieba jieba 算法基于前缀词典实现高效的词图扫描, 生成句子中汉字所有可能成词的情况所构成的有向无环图. 通过动态规划查找最大概率路径, 找出基于词频的最大切分组合. 对于未登录词采用了基于汉字成词能力的 HMM 模型, 使用 Viter

  • 浅谈Python NLP入门教程

    正文 本文简要介绍Python自然语言处理(NLP),使用Python的NLTK库.NLTK是Python的自然语言处理工具包,在NLP领域中,最常使用的一个Python库. 什么是NLP? 简单来说,自然语言处理(NLP)就是开发能够理解人类语言的应用程序或服务. 这里讨论一些自然语言处理(NLP)的实际应用例子,如语音识别.语音翻译.理解完整的句子.理解匹配词的同义词,以及生成语法正确完整句子和段落. 这并不是NLP能做的所有事情. NLP实现 搜索引擎: 比如谷歌,Yahoo等.谷歌搜索引

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

    目录 概述 关键词 TF-IDF 关键词提取 TF IDF TF-IDF jieba TF-IDF 关键词抽取 jieba 词性 不带关键词权重 附带关键词权重 TextRank 概述 从今天开始我们将开启一段自然语言处理 (NLP) 的旅程. 自然语言处理可以让来处理, 理解, 以及运用人类的语言, 实现机器语言和人类语言之间的沟通桥梁. 关键词 关键词 (keywords), 即关键词语. 关键词能描述文章的本质, 在文献检索, 自动文摘, 文本聚类 / 分类等方面有着重要的应用. 关键词抽

  • Python机器学习NLP自然语言处理基本操作家暴归类

    目录 概述 数据介绍 词频统计 朴素贝叶斯 代码实现 预处理 主函数 概述 从今天开始我们将开启一段自然语言处理 (NLP) 的旅程. 自然语言处理可以让来处理, 理解, 以及运用人类的语言, 实现机器语言和人类语言之间的沟通桥梁. 数据介绍 该数据是家庭暴力的一份司法数据.分为 4 个不同类别: 报警人被老公打,报警人被老婆打,报警人被儿子打,报警人被女儿打. 今天我们就要运用我们前几次学到的知识, 来实现一个 NLP 分类问题. 词频统计 CountVectorizer是一个文本特征提取的方

  • Python机器学习NLP自然语言处理基本操作电影影评分析

    目录 概述 RNN 权重共享 计算过程 LSTM 阶段 代码 预处理 主函数 概述 从今天开始我们将开启一段自然语言处理 (NLP) 的旅程. 自然语言处理可以让来处理, 理解, 以及运用人类的语言, 实现机器语言和人类语言之间的沟通桥梁. RNN RNN (Recurrent Neural Network), 即循环神经网络. RNN 相较于 CNN, 可以帮助我们更好的处理序列信息, 挖掘前后信息之间的联系. 对于 NLP 这类的任务, 语料的前后概率有极大的联系. 比如: "明天天气真好&

  • Python机器学习NLP自然语言处理基本操作词向量模型

    目录 概述 词向量 词向量维度 Word2Vec CBOW 模型 Skip-Gram 模型 负采样模型 词向量的训练过程 1. 初始化词向量矩阵 2. 神经网络反向传播 词向量模型实战 训练模型 使用模型 概述 从今天开始我们将开启一段自然语言处理 (NLP) 的旅程. 自然语言处理可以让来处理, 理解, 以及运用人类的语言, 实现机器语言和人类语言之间的沟通桥梁. 词向量 我们先来说说词向量究竟是什么. 当我们把文本交给算法来处理的时候, 计算机并不能理解我们输入的文本, 词向量就由此而生了.

  • Python机器学习NLP自然语言处理基本操作词袋模型

    概述 从今天开始我们将开启一段自然语言处理 (NLP) 的旅程. 自然语言处理可以让来处理, 理解, 以及运用人类的语言, 实现机器语言和人类语言之间的沟通桥梁. 词袋模型 词袋模型 (Bag of Words Model) 能帮助我们把一个句子转换为向量表示. 词袋模型把文本看作是无序的词汇集合, 把每一单词都进行统计. 向量化 词袋模型首先会进行分词, 在分词之后. 通过通过统计在每个词在文本中出现的次数. 我们就可以得到该文本基于词语的特征, 如果将各个文本样本的这些词与对应的词频放在一起

  • Python机器学习NLP自然语言处理基本操作之京东评论分类

    目录 概述 RNN 权重共享 计算过程 LSTM 阶段 数据介绍 代码 预处理 主函数 概述 从今天开始我们将开启一段自然语言处理 (NLP) 的旅程. 自然语言处理可以让来处理, 理解, 以及运用人类的语言, 实现机器语言和人类语言之间的沟通桥梁. RNN RNN (Recurrent Neural Network), 即循环神经网络. RNN 相较于 CNN, 可以帮助我们更好的处理序列信息, 挖掘前后信息之间的联系. 对于 NLP 这类的任务, 语料的前后概率有极大的联系. 比如: "明天

  • Python机器学习NLP自然语言处理基本操作之Seq2seq的用法

    概述 从今天开始我们将开启一段自然语言处理 (NLP) 的旅程. 自然语言处理可以让来处理, 理解, 以及运用人类的语言, 实现机器语言和人类语言之间的沟通桥梁. Seq2seq Seq2seq 由 Encoder 和 Decoder 两个 RNN 组成. Encoder 将变长序列输出, 编码成 encoderstate 再由 Decoder 输出变长序列. Seq2seq 的使用领域: 机器翻译: Encoder-Decoder 的最经典应用 文本摘要: 输入是一段文本序列, 输出是这段文本

  • Python机器学习NLP自然语言处理基本操作之命名实例提取

    目录 概述 命名实例 HMM 随机场 马尔科夫随机场 CRF 命名实例实战 数据集 crf 预处理 主程序 概述 从今天开始我们将开启一段自然语言处理 (NLP) 的旅程. 自然语言处理可以让来处理, 理解, 以及运用人类的语言, 实现机器语言和人类语言之间的沟通桥梁. 命名实例 命名实例 (Named Entity) 指的是 NLP 任务中具有特定意义的实体, 包括人名, 地名, 机构名, 专有名词等. 举个例子: Luke Rawlence 代表人物 Aiimi 和 University o

随机推荐