【NLP Tool -- NLTK】NLTK进行英文情感分析、分词、分句、词性标注(附代码)

本文涉及的产品
实时计算 Flink 版,5000CU*H 3个月
实时数仓Hologres,5000CU*H 100GB 3个月
智能开放搜索 OpenSearch行业算法版,1GB 20LCU 1个月
简介: NLP自然语言处理之NLTK工具的使用,进行英文情感分析、分词、分句、词性标注(附代码)

  NLP Tool 系列文章

NLP--Jieba中文文本--关键词提取、自定义词典、分词、词性标注

NLP--NLTK英文文本--情感分析、分词、分句、词性标注

工具介绍

NLTK,Natural Language Toolkit是一个Python模块,提供了多种语料库(Corpora)和词典(Lexicon)资源,比如WordNet等,以及一系列基本的自然语言处理工具集,包括:分句,标记解析(Tokenization),词干提取(Stemming),词性标注(POS Tagging)和句法分析(Syntactic Parsing)等,是对英文文本数据进行处理的常用工具。

注意:该工具主要是针对英文文本数据,那如果用中文数据会有怎样的效果呢?本文章以下内容会有具体介绍

安装库

pip install nltk

image.gif

安装语料库

方式一:在控制台直接安装

import nltk
nltk.download()

image.gif

方式二:因为要下载的语料库太大了,所以方式一有时候不会成功,所以可以考虑手动下载

1 进入官网地址下官网地址 GitHub - nltk/nltk_data: NLTK Data

image.gif编辑

2 查看解压后的语料库可以放在本地的哪些位置,在控制台中输入以下内容

from nltk.corpus import brown
brown.categories()

image.gif

image.gif编辑

假如是在选择E:\\nltk_data,那就在E盘中创建nltk_data文件,随后将下载的语料库中的packages包下的所有文件复制到nltk_data

image.gif编辑

进入nltk_data/tokenizers文件夹下解压punkt.zip文件

image.gif编辑

完整代码

import nltk
from nltk.tokenize import sent_tokenize
from nltk.tokenize import word_tokenize
from nltk.corpus import brown
brown.categories()
s = '近日,中国短道速滑队队员@武大靖,在直播中歪嘴喝水的画面走红,此后他本人还亲自教学。于是,短道速滑国家队的成员们相继挑战,还出了一人炫三瓶的升级版。网友:终于找到进短道速滑队的方法!'
s1 = 'Along with the development of society , more and more problems are brought to our attention , one of the most serious problems is involution and lying flat . Involution means that when social resources cannot meet the needs of everyone, people compete to obtain more resources. An important feature of involution is internal competition , Internal competition is becoming increasing prevalent at an amazing rate. '
englishTokens = word_tokenize(s1)
chineseTokens = word_tokenize(s)
# 分句和分词
print("英文分句", sent_tokenize(s1))
print("英文分词", englishTokens)
print("中文分句", sent_tokenize(s))
print("中文分词", chineseTokens)
# 词性标注
# 分词之后才可以进行词性标注
englishTags = nltk.pos_tag(englishTokens)
chineseTags = nltk.pos_tag(chineseTokens)
print("英文词性标注", englishTags)
print("中文词性标注", chineseTags)
# 情感分析
#compound表示复杂程度,neu表示中性,neg表示负面情绪,pos表示正面情绪
from nltk.sentiment.vader import SentimentIntensityAnalyzer
s2 = ['This is a good book', 'This is a bad book']
s3 = ['这是一本好书', '这是一本糟糕的书']
# 创建分类器
sid = SentimentIntensityAnalyzer()
#英文情感分析
for sentence in s2:
    print(sentence)
    print("情感得分", sid.polarity_scores(sentence))
#中文情感分析
for sentence in s3:
    print(sentence)
    print("情感得分", sid.polarity_scores(sentence))

image.gif

结果

image.gif编辑

结果分析

1分词、分句、词性标注

image.gif编辑

2 情感分析

image.gif编辑

可以明显的看到在英文的实现效果是比较好的,而中文的在分词阶段的效果就比较糟糕,因此,以分词为基础的分句、词性标注、情感分析的实现效果也比较糟糕

目录
相关文章
|
25天前
|
机器学习/深度学习 人工智能 自然语言处理
【人工智能】自然语言处理(NLP)的突破,关注NLP在机器翻译、情感分析、聊天机器人等方面的最新研究成果和应用案例。
自然语言处理(NLP)作为人工智能的一个重要分支,近年来取得了显著的突破,特别在机器翻译、情感分析、聊天机器人等领域取得了显著的研究成果和广泛的应用。以下是对这些领域最新研究成果和应用案例的概述,并附带相应的代码实例。
43 1
|
1月前
|
机器学习/深度学习 存储 自然语言处理
自然语言处理中的情感分析技术:深入解析与应用前景
【8月更文挑战第4天】情感分析技术作为自然语言处理领域的重要分支,具有广泛的应用前景和重要的研究价值。通过不断的技术创新和应用实践,我们可以期待情感分析在未来发挥更大的作用,为我们的生活和工作带来更多便利和效益。
98 10
|
28天前
|
自然语言处理 算法 数据挖掘
自然语言处理 Paddle NLP - 情感分析技术及应用SKEP-实践
自然语言处理 Paddle NLP - 情感分析技术及应用SKEP-实践
14 0
|
28天前
|
机器学习/深度学习 自然语言处理 iOS开发
自然语言处理 Paddle NLP - 情感分析技术及应用-理论
自然语言处理 Paddle NLP - 情感分析技术及应用-理论
16 0
|
3月前
|
机器学习/深度学习 自然语言处理 算法
分词算法在自然语言处理中的应用与性能比较
分词算法在自然语言处理中的应用与性能比较
|
2月前
|
机器学习/深度学习 自然语言处理 算法
分词算法在自然语言处理中的应用与性能比较
分词算法在自然语言处理中的应用与性能比较
|
3月前
|
机器学习/深度学习 人工智能 自然语言处理
Python自然语言处理实战:文本分类与情感分析
本文探讨了自然语言处理中的文本分类和情感分析技术,阐述了基本概念、流程,并通过Python示例展示了Scikit-learn和transformers库的应用。面对多义性理解等挑战,研究者正探索跨域适应、上下文理解和多模态融合等方法。随着深度学习的发展,这些技术将持续推动人机交互的进步。
102 1
|
3月前
|
自然语言处理 监控 数据挖掘
|
2月前
|
机器学习/深度学习 自然语言处理 算法
分词算法在自然语言处理中的基本原理与应用场景
分词算法在自然语言处理中的基本原理与应用场景
|
3月前
|
机器学习/深度学习 数据采集 人工智能
Python 高级实战:基于自然语言处理的情感分析系统
**摘要:** 本文介绍了基于Python的情感分析系统,涵盖了从数据准备到模型构建的全过程。首先,讲解了如何安装Python及必需的NLP库,如nltk、sklearn、pandas和matplotlib。接着,通过抓取IMDb电影评论数据并进行预处理,构建情感分析模型。文中使用了VADER库进行基本的情感分类,并展示了如何使用`LogisticRegression`构建机器学习模型以提高分析精度。最后,提到了如何将模型部署为实时Web服务。本文旨在帮助读者提升在NLP和情感分析领域的实践技能。
88 0