5 4 自動標註

2021-10-03 13:39:52 字數 4242 閱讀 6137

最重要的乙個專案!

from nltk.corpus import brown

brown_tagged_sents = brown.tagged_sents(categories =

'news'

)brown_sents = brown.sents(categories=

'news'

)

import nltk

tags =

[tag for

(word, tag)

in brown.tagged_words(categories=

'news')]

nltk.freqdist(tags)

.max

()

『nn』

# 標記流程,全部標記為nn

raw =

'i do not like green eggs and ham, i do not like them sam i am!'

tokens = nltk.word_tokenize(raw)

default_tagger = nltk.defaulttagger(

'nn'

)default_tagger.tag(tokens)

[(『i』, 『nn』),

(『do』, 『nn』),

(『not』, 『nn』),

(『like』, 『nn』),

(『green』, 『nn』),

(『eggs』, 『nn』),

(『and』, 『nn』),

(『ham』, 『nn』),

(』,』, 『nn』),

(『i』, 『nn』),

(『do』, 『nn』),

(『not』, 『nn』),

(『like』, 『nn』),

(『them』, 『nn』),

(『sam』, 『nn』),

(『i』, 『nn』),

(『am』, 『nn』),

(』!』, 『nn』)]

default_tagger.evaluate(brown_tagged_sents)
0.13089484257215028

patterns =

[(r'.*ing$'

,'vbg'),

(r'.*ed$'

,'vbd'),

(r'.*es$'

,'vbz'),

(r'.*ould$'

,'md'),

(r'.*\'s$'

,'nn$'),

(r'.*s$'

,'nns'),

(r'^-?[0-9]+(.[0-9]+)?$'

,'cd'),

# cardinal numbers 基數詞

(r'.*'

,'nn'),

]regexp_tagger = nltk.regexptagger(patterns)

regexp_tagger.tag(brown_sents[3]

)

[(』``』, 『nn』),

(『only』, 『nn』),

(『a』, 『nn』),

(『relative』, 『nn』),

(『handful』, 『nn』),

(『of』, 『nn』),

(『such』, 『nn』),

(『reports』, 『nns』),

(『was』, 『nns』),

(『received』, 『vbd』),

("』』", 『nn』),

(』,』, 『nn』),

regexp_tagger.evaluate(brown_tagged_sents)
0.20326391789486245

fd = nltk.freqdist(brown.words(categories=

'news'))

cfd = nltk.conditionalfreqdist(brown.tagged_words(categories=

'news'))

most_freq_words =

list

(fd.keys())

[:100]

likely_tags =

dict

((word, cfd[word]

.max()

)for word in most_freq_words)

# print(likely_tags)

baseline_tagger = nltk.unigramtagger(model = likely_tags)

# 利用「查詢標註器」的模型!

baseline_tagger.evaluate(brown_tagged_sents)

0.3329355371243312

# 上面的模型執行在未標註的輸入文字上

sent = brown.sents(categories=

'news')[

3]baseline_tagger.tag(sent)

[(』', '』),

(『only』, 『rb』),

(『a』, 『at』),

(『relative』, 『jj』),

(『handful』, 『nn』),

(『of』, 『in』),

(『such』, 『jj』),

(『reports』, 『nns』),

(『was』, 『bedz』),

(『received』, 『vbd』),

("』』", 「』』」),

(』,』, 『,』),

baseline_tagger = nltk.unigramtagger(model=likely_tags, backoff=nltk.defaulttagger(

'nn'))

# 給模型增加預設標記!

# 基於頻率標註的小專案!!!!!

沖壓模板自動標註LISP 自動標註 LSP

自動標註 思路 1.選擇物件 2.指定基點 3.輸入比例 4.獲取特徵點座標 5.提煉 x 座標,並排序 6.提煉 y 座標,並排序 7.標註 總控 zml84 於 2009 05 07 defun c tt if and setq ss ssget 0 line,arc,pline setq pt...

NLTK中文詞性自動標註

學習自然語言處理,一定會參考nltk,主要是學習它的思路,從設計地角度看看能做什麼.其本質就是把語言看成字串,字串組,字串集,尋找其間規律 nltk是多語言支援的,但目前網上的例程幾乎沒有用nltk處理中文的,其實可以做。比如標註功能,它自身提供了帶標註的中文語庫 繁體語料庫sinica treeb...

自動標註音標公升級版

option explicit private declare sub sleep lib kernel32 byval dwmilliseconds as long 為選擇的文字中的每個單詞注上音標 sub start on error resume next 文件dim document as ...