Python的Spacy
spaCy是一个基于Python编写的开源自然语言处理库。
基于自然处理领域的最新研究,spaCy提供了一系列高效且易用的工具,用于文本预处理、文本解析、命名实体识别、词性标注、句法分析和文本分类等任务。
安装
pip install spacy
查看版本
import spacy
print(spacy.__version__)
安装中文模型
python -m spacy download zh_core_web_sm
注:
安装可能会失败,可采用离线安装
下载 https://github.com/explosion/spacy-models/releases
pip install zh_core_web_sm-3.7.0.tar.gz
1.分词
test.py
import spacy # 中文文本,需要加载中文模型 nlp = spacy.load("zh_core_web_sm") text = "这是一句话啊." doc = nlp(text) for token in doc: print(token.text)
python test.py
这是
一句话
啊
.
2.标注词性
import spacy # 中文文本,需要加载中文模型 nlp = spacy.load("zh_core_web_sm") text = "这是一句话啊." doc = nlp(text) # 分词 tokens = [token.text for token in doc] print("分词结果:", tokens) # 词性标注 pos_tags = [(token.text, token.pos_) for token in doc] print("词性标注结果:", pos_tags)
python test.py
分词结果: ['这是', '一句话', '啊', '.']
词性标注结果: [('这是', 'VERB'), ('一句话', 'NOUN'), ('啊', 'PART'), ('.', 'PUNCT')]
3.实体识别
import spacy # 中文文本,需要加载中文模型 nlp = spacy.load("zh_core_web_sm") text = "济南是个美丽的城市." doc = nlp(text) # 实体识别 entities = [(ent.text, ent.label_) for ent in doc.ents] print("实体识别结果:", entities)
python test.py
实体识别结果: [('济南', 'GPE')]
说明:
GPE 地点性实体(Geo-Political Entity)
4.依存关系分析
import spacy # 中文文本,需要加载中文模型 nlp = spacy.load("zh_core_web_sm") text = "济南是个美丽的城市." doc = nlp(text) #依存关系分析 dependency_tree = [(token.text, token.dep_, token.head.text) for token in doc] print("依存关系分析结果:", dependency_tree)
python test.py
依存关系分析结果: [('济南', 'nsubj', '城市'), ('是', 'cop', '城市'), ('个', 'nummod', '城市'), ('美丽', 'amod', '城市'), ('的', 'mark', '美丽'), ('城市', 'ROOT', '城市'), ('.', 'punct', '城市')]