欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 汽车 > 新车 > 自然语言处理spaCy

自然语言处理spaCy

2025/10/25 18:34:58 来源:https://blog.csdn.net/wangmengmeng99/article/details/147228335  浏览:    关键词:自然语言处理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 使用,版本不兼容可能导致错误。

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

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词