目录
3.词性标注 (Part-of-speech tagging)
5.命名实体识别 (Named Entity Recognization)
9.指代消解 (Coreference Resolution)
简介:
spacy 可以用于进行分词,命名实体识别,词性识别等等
一、安装
pip install spacy
1. 训练模型
安装之后还要下载官方的训练模型, 不同的语言有不同的训练模型,这里只用对应中文的模型演示:
python -m spacy download zh_core_web_sm
代码中使用:
import spacy
nlp = spacy.load("zh_core_web_sm")
模型官方文档:
Trained Models & Pipelines · spaCy Models Documentation
每种语言也会有几种不同的模型,例如中文的模型除了刚才下载的 zh_core_web_sm 外,还有zh_core_web_trf、zh_core_web_md 等,它们的区别在于准确度和体积大小, zh_core_web_sm 体积小,准确度相比zh_core_web_trf差,zh_core_web_trf相对就体积大。这样可以适应不同场景。
这里以模型 zh_core_web_sm 做一个介绍
Trained Models & Pipelines · spaCy Models Documentation

- LANGUAGE : 那种语言的模型
- SIZE : 模型体积的大小
- COMPONENTS(组件): 模型具备的功能
tok2vec: 分词
tagger: 词性标注
parser: 依存分析
senter: 分句
ner: 命名实体识别
attribute_ruler: 更改属性映射(没有具体了解)
- PIPELINE (管道) : 管道组件, 模型会按照管道组件去执行
模型会中指明包含哪些词性、依存分析、实体种类:

这是一些词性名称的解释:
IP:简单从句
NP:名词短语
VP:动词短语
PU:断句符,通常是句号、问号、感叹号等标点符号
LCP:方位词短语
PP:介词短语
CP:由‘的’构成的表示修饰性关系的短语
DNP:由‘的’构成的表示所属关系的短语
ADVP:副词短语
ADJP:形容词短语
DP:限定词短语
QP:量词短语
NN:常用名词
NR:固有名词
NT:时间名词
PN:代词
VV:动词
VC:是
CC:表示连词
VE:有
VA:表语形容词
AS:内容标记(如:了)
VRD:动补复合词
CD: 表示基数词
DT: determiner 表示限定词
EX: existential there 存在句
FW: foreign word 外来词
IN: preposition or conjunction, subordinating 介词或从属连词
JJ: adjective or numeral, ordinal 形容词或序数词
JJR: adjective, comparative 形容词比较级
JJS: adjective, superlative 形容词最高级
LS: list item marker 列表标识
MD: modal auxiliary 情态助动词
PDT: pre-determiner 前位限定词
POS: genitive marker 所有格标记
PRP: pronoun, personal 人称代词
RB: adverb 副词
RBR: adverb, comparative 副词比较级
RBS: adverb, superlative 副词最高级
RP: particle 小品词
SYM: symbol 符号
TO:”to” as preposition or infinitive marker 作为介词或不定式标记
WDT: WH-determiner WH限定词
WP: WH-pronoun WH代词
WP$: WH-pronoun, possessive WH所有格代词
WRB:Wh-adverb WH副词
官方关于词性、依存关系、实体的名词解释:
def explain(term):
"""Get a description for a given POS tag, dependency label or entity type.
term (str): The term to explain.
RETURNS (str): The explanation, or `None` if not found in the glossary.
EXAMPLE:
>>> spacy.explain(u'NORP')
>>> doc = nlp(u'Hello world')
>>> print([w.text, w.tag_, spacy.explain(w.tag_) for w in doc])
"""
if term in GLOSSARY:
return GLOSSARY[term]
GLOSSARY = {
# POS tags
# Universal POS Tags
# http://universaldependencies.org/u/pos/
"ADJ": "adjective",
"ADP": "adposition",
"ADV": "adverb",
"AUX": "auxiliary",
"CONJ": "conjunction",
"CCONJ": "coordinating conjunction",
"DET": "determiner",
"INTJ": "interjection",
"NOUN": "noun",
"NUM": "numeral",
"PART": "particle",
"PRON": "pronoun",
"PROPN": "proper noun",
"PUNCT": "punctuation",
"SCONJ": "subordinating conjunction",
"SYM": "symbol",
"VERB": "verb",
"X": "other",
"EOL": "end of line",
"SPACE": "space",
# POS tags (English)
# OntoNotes 5 / Penn Treebank
#

本文详细介绍了自然语言处理库spaCy的安装、训练模型选择,以及其在中文环境下的主要功能,包括分句、分词、词性标注、停用词识别、命名实体识别、依存分析等。此外,还展示了模型的可视化效果和部分英文功能的示例,如词性还原和名词短语提取。尽管中文模型不支持词性还原和名词短语提取,但文章提供了相关功能的英文模型演示。最后,提到了spacy-streamlit库用于nlp可视化的可能性。

2万+

被折叠的 条评论
为什么被折叠?



