spaCy 是一个高级的自然语言处理(NLP)库,专为处理大规模文本数据而设计。它提供了快速且高效的工具,用于文本的标记化、词性标注、依存解析、命名实体识别、词向量等任务。spaCy 支持多种语言,并且通过预训练的模型提供了开箱即用的功能。其设计目标是简洁和高效,适合在生产环境中使用。
spaCy

spaCy 的管道机制允许用户轻松地添加和移除组件,定制化处理流程。它还提供了丰富的API接口,便于与其他数据科学和机器学习工具集成。此外,spaCy 还支持自定义训练,用户可以根据特定需求微调模型。

可视化工具如 displaCy 使得解析结果的展示变得直观。总之,spaCy 是一个强大且灵活的NLP库,适用于研究和工业应用中的各种文本处理任务。

以下是一些 spaCy 常用函数的参数注释、示例和简短说明:

  1. spacy.load(name, **overrides)

    • name: 要加载的预训练模型的名称(例如 'en_core_web_sm')。
    • **overrides: 可选参数,用于覆盖模型配置的默认值。

    示例:

    import spacy
    nlp = spacy.load('en_core_web_sm')

    说明:加载一个预训练的语言模型。

  2. nlp(text)

    • text: 要处理的文本字符串。

    示例:

    doc = nlp("This is a sentence.")

    说明:处理文本并生成一个文档对象。

  3. doc.text

    无参数。

    示例:

    print(doc.text)

    说明:获取文档的原始文本。

  4. doc.ents

    无参数。

    示例:

    for ent in doc.ents:
        print(ent.text, ent.label_)

    说明:获取文档中的命名实体。

  5. doc.sents

    无参数。

    示例:

    for sent in doc.sents:
        print(sent.text)

    说明:获取文档中的句子。

  6. doc.noun_chunks

    无参数。

    示例:

    for chunk in doc.noun_chunks:
        print(chunk.text)

    说明:获取文档中的名词短语。

  7. token.text

    无参数。

    示例:

    for token in doc:
        print(token.text)

    说明:获取令牌的文本。

  8. token.lemma_

    无参数。

    示例:

    for token in doc:
        print(token.lemma_)

    说明:获取令牌的词干。

  9. token.pos_

    无参数。

    示例:

    for token in doc:
        print(token.pos_)

    说明:获取令牌的词性。

  10. token.tag_

    无参数。

    示例:

    for token in doc:
        print(token.tag_)

    说明:获取令牌的详细词性标注。

  11. token.dep_

    无参数。

    示例:

    for token in doc:
        print(token.dep_)

    说明:获取令牌的依存关系。

  12. token.head

    无参数。

    示例:

    for token in doc:
        print(token.head.text)

    说明:获取令牌的头部。

  13. token.ent_type_

    无参数。

    示例:

    for token in doc:
        print(token.ent_type_)

    说明:获取令牌的实体类型。

  14. token.is_alpha

    无参数。

    示例:

    for token in doc:
        print(token.is_alpha)

    说明:判断令牌是否为字母。

  15. token.is_stop

    无参数。

    示例:

    for token in doc:
        print(token.is_stop)

    说明:判断令牌是否为停用词。

  16. token.vector

    无参数。

    示例:

    for token in doc:
        print(token.vector)

    说明:获取令牌的词向量。

  17. spacy.explain(label)

    • label: 要解释的标签(字符串)。

    示例:

    print(spacy.explain('GPE'))

    说明:解释标签的含义。

  18. nlp.pipe(texts, as_tuples=False, batch_size=50, disable=[], component_cfg=None)

    • texts: 要处理的文本列表。
    • as_tuples: 如果为True,输入应为(文本,标签)元组。
    • batch_size: 批处理的大小。
    • disable: 要禁用的管道组件列表。
    • component_cfg: 管道组件的配置字典。

    示例:

    texts = ["First text", "Second text"]
    docs = nlp.pipe(texts, batch_size=2)
    for doc in docs:
        print(doc.text)

    说明:批量处理文本。

  19. spacy.matcher.Matcher(vocab, validate=True, validate_attrs=None)

    • vocab: 词汇表对象。
    • validate: 是否验证模式。
    • validate_attrs: 要验证的属性列表。

    示例:

    from spacy.matcher import Matcher
    matcher = Matcher(nlp.vocab)

    说明:创建一个规则匹配器。

  20. spacy.matcher.PhraseMatcher(vocab, attr='ORTH', validate=True)

    • vocab: 词汇表对象。
    • attr: 要匹配的属性。
    • validate: 是否验证模式。

    示例:

    from spacy.matcher import PhraseMatcher
    phrase_matcher = PhraseMatcher(nlp.vocab)

    说明:创建一个短语匹配器。

  21. spacy.tokens.Span(doc, start, end, label=None, vector=None)

    • doc: 所属文档对象。
    • start: 起始令牌索引。
    • end: 结束令牌索引。
    • label: 可选的标签。
    • vector: 可选的向量。

    示例:

    from spacy.tokens import Span
    span = Span(doc, 0, 2, label="GREETING")

    说明:创建一个跨度对象。

  22. spacy.tokens.DocBin(store_user_data=False, attrs=None)

    • store_user_data: 是否存储用户数据。
    • attrs: 要存储的属性列表。

    示例:

    from spacy.tokens import DocBin
    doc_bin = DocBin()

    说明:高效存储和加载文档对象。

  23. nlp.add_pipe(component, name=None, before=None, after=None, first=False, last=False, source=None)

    • component: 要添加的管道组件。
    • name: 组件名称。
    • before: 在指定组件之前添加。
    • after: 在指定组件之后添加。
    • first: 是否作为第一个组件添加。
    • last: 是否作为最后一个组件添加。
    • source: 组件的来源。

    示例:

    nlp.add_pipe('ner', last=True)

    说明:向管道中添加组件。

  24. nlp.remove_pipe(name)

    • name: 要移除的管道组件的名称。

    示例:

    nlp.remove_pipe('ner')

    说明:从管道中移除组件。

  25. nlp.get_pipe(name)

    • name: 要获取的管道组件的名称。

    示例:

    ner = nlp.get_pipe('ner')

    说明:获取管道中的组件。

  26. spacy.training.Example(reference, predicted)

    • reference: 参考文档对象。
    • predicted: 预测文档对象。

    示例:

    from spacy.training import Example
    example = Example(reference, predicted)

    说明:创建训练示例。

  27. spacy.training.Corpus(path, gold_preproc=False, max_length=0, limit=0, shuffle=False)

    • path: 语料库文件路径。
    • gold_preproc: 是否使用金标准预处理。
    • max_length: 最大文档长度。
    • limit: 文档数量限制。
    • shuffle: 是否打乱文档顺序。

    示例:

    from spacy.training import Corpus
    corpus = Corpus('path/to/corpus')

    说明:创建训练语料库。

  28. spacy.displacy.render(docs, style='dep', page=False, minify=False, jupyter=False, options={})

    • docs: 要渲染的文档或文档列表。
    • style: 渲染风格('dep' 或 'ent')。
    • page: 是否生成完整HTML页面。
    • minify: 是否压缩HTML。
    • jupyter: 是否在Jupyter Notebook中渲染。
    • options: 渲染选项字典。

    示例:

    from spacy import displacy
    displacy.render(doc, style='dep')

    说明:可视化文档对象。

  29. spacy.displacy.serve(docs, style='dep', host='0.0.0.0', port=5000, options={})

    • docs: 要渲染的文档或文档列表。
    • style: 渲染风格('dep' 或 'ent')。
    • host: 服务器主机地址。
    • port: 服务器端口。
    • options: 渲染选项字典。

    示例:

    from spacy import displacy
    displacy.serve(doc, style='dep')

    说明:启动一个本地服务器来展示可视化结果。

函数名分类功能导入模组
spacy.load()加载模型加载一个预训练的语言模型import spacy
nlp()文本处理处理文本并生成一个文档对象import spacy
doc.text文本处理获取文档的原始文本import spacy
doc.ents实体识别获取文档中的命名实体import spacy
doc.sents句子分割获取文档中的句子import spacy
doc.noun_chunks名词短语获取文档中的名词短语import spacy
token.text词汇处理获取令牌的文本import spacy
token.lemma_词汇处理获取令牌的词干import spacy
token.pos_词汇处理获取令牌的词性import spacy
token.tag_词汇处理获取令牌的详细词性标注import spacy
token.dep_依存解析获取令牌的依存关系import spacy
token.head依存解析获取令牌的头部import spacy
token.ent_type_实体识别获取令牌的实体类型import spacy
token.is_alpha词汇处理判断令牌是否为字母import spacy
token.is_stop词汇处理判断令牌是否为停用词import spacy
token.vector词向量获取令牌的词向量import spacy
spacy.explain()解释函数解释标签的含义import spacy
nlp.pipe()管道处理批量处理文本import spacy
spacy.matcher.Matcher模式匹配创建一个规则匹配器from spacy.matcher import Matcher
spacy.matcher.PhraseMatcher模式匹配创建一个短语匹配器from spacy.matcher import PhraseMatcher
spacy.tokens.Span文本处理创建一个跨度对象from spacy.tokens import Span
spacy.tokens.DocBin序列化高效存储和加载文档对象from spacy.tokens import DocBin
nlp.add_pipe()管道处理向管道中添加组件import spacy
nlp.remove_pipe()管道处理从管道中移除组件import spacy
nlp.get_pipe()管道处理获取管道中的组件import spacy
spacy.training.Example训练数据创建训练示例from spacy.training import Example
spacy.training.Corpus训练数据创建训练语料库from spacy.training import Corpus
spacy.displacy.render可视化可视化文档对象from spacy import displacy
spacy.displacy.serve可视化启动一个本地服务器来展示可视化结果from spacy import displacy
最后修改:2024 年 07 月 03 日
喵~