import spacy # 導包
# 加載模型,并排除掉不需要的components
nlp = spacy.load("zh_core_web_sm", exclude=("tagger", "parser", "senter", "attribute_ruler", "ner"))
# 對句子進行處理
doc = nlp("自然語言處理是計算機科學領域與人工智能領域中的一個重要方向。它研究能實現(xiàn)人與計算機之間用自然語言進行有效通信的各種理論和方法。")
# for循環(huán)獲取每一個token與它對應的向量
for token in doc:
# 這里為了方便展示,只截取5位,但實際該模型將中文詞編碼成了96維的向量
? ? print(token.text, token.tensor[:5])
在官方提供的模型中,具有tok2vec這個組件,說明該模型可以對詞進行embedding,很方便。最終的輸出為:
自然 [-0.16925007 -0.8783153 -1.4360809 0.14205566 -0.76843846]
語言 [ 0.4438781? -0.82981354 -0.8556605? -0.84820974 -1.0326502 ]
處理 [-0.16880168 -0.24469137? 0.05714838 -0.8260342? -0.50666815]
是 [ 0.07762825? 0.8785285? 2.1840482? 1.688557? -0.68410844]
... // 略
和 [ 0.6057179? 1.4358768? 2.142096? -2.1428592 -1.5056412]
方法 [ 0.5175674? -0.57559186 -0.13569726 -0.5193214? 2.6756258 ]
。 [-0.40098143 -0.11951387 -0.12609476 -1.9219975? 0.7838618 ]
(注:spacy的中文包安裝代碼 python -m spacy download zh_core_web_sm)