自然語言處理基礎技術之詞性標註實戰

2021-09-01 23:42:37 字數 3500 閱讀 6339

安裝:pip install jieba

國內源安裝更快:pip install jieba -i

先導包:jieba.posseg.dt 為預設詞性標註分詞器

標註句子分詞後每個詞的詞性,採用和 ictclas 相容的標記法。

jieba貌似不能處理英文,後面會介紹處理英文的

import jieba.posseg as pseg

words = pseg.cut(

"我愛自然語言處理技術!"

)for word, pos in words:

print

(word, pos)

我 r

愛 v自然語言 l

處理 v

技術 n

! x

安裝:pip install snownlp

國內源安裝:pip install snownlp -i

使用snownlp進行詞性標註

from snownlp import snownlp

model = snownlp(u'我愛自然語言處理技術!'

)for word, pos in model.tags:

print

(word, pos)

我 r

愛 v自然 n

語言 n

處理 vn

技術 n

! w

安裝:pip install thulac

國內源安裝:pip install thulac -i

使用thulac進行詞性標註

import thulac

thulac_model = thulac.thulac(

)wordseg = thulac_model.cut(

"我愛自然語言處理技術!"

)print

(wordseg)

model loaded succeed

[['我', 'r'], ['愛', 'v'], ['自然', 'n'], ['語言', 'n'], ['處理', 'v'], ['技術', 'n'], ['!', 'w']]

安裝:pip install stanfordcorenlp

國內源安裝:pip install stanfordcorenlp -i

使用stanfordcorenlp進行詞性標註

同時支援英文和中文的詞性標註

from stanfordcorenlp import stanfordcorenlp

zh_model = stanfordcorenlp(r'stanford-corenlp-full-2018-02-27'

, lang=

'zh'

)s_zh =

'我愛自然語言處理技術!'

word_pos_zh = zh_model.pos_tag(s_zh)

print

(word_pos_zh)

[('我愛', 'nn'), ('自然', 'ad'), ('語言', 'nn'), ('處理', 'vv'), ('技術', 'nn'), ('!', 'pu')]
eng_model = stanfordcorenlp(r'stanford-corenlp-full-2018-02-27'

)s_eng =

'i love natural language processing technology!'

word_pos_eng = eng_model.pos_tag(s_eng)

print

(word_pos_eng)

[('i', 'prp'), ('love', 'vbp'), ('natural', 'jj'), ('language', 'nn'), ('processing', 'nn'), ('technology', 'nn'), ('!', '.')]
安裝:pip install pyhanlp

國內源安裝:pip install pyhanlp -i

使用pyhanlp進行詞性標註

from pyhanlp import

*s =

'我愛自然語言處理技術!'

word_seg = hanlp.segment(s)

for term in word_seg:

print

(term.word, term.nature)

我 rr

愛 v自然語言處理 nz

技術 n

! w

安裝:pip install nltk

國內源安裝:pip install nltk -i

nltk只能處理英文

import nltk

s ='i love natural language processing technology!'

s = nltk.word_tokenize(s)

s_pos = nltk.pos_tag(s)

print

(s_pos)

[('i', 'prp'), ('love', 'vbp'), ('natural', 'jj'), ('language', 'nn'), ('processing', 'nn'), ('technology', 'nn'), ('!', '.')]
安裝:pip install spacy

國內源安裝:pip install spacy -i

import spacy
eng_model = spacy.load(

'en'

)s =

'i love natural language processing technology!'

詞性標註
s_token = eng_model(s)

自然語言處理之詞性標註

詞性標註作為nlp領域的一項基本任務,其與分詞任務同等重要,是很多任務的基礎,比如句法分析,命名實體識別等。命名實體識別在一定程度上也屬於標註任務,不過,難度相比一般的詞性標註而言,上公升了不少。對於詞性標註而言,不論是中文還是英文,其難點在於對於不同的語境,詞性的多變化 另一方面,隨著社會的發展,...

自然語言處理 詞性標註(北大,賓州)

詞性標註在中文領域暫無統一的標註標準,最常見較為主流的是北大和賓州詞性標註集。詞性編碼 詞性名稱 註解ag 形語素形容詞語素。形容詞 為a,語素 為g前面置以a a形容詞 取英語形容詞adjective的第1個字母 ad副形詞 直接作狀語的形容詞。形容詞 a和副詞 d並在一起 an名形詞 具有名詞功...

自然語言處理系列二十一》詞性標註》詞性標註原理

分布式機器學習實戰 人工智慧科學與技術叢書 陳敬雷編著 清華大學出版社 總結詞性標註 part of speech tagging,pos tagging 也被稱為語法標註 grammatical tagging 或詞類消疑 word category disambiguation 是語料庫語言學 ...