spacy其余内容

本文介绍了spacy的规则匹配方法,包括获取训练样本、设置entity、entity linking等。此外,还讲解了如何添加token分词规则、定义token类、重写tokenizer,以及如何合并和分割tokens。同时,文章探讨了句子分割、添加pattern、word vectors和similarity的计算,以及如何添加自定义entity。
摘要由CSDN通过智能技术生成

总体介绍

之前的博客有提到spacy是由pipelines中的不同的model进行处理的,spacy的整理,下面会简单介绍spacy的其余部分的内容。

规则匹配

获取训练样本

如果没有标注好的数据集,那么可以利用模型来对原始的样本进行分析处理,接着对分析好的样本进行修正,利用这些修正的标签的数据集作为训练集。

设置entity

  • 设置entity
    对doc.ents的标签进行设置,并且将新的entity设置为Span类;
import spacy
from spacy.tokens import Span

nlp = spacy.load("en_core_web_sm")
text = "" #self-defined
doc = nlp(text)
ents = [(e.text, e.start_char, e_end_char, e.label_) for e in doc.ents]

**fb_ent = Span(doc, 0,1, label="ORG")
doc.ents = list(doc.ents)+[fb_ent]**
##上面的两行代码是表示添加了fb作为新的entity
ents = [(e.text, e.start_char, e.end_char, e.label_) for e in doc.ents]
  • 利用array设置entity标签
    利用doc.from_array来给entity设置标签;
import numpy as np
import spacy
from spacy.attrs import ENT_IOB, ENT_TYPE

nlp = spacy.load("en_core_web_sm")
doc = nlp(text) #text is self-defined string
header = [ENT_IOB, ENT_TYPE]
attr_array = np.zeros((len()doc), len(header)), dtype="uint64")
attr_array[0,0] = 3
attr_array[0,1] = doc.vocab.strings["GPE"]
doc.from_array(header, attr_array)

entity linking

可以创建自己的knowledge base或者利用别人制作的KB来训练自己的model;

添加token分词规则

import spacy
from spacy.symbols import ORTH

nlp = spacy.load("en_core_web_sm")
doc = nlp("gimme that")
print([w.text for w in doc]) # original tokens

special_case = [{ORTH:"gim"}, {ORTH:"me"}]
nlp.tokenizer.add_special_case("gimme", special_case)
print([w.text for w in nlp("gimme that")])

定义token类

需要考虑以下六个条件:

  1. 特殊类别的字典;
  2. prefix_search;
  3. suffix_search;
  4. infixes_finditer;
  5. token_match: 不能被分开的字符串,重写infix规则;
  6. url_match: 和token_match很相似,除了在使用这个match之前将prefixes和suffixes移除;
    常规做法是利用re.compile()来创建一个规则表达式,接着使用.s
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值