最重要的乙個專案!
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 ...