nltk 分句、分詞、詞幹提取、詞型還原
print("**********案例1:分句、分詞***************")
import
nltk.tokenize as tk
doc ="
are you curious about tokenization?
""let's see how it works! "\
"we need to analyze a couple of sentences ""
with punctuations to see it in action.
(doc)
#按句拆分:tk.sent_tokenize(doc)
#問:tk.sent_tokenize()為何能識別出到**是一句?
#答:1、看首字母是大寫 ;2、結尾有標點符號
tokens =tk.sent_tokenize(doc)
for i,token in
enumerate(tokens):
print("
%2d" % (i+1),token)
print("
-----------------------------")
#按詞拆分:tk.word_tokenize(doc)
tokens =tk.word_tokenize(doc)
for i,token in
enumerate(tokens):
print("
%2d" % (i+1),token)
#按詞和標點拆分:tk.wordpuncttokenizer().tokenize(doc)
tokenizer=tk.wordpuncttokenizer()
tokens =tokenizer.tokenize(doc)
for i,token in
enumerate(tokens):
print("
%2d" % (i+1),token)
print("
**********===案例2:詞幹提取、詞型還原***************====
")
#匯入下面三種詞幹提取器進行對比
import
nltk.stem.porter as pt
import
nltk.stem.lancaster as lc
import
nltk.stem.snowball as sb
#匯入nltk.stem用來詞型還原
import
nltk.stem as ns
words = ['
table
', '
probably
', '
wolves
', '
playing',
'is', '
dog', '
the', '
beaches
', '
grounded',
'dreamt
', '
envision']
(words)
print("
----------詞幹提取-------------")
#在名詞和動詞中,除了與數和時態有關的成分以外的核心成分。
#詞幹並不一定是合法的單詞
pt_stemmer = pt.porterstemmer() #
波特詞幹提取器
lc_stemmer = lc.lancasterstemmer() #
蘭卡斯詞幹提取器
sb_stemmer = sb.snowballstemmer("
english
")#思諾博詞幹提取器
for word in
words:
pt_stem =pt_stemmer.stem(word)
lc_stem =lc_stemmer.stem(word)
sb_stem =sb_stemmer.stem(word)
print("
%8s %8s %8s %8s
" %(word,pt_stem,lc_stem,sb_stem))
print("
----------詞型還原器---------------")
#詞型還原:複數名詞->單數名詞 ;分詞->動詞原型
#單詞原型一定是合法的單詞
lemmatizer =ns.wordnetlemmatizer()
for word in
words:
#將名詞還原為單數形式
n_lemma = lemmatizer.lemmatize(word, pos='n'
)
#將動詞還原為原型形式
v_lemma = lemmatizer.lemmatize(word, pos='v'
)
print('
%8s %8s %8s
' % (word, n_lemma, v_lemma))
NLTK在去停用詞 分詞 分句以及詞性標註的使用
因為實習的緣故,所以有機會接觸到了自然語言處理的一些方面。這裡主要總結一下在python環境下進行自然語言處理的相關包和可能會出現的相關錯誤,目前接觸的都比較 low,但是還是想要記錄下來。nltk是 python 下處理語言的主要工具包,可以實現去除停用詞 詞性標註以及分詞和分句等。安裝nltk,...
02 分支結構
bool資料型別 bool資料型別,是 一種表 示 非真即假的資料型別,布林型別的變數只有 yes和no兩個值。yes表 示表示式結果為真,no表 示表示式結果為假 bool a yes 在c預言中,認為非0即為真.分 語句中,經常使 用bool值做判斷,判斷執 行if語句還是else語句 迴圈結構...
二分答案0 2
0.2 目錄例題講解 二分答案是對答案用二分的方式進行列舉,通過縮小範圍逐步逼近答案,是一種高效的列舉方式,主要有二分小數及二分整數兩種.通常體現為 最 值最 在實際做題時不一定嚴格二分,三分甚至更多分都可以.在二分時,要注意r的範圍,如果過大,會引起不必要的時間消耗.一般不用理論最大值,即整數最大...