nlp入门之spaCy工具的使用

本文涉及的产品
实时计算 Flink 版,1000CU*H 3个月
实时数仓Hologres,5000CU*H 100GB 3个月
智能开放搜索 OpenSearch行业算法版,1GB 20LCU 1个月
简介: 本文作为nlp开山篇的第四篇,简要介绍了spaCy工具的用法

源码请到:自然语言处理练习: 学习自然语言处理时候写的一些代码 (gitee.com)

四、spacy工具包的使用

4.1 spacy工具包安装

spacy工具包宣称可以做到nltk做到的所有事情,并且速度更快,还更好的适配深度学习,最关键的是提供了中文语言模型!!

由于某些不可说的原因,使用官网的安装方式很难成功推荐直接使用conda内部的整合包

运行

condainstallspacycondainstall-cconda-forgespacy-model-en_core_web_sm


就可以安装成功了

如果不成功可以网上寻找spacy的离线安装包,可以参考这篇文章

安装spaCy(最简单的教程)_spacy安装_御用厨师的博客-CSDN博客

4.2 加载模型

可以自行选择安装需要的模型,然后使用命令加载,我这里使用英文模型做示范

示例:

# 加载模型nlp=spacy.load("en_core_web_sm")


4.3 分词

spacy同样可以做到分词

示例:

# 加载语料doc=nlp('Weather is good, very windy and sunny. We have no classes in the afternoon')
# 分词fortokenindoc:
print(token)


4.4 分句

spacy还提供了分句功能

示例:

# 分句forsentindoc.sents:
print(sent)


4.5 词性

spacy和nltk一样提供了分析词性的功能

示例:

# 词性fortokenindoc:
print('{}-{}'.format(token, token.pos_))


词性对照表可以参考

SpaCy词性对照表 - 知乎 (zhihu.com)

4.6 命名体识别

spacy也提供了命名体识别功能

示例:

# 命名体识别doc_2=nlp("I went to Paris where I met my old friend Jack from uni")
forentindoc_2.ents:
print('{}-{}'.format(ent, ent.label_))


还可以将结果进行可视化展示

# 展示doc=nlp("I went to Paris where I met my old friend Jack from uni")
svg=displacy.render(doc, style='ent')
output_path=Path(os.path.join("./", "sentence.html"))
output_path.open('w', encoding="utf-8").write(svg)


4.7 找出书中所有人物的名字

以傲慢与偏见为语料,做一个找出所有人物名字的实战示例

示例:

# 找到书中所有人物名字defread_file(file_name):
withopen(file_name, 'r') asf:
returnf.read()
text=read_file(os.path.join('./', 'data/Pride and Prejudice.txt'))
processed_text=nlp(text)
sentences= [sforsinprocessed_text.sents]
print(len(sentences))
print(sentences[:5])
deffind_person(doc):
c=Counter()
forentindoc.ents:
ifent.label_=='PERSON':
c[ent.lemma_] +=1returnc.most_common(10)
print(find_person(processed_text))


4.8 恐怖袭击分析

根据世界反恐怖组织官网上下载的恐怖袭击事件,来分析特定的组织在特定的地点作案的次数

示例:

# 恐怖袭击分析defread_file_to_list(file_name):
withopen(file_name, 'r') asf:
returnf.readlines()
terrorist_articles=read_file_to_list(os.path.join('./', 'data/rand-terrorism-dataset.txt'))
print(terrorist_articles[:5])
terrorist_articles_nlp= [nlp(art.lower()) forartinterrorist_articles]
common_terrorist_groups= [
'taliban',
'al-qaeda',
'hamas',
'fatah',
'plo',
'bilad al-rafidayn']
commmon_locations= [
'iraq',
'baghdad',
'kirkuk',
'mosul',
'afghanistan',
'kabul',
'basra',
'palestine',
'gaza',
'israel',
'istanbul',
'beirut',
'pakistan']
location_entity_dict=defaultdict(Counter)
forarticleinterrorist_articles_nlp:
article_terrorist_groups= [ent.lemma_forentinarticle.entsifent.label_=='PERSON'orent.label_=="ORG"]
article_locations= [ent.lemma_forentinarticle.entsifent.label_=='GPE']
terrorist_common= [entforentinarticle_terrorist_groupsifentincommon_terrorist_groups]
location_common= [entforentinarticle_locationsifentincommmon_locations]
forfound_entityinterrorist_common:
forfound_locationinlocation_common:
location_entity_dict[found_entity][found_location] +=1print(location_entity_dict)
location_entity_df=pd.DataFrame.from_dict(dict(location_entity_dict), dtype=int)
location_entity_df=location_entity_df.fillna(value=0).astype(int)
print(location_entity_df)
plt.figure(figsize=(12, 10))
hmap=sns.heatmap(location_entity_df, annot=True, fmt='d', cmap='YlGnBu', cbar=False)
plt.title("Global Incidents by Terrorist group")
plt.xticks(rotation=30)
plt.show()


 

 

 


相关文章
|
27天前
|
数据采集 机器学习/深度学习 人工智能
31_NLP数据增强:EDA与NLPAug工具
在自然语言处理(NLP)领域,高质量的标注数据是构建高性能模型的基础。然而,获取大量准确标注的数据往往面临成本高昂、耗时漫长、覆盖度不足等挑战。2025年,随着大模型技术的快速发展,数据质量和多样性对模型性能的影响愈发显著。数据增强作为一种有效扩充训练样本的技术手段,正成为解决数据稀缺问题的关键策略。
|
机器学习/深度学习 人工智能 自然语言处理
【人工智能技术专题】「入门到精通系列教程」零基础带你进军人工智能领域的全流程技术体系和实战指南(NLP自然语言处理概念介绍)
【人工智能技术专题】「入门到精通系列教程」零基础带你进军人工智能领域的全流程技术体系和实战指南(NLP自然语言处理概念介绍)
350 0
|
10月前
|
人工智能 自然语言处理 Java
FastExcel:开源的 JAVA 解析 Excel 工具,集成 AI 通过自然语言处理 Excel 文件,完全兼容 EasyExcel
FastExcel 是一款基于 Java 的高性能 Excel 处理工具,专注于优化大规模数据处理,提供简洁易用的 API 和流式操作能力,支持从 EasyExcel 无缝迁移。
2219 65
FastExcel:开源的 JAVA 解析 Excel 工具,集成 AI 通过自然语言处理 Excel 文件,完全兼容 EasyExcel
|
8月前
|
人工智能 自然语言处理 数据可视化
Data Formulator:微软开源的数据可视化 AI 工具,通过自然语言交互快速创建复杂的数据图表
Data Formulator 是微软研究院推出的开源 AI 数据可视化工具,结合图形化界面和自然语言输入,帮助用户快速创建复杂的可视化图表。
764 10
Data Formulator:微软开源的数据可视化 AI 工具,通过自然语言交互快速创建复杂的数据图表
|
8月前
|
存储 人工智能 自然语言处理
ACE++:输入想法就能完成图像创作和编辑!阿里通义推出新版自然语言驱动的图像生成与编辑工具
ACE++ 是阿里巴巴通义实验室推出的升级版图像生成与编辑工具,支持多种任务,如高质量人物肖像生成、主题一致性保持和局部图像编辑。
510 8
|
自然语言处理 算法 数据挖掘
探讨如何利用Python中的NLP工具,从被动收集到主动分析文本数据的过程
【10月更文挑战第11天】本文介绍了自然语言处理(NLP)在文本分析中的应用,从被动收集到主动分析的过程。通过Python代码示例,详细展示了文本预处理、特征提取、情感分析和主题建模等关键技术,帮助读者理解如何有效利用NLP工具进行文本数据分析。
253 2
|
自然语言处理 算法 数据可视化
NLP-基于bertopic工具的新闻文本分析与挖掘
这篇文章介绍了如何使用Bertopic工具进行新闻文本分析与挖掘,包括安装Bertopic库、加载和预处理数据集、建立并训练主题模型、评估模型性能、分类新闻标题、调优聚类结果的详细步骤和方法。
NLP-基于bertopic工具的新闻文本分析与挖掘
|
机器学习/深度学习 人工智能 自然语言处理
自然语言处理(NLP)技术入门指南
【5月更文挑战第3天】本文是自然语言处理(NLP)技术的入门指南,介绍了NLP的基本概念、关键技术和学习建议。NLP旨在实现人机自然语言交互,应用于机器翻译、文本分类等领域。核心技术包括词法分析、句法分析、语义分析及深度学习模型。入门学习需掌握基础知识,动手实践,关注前沿技术并持续学习。通过学习NLP,可为人工智能发展贡献力量。
1020 8
|
SQL 人工智能 自然语言处理
一款利用人工智能将自然语言查询转换为 SQL 代码的互译工具 - SQL Translator
一款利用人工智能将自然语言查询转换为 SQL 代码的互译工具 - SQL Translator
402 0