英文文本處理工具庫1 — NLTK

網(wǎng)易云課堂AI工程師(自然語言處理)學習筆記


NLTK所森,全稱Natural Language Toolkit扯再,自然語言處理工具包,是最常用的英文自然語言處理python基礎庫之一殴蹄。

它提供了易于使用的接口哗咆,通過這些接口可以訪問超過50個語料庫和詞匯資源(如WordNet)蜘欲,還有一套用于分類、標記化晌柬、詞干提取姥份、詞性標注、詞義解析和語義推理的文本處理庫年碘,以及工業(yè)級NLP庫的封裝器和一個活躍的討論論壇澈歉。

基本操作:

(1)英文Tokenization(標記化/分詞)

  • 什么是Tokenization?
    文本是不能成段送入模型中進行分析的屿衅,我們通常會把文本切成有獨立含義的字埃难、詞或者短語,這個過程叫做tokenization,這通常是大家解決自然語言處理問題的第一步涡尘。
  • NLTK如何做Tokenization忍弛?
    NLTK中提供了2種不同方式的tokenization,sentence tokenization 和 word tokenization考抄,前者把文本進行“斷句”细疚,后者對文本進行“分詞”。
from nltk import word_tokenize, sent_tokenize
# 斷句
sentences = sent_tokenize(corpus)    #corpus是一個英文文本數(shù)據(jù)集
# 分詞
words = word_tokenize(corpus)

(2)停用詞

  • 什么是停用詞座泳?
    在自然語言處理的很多任務中惠昔,我們處理的主體“文本”中有一些功能詞經(jīng)常出現(xiàn),然而對于最后的任務目標并沒有幫助挑势,甚至會對統(tǒng)計方法帶來一些干擾镇防,我們把這類詞叫做停用詞,通常我們會用一個停用詞表把它們過濾出來潮饱。比如英語當中的定冠詞/不定冠詞(a,an,the等)来氧。

  • NLTK如何去除停用詞?

# 導入內(nèi)置停用詞
from nltk.corpus import stopwords
stop_words = stopwords.words('english')
# 使用列表推導式去掉停用詞
filtered_corpus = [w for w in words if not w in stop_words]

(3)詞性標注

  • 什么是詞性標注香拉?
    詞性(part-of-speech)是詞匯基本的語法屬性啦扬,通常也稱為詞性。
    詞性標注(part-of-speech tagging),又稱為詞類標注或者簡稱標注凫碌,是指為分詞結(jié)果中的每個單詞標注一個正確的詞性的程序扑毡,也即確定每個詞是名詞、動詞盛险、形容詞或者其他詞性的過程瞄摊。
    詞性標注是很多NLP任務的預處理步驟,如句法分析苦掘,經(jīng)過詞性標注后的文本會帶來很大的便利性换帜,但也不是不可或缺的步驟。 詞性標注的最簡單做法是選取最高頻詞性鹤啡,主流的做法可以分為基于規(guī)則和基于統(tǒng)計的方法惯驼,包括:
    基于最大熵的詞性標注
    基于統(tǒng)計最大概率輸出詞性
    基于HMM的詞性標注
  • NLTK如何做詞性標注?
# 詞性標注
from nltk import pos_tag
tags = pos_tag(filtered_corpus)
  • 詞性標注編碼對照表
POS Tag Description Example
CC coordinating conjunction and
CD cardinal number 1, third
DT determiner the
EX existential there there, is
FW foreign word d’hoevre
IN preposition or subordinating conjunction in, of, like
JJ adjective big
JJR adjective, comparative bigger
JJS adjective, superlative biggest
LS list marker 1)
MD modal could, will
NN noun, singular or mass door
NNS noun plural doors
NNP proper noun, singular John
NNPS proper noun, plural Vikings
PDT predeterminer both the boys
POS possessive ending friend‘s
PRP personal pronoun I, he, it
PRP$ possessive pronoun my, his
RB adverb however, usually, naturally, here, good
RBR adverb, comparative better
RBS adverb, superlative best
RP particle give up
TO to to go, to him
UH interjection uhhuhhuhh
VB verb, base form take
VBD verb, past tense took
VBG verb, gerund or present participle taking
VBN verb, past participle taken
VBP verb, sing. present, non-3d take
VBZ verb, 3rd person sing. present takes
WDT wh-determiner which
WP wh-pronoun who, what
WP$ possessive wh-pronoun whose
WRB wh-abverb where, when

(4)chunking/組塊分析

  • 什么是組塊分析递瑰?
    分塊是命名實體識別的基礎祟牲,詞性給出句子成分的屬性,但有時候泣矛,更多的信息(比如句子句法結(jié)構(gòu))可以幫助我們對句子中的模式挖掘更充分疲眷。舉個例子,”古天樂贊助了很多小學“中的頭部古天樂是一個人名(命名實體)您朽。組塊分析是一個非常有用的從文本抽取信息的方法。

  • NLTK如何做組塊分析?
    提取組塊需要用到正則表達式哗总。

from nltk.chunk import RegexpParser
from nltk import sent_tokenize,word_tokenize

# 寫一個匹配名詞的模式
pattern = """
    NP: {<JJ>*<NN>+}
    {<JJ>*<NN><CC>*<NN>+}
    """

# 定義組塊分析器
chunker = RegexpParser(pattern)

# 分句
tokenized_sentence = nltk.sent_tokenize(text)
# 分詞
tokenized_words = [nltk.word_tokenize(sentence) for sentence in tokenized_sentence]
# 詞性標注
tagged_words = [nltk.pos_tag(word) for word in tokenized_words]
# 識別NP組塊
word_tree = [chunker.parse(word) for word in tagged_words]
# word_tree[0].draw()

(5)命名實體識別

  • 什么是命名實體識別几颜?
    命名實體識別(Named Entity Recognition,簡稱NER)讯屈,又稱作“專名識別”蛋哭,是指識別文本中具有特定意義的實體,主要包括人名涮母、地名谆趾、機構(gòu)名、專有名詞等叛本。通常包括兩部分:1) 實體邊界識別沪蓬;2) 確定實體類別(人名、地名来候、機構(gòu)名或其他)跷叉。

  • NLTK如何做命名實體識別?

from nltk import ne_chunk, pos_tag,  word_tokenize
sentence = "John studies at Stanford University."
print(ne_chunk(pos_tag(word_tokenize(sentence))))

命名實體識別也非常推薦大家使用 stanford core nlp modules 作為nltk的NER工具庫营搅,通常來說它速度更快云挟,而且有更改的識別準確度。

(6)Stemming 詞干提取

  • 什么是詞干提茸省园欣?
    詞干提取是指基于簡單的規(guī)則,去掉詞語的后綴休蟹,比如 “ing”, “l(fā)y”, “s”等沸枯。

  • NLTK如何實現(xiàn)詞干提取鸡挠?
    詞干提然员ァ:PorterStemmer 、SnowballStemmer

# 可以用PorterStemmer
from nltk.stem import PorterStemmer
stemmer = PorterStemmer()
stemmer.stem("running")

# 也可以用
from nltk.stem import SnowballStemmer
stemmer2 = SnowballStemmer("english")
stemmer2.stem("growing")

(7)Lemmatizing 詞形還原

  • 什么是詞形還原拣展?
    詞形還原與詞干提取類似彭沼,但比詞干提取更加有效,因為它把詞語轉(zhuǎn)換為它的詞根备埃,而不僅僅是去掉后綴姓惑。它利用了整個詞表,進行形態(tài)學分析以得到詞根按脚。因此于毙,比起詞干提取,我們更傾向于詞形還原辅搬,不過在NLTK中唯沮,詞干提取的速度比較快脖旱。

  • NLTK如何實現(xiàn)詞形還原?

from nltk.stem import WordNetLemmatizer
lemmatizer = WordNetLemmatizer()
lemmatizer.lemmatize("makes")

? ? 新年快樂 ? ?
所有的愿望都會實現(xiàn)

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末介蛉,一起剝皮案震驚了整個濱河市萌庆,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌币旧,老刑警劉巖践险,帶你破解...
    沈念sama閱讀 217,826評論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異吹菱,居然都是意外死亡巍虫,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,968評論 3 395
  • 文/潘曉璐 我一進店門鳍刷,熙熙樓的掌柜王于貴愁眉苦臉地迎上來占遥,“玉大人,你說我怎么就攤上這事倾剿】昶担” “怎么了?”我有些...
    開封第一講書人閱讀 164,234評論 0 354
  • 文/不壞的土叔 我叫張陵前痘,是天一觀的道長凛捏。 經(jīng)常有香客問我,道長芹缔,這世上最難降的妖魔是什么坯癣? 我笑而不...
    開封第一講書人閱讀 58,562評論 1 293
  • 正文 為了忘掉前任,我火速辦了婚禮最欠,結(jié)果婚禮上示罗,老公的妹妹穿的比我還像新娘。我一直安慰自己芝硬,他們只是感情好蚜点,可當我...
    茶點故事閱讀 67,611評論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著拌阴,像睡著了一般绍绘。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上迟赃,一...
    開封第一講書人閱讀 51,482評論 1 302
  • 那天陪拘,我揣著相機與錄音,去河邊找鬼纤壁。 笑死左刽,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的酌媒。 我是一名探鬼主播欠痴,決...
    沈念sama閱讀 40,271評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼迄靠,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了斋否?” 一聲冷哼從身側(cè)響起梨水,我...
    開封第一講書人閱讀 39,166評論 0 276
  • 序言:老撾萬榮一對情侶失蹤拭荤,失蹤者是張志新(化名)和其女友劉穎茵臭,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體舅世,經(jīng)...
    沈念sama閱讀 45,608評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡旦委,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,814評論 3 336
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了雏亚。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片缨硝。...
    茶點故事閱讀 39,926評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖罢低,靈堂內(nèi)的尸體忽然破棺而出查辩,到底是詐尸還是另有隱情,我是刑警寧澤网持,帶...
    沈念sama閱讀 35,644評論 5 346
  • 正文 年R本政府宣布宜岛,位于F島的核電站,受9級特大地震影響功舀,放射性物質(zhì)發(fā)生泄漏萍倡。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,249評論 3 329
  • 文/蒙蒙 一辟汰、第九天 我趴在偏房一處隱蔽的房頂上張望列敲。 院中可真熱鬧,春花似錦帖汞、人聲如沸戴而。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,866評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽所意。三九已至,卻和暖如春鹿鳖,著一層夾襖步出監(jiān)牢的瞬間扁眯,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,991評論 1 269
  • 我被黑心中介騙來泰國打工翅帜, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留姻檀,地道東北人。 一個月前我還...
    沈念sama閱讀 48,063評論 3 370
  • 正文 我出身青樓涝滴,卻偏偏與公主長得像绣版,于是被迫代替她去往敵國和親胶台。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 44,871評論 2 354

推薦閱讀更多精彩內(nèi)容

  • 常用概念: 自然語言處理(NLP) 數(shù)據(jù)挖掘 推薦算法 用戶畫像 知識圖譜 信息檢索 文本分類 常用技術(shù): 詞級別...
    御風之星閱讀 9,181評論 1 25
  • 命名實體識別 命名實體的提出源自信息抽取問題杂抽,即從報章等非結(jié)構(gòu)化文本中抽取關于公司活動和國防相關活動的結(jié)構(gòu)化信息诈唬,...
    我偏笑_NSNirvana閱讀 10,251評論 1 35
  • src: http://www.zmonster.me/2016/06/08/use-stanford-nlp-p...
    阿o醒閱讀 17,230評論 2 12
  • 營銷本質(zhì),99%營銷人都不懂缩麸! 營銷前線 1月16日 你認為營銷本質(zhì)是什么铸磅?一千個人有一千個答案。 你可能說杭朱,營銷...
    探險少女O閱讀 244評論 0 0
  • 今天是我參加挑戰(zhàn)的第22天 今天分享的話題 :改變不了別人 那就先改變自己 今天是我老公的生日阅仔,結(jié)婚7年,這是...
    王琦2020閱讀 230評論 0 1