当前位置: 首页 > news >正文

Python自然语言处理之spacy模块介绍、安装与常见操作案例

文章目录

    • spacy模块介绍
    • 安装spacy
    • 常见操作案例及代码
      • 1. 加载模型并处理文本
      • 2. 词性标注
      • 3. 命名实体识别
      • 4. 依存句法分析
      • 5. 可视化(在Jupyter Notebook中)

spacy模块介绍

spacy是一个强大的Python库,用于自然语言处理(NLP)。它提供了丰富的功能,包括分词、词性标注、依存句法分析、命名实体识别等,并且支持多种语言。spacy以其高性能、易用性和可扩展性而受到广泛欢迎。

安装spacy

在Python中安装spacy及其英语模型可以通过pip完成。以下是一个基本的安装命令,包括安装spaCy库和下载英语小模型en_core_web_sm

pip install spacy
python -m spacy download en_core_web_sm

常见操作案例及代码

1. 加载模型并处理文本

import spacy# 加载预训练的英语模型
nlp = spacy.load("en_core_web_sm")# 处理文本
text = "Apple is looking at buying U.K. startup for $1 billion."
doc = nlp(text)# 打印分词结果
for token in doc:print(token.text)

输出结果(示例):

Apple
is
looking
at
buying
U.K.
startup
for
$
1
billion
.

2. 词性标注

# 打印词性标注结果
for token in doc:print(f"{token.text}: {token.pos_}")

输出结果(示例):

Apple: PROPN
is: VERB
looking: VERB
at: ADP
buying: VERB
U.K.: PROPN
startup: NOUN
for: ADP
$: SYM
1: NUM
billion: NUM
.: PUNCT

3. 命名实体识别

# 打印命名实体识别结果
for ent in doc.ents:print(f"{ent.text}: {ent.label_}")

输出结果(示例):

Apple: ORG
U.K.: GPE
$1 billion: MONEY

4. 依存句法分析

# 打印依存句法分析结果
for token in doc:print(f"{token.text}: {token.dep_}{token.head.text}")

输出结果(示例,注意依存关系可能因版本和模型而异):

Apple: nsubj → looking
is: ROOT → is
looking: VERB → is
at: prep → looking
buying: pobj → at
U.K.: compound → startup
startup: dobj → buying
for: prep → buying
$: nmod → billion
1: nummod → billion
billion: pobj → for
.: punct → looking

5. 可视化(在Jupyter Notebook中)

由于可视化通常在Jupyter Notebook中更直观,这里假设你正在使用Jupyter Notebook环境。

from spacy import displacy# 依存句法分析可视化
displacy.render(doc, style="dep", jupyter=True)# 命名实体识别可视化
displacy.render(doc, style="ent", jupyter=True)

注意:上述可视化代码在Jupyter Notebook中执行时,会直接在输出单元格中显示图形。在非Jupyter环境中,你需要将结果保存为HTML文件或其他格式进行查看。

spacy的这些功能为自然语言处理提供了强大的工具集,使得文本分析、信息提取等任务变得更加容易和高效。

http://www.lryc.cn/news/450023.html

相关文章:

  • DSPy101
  • 网格交易策略:从原理、应用到实战Python回测
  • 软考论文《论大数据处理架构及其应用》精选试读
  • fatfs API使用手册
  • 9.23作业
  • Unity3D 房间去重叠化算法详解
  • mybatis 配置文件完成增删改查(五) :单条件 动态sql查询,相当于switch
  • 全球IP归属地查询-IP地址查询-IP城市查询-IP地址归属地-IP地址解析-IP位置查询-IP地址查询API接口
  • Vue3+FastAPI中Token的刷新机制(含代码示例)
  • 【GAN 图像生成】
  • 【自然语言处理】词嵌入模型
  • 了解针对基座大语言模型(类似 ChatGPT 的架构,Decoder-only)的重头预训练和微调训练
  • cmake如何在编译时区分-std=c++17和-std=gnu++17?检查宏
  • 速通数据结构与算法第七站 排序
  • 灵当CRM index.php接口SQL注入漏洞复现 [附POC]
  • 修复: Flux女生脸不再油光满面, 屁股下巴 -- 超实用Comfyui小技巧
  • Actions Speak Louder than Words Meta史诗级的端到端推荐大模型落地
  • 金智维KRPA之Excel自动化
  • 哪款宠物空气净化器能有效去除浮毛?希喂、352实测分享
  • 2024.9.28更换启辰R30汽车火花塞
  • 2024上海网站建设公司哪家比较好TOP3
  • TDesign组件库+vue3+ts 如何视觉上合并相同内容的table列?(自定义合并table列)
  • BACnet协议-(基于ISO 8802-3 UDP)(2)
  • android 根据公历日期准确节气计算年月日时天干地支 四柱八字
  • VMware虚拟机连接公网,和WindTerm
  • 游戏盾SDK真的能无视攻击吗
  • 【QT】亲测有效:“生成的目标文件包含了过多的段,超出了编译器或链接器允许的最大数量”错误的解决方案
  • 什么是 Apache Ingress
  • SpringBoot助力墙绘艺术市场创新
  • Antlr的使用