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