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', '城市')]

 

posted @ 2024-04-25 13:22  慕尘  阅读(257)  评论(0编辑  收藏  举报