【NLP】⚠️学不会打我! 半小时学会基本操作 2⚠️ 关键词

网友投稿 687 2022-05-29

【NLP】⚠️学不会打我! 半小时学会基本操作 2⚠️ 关键词

概述

关键词

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=())

1

参数:

sentence: 待提取的文本语料

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

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

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

jieba 词性

不带关键词权重

例子:

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

【NLP】⚠️学不会打我! 半小时学会基本操作 2⚠️ 关键词

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

输出结果:

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. ['自然语言', '计算机科学', '语言学', '研究', '领域', '处理', '通信', '有效', '软件系统', '人工智能', '实现', '计算机系统', '重要', '一体', '一门', '日常', '计算机', '密切', '数学', '研制']

1

2

3

4

5

附带关键词权重

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

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

输出结果:

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)]

1

2

3

4

5

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])

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

调试输出:

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.

1

2

3

4

5

AI 自然语言处理基础

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:python 线程 ~~ ~~~为面试开辟VIP通道~~~~~测试、死锁、全局变量共享、守护主线程等。。。。。。
下一篇:伙伴分享|如何快速开发一个AppCube标准页面
相关文章