【拥抱AI】沉浸式体验SpaCy开源分词器

本节分享一下SpaCy的学习过程,感兴趣的小伙伴可以接着往下看,最后会附上测试代码和源码地址,如有认知错误的地方,还请批评指正,谢谢。

SpaCy的安装和下载

SpaCy是一个开源的Python自然语言处理库,可以通过pip进行安装:

复制代码
pip install spacy

安装完成后,需要下载相应的语言模型,例如英语模型:

复制代码
python -m spacy download en_core_web_sm

或者可以直接从GitHub上下载模型的压缩包,并在本地进行安装。

SpaCy的使用

使用SpaCy进行文本处理的基本步骤包括导入库、加载模型,并对文本进行处理。例如:

python 复制代码
import spacy
nlp = spacy.load('en_core_web_sm')
text = "Apple is looking at buying U.K. startup for $1 billion"
doc = nlp(text)

如果需要使用中文分词,则需要额外下载zh_core_web_sm包,然后再加载才不会报错。

下载前可以先校验升级一下spacy。

复制代码
python -m spacy validate

python -m spacy download zh_core_web_sm
nlp = spacy.load('zh_core_web_sm')

处理后的文档对象doc可以用来获取词性标注、命名实体识别等信息。

SpaCy的主要功能

SpaCy提供了一系列自然语言处理功能,包括:

  • 词性标注(Part-of-Speech Tagging)
  • 命名实体识别(Named Entity Recognition, NER)
  • 依存句法分析(Dependency Parsing)
  • 词向量计算(Word Vectors)
  • 文本分类
  • 实体链接
  • 文本生成等

SpaCy的技术特点

  • 高性能:使用Cython和C++编写,提供快速的文本处理能力。
  • 易于使用:提供简洁的API接口,便于开发者快速上手。
  • 多语言支持:提供多种语言的预训练模型。
  • 模型扩展性:支持自定义模型和组件,便于根据特定需求调整模型。
  • 基于Transformer的模型:引入了基于Transformer的管道,支持多任务学习,提高了模型的扩展性和灵活性。

SpaCy的应用场景

  • 文本分类
  • 情感分析
  • 信息提取
  • 机器翻译
  • 问答系统
  • 聊天机器人

SpaCy的适用范围

SpaCy适用于需要高效文本处理和分析的各种应用,尤其是在工业级应用中,它能够处理大量文本数据,并提供准确的分析结果。

SpaCy支持的文档格式

SpaCy主要支持Python编程语言,并通过其库提供对文本数据的处理功能。它不直接处理特定的文档格式,而是处理字符串形式的文本数据。在实际应用中,可以将各种文档格式(如TXT、PDF、CSV等)中的文本内容提取出来,然后使用SpaCy进行进一步的自然语言处理。

下面是学习使用demo代码,仅供参考

复制代码
import spacy
from spacy.tokenizer import Tokenizer
import re


# 加载预训练的模型
nlp = spacy.load('zh_core_web_sm') # 中文模型 zh_core_web_sm, 英文模型 en_core_web_sm


# 定义自定义分割规则
custom_infixes = ['#(.*?)#']

infix_re = spacy.util.compile_infix_regex(nlp.Defaults.infixes)
#print(infix_re)

# 创建一个新的Tokenizer实例,使用自定义规则
custom_tokenizer = Tokenizer(nlp.vocab, infix_finditer=infix_re.finditer)

# 将自定义Tokenizer应用到spaCy管道中
nlp.tokenizer = custom_tokenizer

# 定义处理文本的函数
def process_text(text):
    # 使用模型处理文本
    doc = nlp(text)
    print(doc)
    # 打印处理后的信息
    for token in doc:
        print(f'Token: {token.text}, Lemma: {token.lemma_}, POS: {token.pos_}, Tag: {token.tag_}, Dependency: {token.dep_}')


# 读取文件并处理每一行
def process_file(file_path):
    with open(file_path, 'r', encoding='utf-8') as file:
        for line in file:
            process_text(line.strip())
                

# 调用函数处理文件
file_path = '1.md' # 目标文件
process_file(file_path)

SpaCy的官方文档提供了详细的安装指南、使用说明和教程,可以帮助我们更好地了解和使用该库。

源码地址:https://github.com/explosion/spaCy

相关推荐
代码青铜10 分钟前
1 万用户的图片短视频交易市场,829 元/月能跑起来?Zion+AI让开发看得懂、改得动
人工智能
JJJennie77723 分钟前
Anthropic 发布 Claude Academy,AI 教学开始告别提示词速成班
人工智能
一杯仙妖气38 分钟前
Grok 4.6 正式发布!性能直接飙升,xAI 这次真的开始冲击第一梯队! 可免费试用 2026年8月20日 admin AI xAI
人工智能
白露与泡影41 分钟前
解密 Pi 的 Harness 工程:Agent 会话如何实现持久化与恢复
java·人工智能·算法
DogDaoDao1 小时前
Magma:微软如何用一个模型打通数字与物理世界的 AI Agent
人工智能·微软·机器人·大模型·机器人模型·智能体·magma
DS随心转插件1 小时前
Grok生成的html怎么导出——AI导出鸭:大模型结构化输出的“最后一公里”工程化解构
前端·人工智能·ai·html·豆包·deepseek·ai导出鸭
世隆科技1 小时前
武汉世隆科技有限公司获评2026湖北省科创“新物种“瞪羚企业
人工智能
yinmaisoft1 小时前
当 AI“长”进低代码:从外挂点缀到原生融合,软件开发正在经历怎样的变革?
人工智能·低代码
2301_786756601 小时前
今日未放榜!国自然等待期,别被往年“周五经验”绑架
大数据·人工智能·科研·国自然·国家自然科学基金
进军的码农1 小时前
政府采购联想工作站:授权链合规验证+投标资质+代理商选择全指南
人工智能·技术支持·联想工作站·代理商推荐·cuda部署