日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 人文社科 > 生活经验 >内容正文

生活经验

python nltk book_NLTK学习笔记(一):语言处理和Python

發布時間:2023/11/27 生活经验 33 豆豆
生活随笔 收集整理的這篇文章主要介紹了 python nltk book_NLTK学习笔记(一):语言处理和Python 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

目錄

nltk資料下載

import nltk

nltk.download()

其中,download() 參數默認是all,可以在腳本里面加上nltk.download(需要的資料庫) 來進行下載

文本和詞匯

首先,通過from nltk.book import * 引入需要的內置9本書

搜索文本

上下文:Text.concordance('monstrous') ,concordance是一致性的意思。即在Text對象中monstrous出現的上下文

相同上下文單詞:Text.similar('monstrous') ,查找哪些詞還有相同的上下文 。(比如 the__size 空格上可以是big/small),這個函數會自動找出來并返回。

多個單詞上下文: Text.common_contexts(['very','monstrous']) ,返回共用兩個或兩個以上詞匯的上下文

多個單詞頻率繪圖工具: Text.dispersion_plot(['citizens','freedom']) , 可以得到很好看的離差散點圖

計數詞匯(去重、定位)

不去重的計算用BIF里面的len() 就可以了:len(text1)

去重計算 需要用到內置結構set: len(set(text1))

可以使用nltk內置BIF:Text.count(word) 查找單詞出現次數;使用Text.index(word)可以進行定位

詞鏈表

主要是結合python內置list的特點,可以進行鏈接等一些鏈表操作,十分方便,對于一些基本的list操作,可以自行看文檔

自然語言簡單數學統計

頻率分布

用法:FreqDist(WordList) ,參數可以實List或者其子類,所以 Text(text1,text2...)也可以作為參數。函數返回字典形式,可以調用dict.keys() 查詢所有單詞和符號

from nltk import *

fdist = FreqDist(text1)

print(fdist['whale'])

可以通過 fdist.plot(TopK,cumulative=True) 畫出來出現頻率前K的詞匯的光滑曲線,去掉第二個參數,是折線圖。個人感覺曲線好看。。。

對于只出現一次的詞匯,通過fdist.hapaxes() 返回的list查看。

細粒度的選擇詞

細粒度: 細粒度模型,通俗的講就是將業務模型中的對象加以細分,從而得到更科學合理的對象模型,直觀的說就是劃分出很多對象。對于詞匯,我們可能需要長度大于5的不重復詞匯,這就是一個Model

v = set(text1)

long_words = [w for w in v if len(w) > 5]

如果我們需要頻率大于7,長度大于10的呢?

fdist = FreqDist(text1)

long_words = [w for w in set(text1) if len(w)>10 and fdist[w] > 7]

雙連詞和詞匯搭配

雙連詞就是n-gram模型中n=2,組成的詞鏈表

在nltk里面有BIF,bigrams(wordlist) ,生成詞鏈表

>>> list(bigrams(['a','b','c']))

[('a', 'b'), ('b', 'c')]

通過這個詞鏈表,我們可以找到搭配(定義:不經常在一起出現的詞序列).Text.collocations() 可以查找出現頻率比預期頻率更頻繁的雙連詞

>>> text4.collocations()

United States; fellow citizens; four years; years ago; Federal

Government; General Government; American people; Vice President; Old

World; Almighty God; Fellow citizens; Chief Magistrate; Chief Justice;

God bless; every citizen; Indian tribes; public debt; one another;

foreign nations; political parties

詞長分布

代碼實現:

fdist = FreqDist([len(w) for w in text1])

print(fdist.items())

print(fdist.freq(3))#查找頻率

詞長可以幫助我們理解作者、文本和語言之間的差異

總結

以上是生活随笔為你收集整理的python nltk book_NLTK学习笔记(一):语言处理和Python的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。