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

自然语言处理spaCy

spaCy 是一个流行的开源 自然语言处理(NLP) 库,专注于 高效、易用和工业化应用。它由 Explosion AI 开发,广泛应用于文本处理、信息提取、机器翻译等领域。

zh_core_web_sm 是 spaCy 提供的一个小型中文预训练语言模型,适用于基本的(NLP)任务。以下是关于它的关键信息:

1. 模型特点

  • 小型(SM):模型体积较小,占用内存少,适合快速处理和轻量级应用。

  • 预训练:基于中文文本训练,包含词汇、句法和实体识别等基础能力。

  • 功能:支持分词(Word Segmentation)、词性标注(POS)、依存句法分析(Dependency Parsing)和命名实体识别(NER)等。

2. 主要用途

  • 文本分词和词性标注。

  • 识别实体(如人名、地名、组织机构等)。

  • 句法分析(需注意小型模型的精度可能较低)。

3. 安装与使用

  • 安装步骤

    1. 确保已安装 spaCypip install spacy

    2. 下载模型:

  • 到下面网址上下载对应的spacy版本的zh_core_web_sm 

  • https://github.com/explosion/spacy-models/releases?q=zh_core_web_sm&expanded=true

  • 下载到自己指定的路径下,命令行cd至该路径下,进行安装

  • pip install zh_core_web_sm-3.6.0-py3-none-any.whl

  • 示例代码

    import spacy
    import pytextrank
    from spacy import displacy
    # 加载模型
    nlp = spacy.load("zh_core_web_sm")
    
    # 处理文本
    text = "小明考上了中国传媒大学。他买了票,很快就要去北京了"
    #断句
    doc1=nlp(text.strip())
    sents=[sent.text.strip() for sent in doc1.sents]
    print(*sents,sep="\n")
    # 命名实体识别NER
    doc2 = nlp(text)
    ents=[(ent.text,ent.label_) for ent in doc2.ents]
    # ORG代表机构组织名,GPE代表地名
    print(*["\t".join(e) for e in ents],sep="\n")#中国传媒大学 ORG 北京	GPE
    #分词和词性标注
    words=[(token.text,token.pos_) for token in doc2]
    print(words)
    
    #依存句法分析
    sentid=1
    r=[]
    for token in doc2:
        rec=(sentid,token.i+1,token.text,token.pos_)
        if token.head.i==token.i:
            rec +=(0,None,None)
        else:
            rec +=(token.head.i+1,token.head.text,token.head.pos_)
        rec +=(token.dep_,)
        r.append(rec)
    print(f"句子:{text}\n 依存分析结果:")
    print("句子编号\t 词序\t 词\t 词性\t 支配词序\t 支配词\t 支配词性\t 依存关系")
    print(*["\t".join(map(str,e)) for e in sorted(r)],sep="\n")
    #依存关系图
    svg=displacy.render(doc2,style="dep")
    fout="sent.svg"
    with open(fout,"wt",encoding="utf-8") as fpw:
        fpw.write(svg)

4. 性能与限制

  • 优点:轻量、速度快,适合对精度要求不高的场景。

  • 缺点:相比更大的模型(如 zh_core_web_md/lg),准确率较低,尤其是对复杂句子或专业术语。

5. 替代模型

  • 若需要更高精度,可尝试:

    • zh_core_web_md:中等规模,含词向量。

    • zh_core_web_lg:大规模,精度更高但资源消耗大。

6. 注意事项

  • 需配合 spaCy 3.x 使用,版本不兼容可能导致错误。

  • 中文处理效果受训练数据影响,特定领域(如医学、法律)可能需要微调。

相关文章:

  • 多模态融合学习(九)——PIAFusion 武汉大学马佳义团队(一)
  • 指针(1)
  • 短波红外高光谱相机:高光谱成像在塑料分选中的应用
  • PHP + Go 如何协同打造高并发微服务?
  • NAS-RAID方案之snapRAID
  • Spark-SQL简介与编程
  • 4月14日星期一今日早报简报微语报早读
  • 2025年常见渗透测试面试题-红队面试宝典上(题目+回答)
  • AI 项目详细开发步骤指南
  • 构造HTTP请求
  • mapbox V3 新特性,加载风粒子动画
  • VSCode 降低适用版本并且关闭自动更新
  • 代码随想录第17天:二叉树
  • Spring Boot 集成 RocketMQ 全流程指南:从依赖引入到消息收发
  • 【Three.js基础学习】35.Particles Cursor Animation Shader
  • 【笔记】对抗训练-GAN
  • 论文精度:双分支图Transformer网络:视频驱动的3D人体网格重建新突破
  • 记一次某网络安全比赛三阶段webserver应急响应解题过程
  • Spring Cloud主要组件介绍
  • 解密Oracle数据库RAC技术原理:构建高可用、可扩展的集群数据库
  • 经常失眠,睡眠质量低?也许只是缺这种营养
  • 马文化体验展商圈启动,环球马术冠军赛的能量不止在赛场
  • 针对“二选一”,美团再次辟谣
  • 中印尼举行外长防长“2+2”对话机制首次部长级会议
  • 经济大省中川、豫、浙一季报已发:GDP增速均高于全国
  • 商务部24日下午将举行发布会,介绍近期商务领域重点工作情况