目錄
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))#查找頻率
詞長可以幫助我們理解作者、文本和語言之間的差異
Java學習筆記:語言基礎
Java學習筆記:語言基礎 2014-1-31 ? 最近開始學習Java,目的倒不在于想深入的掌握Java開發,而是想了解Java的基本語法,可以閱讀Java源代碼,從而拓展一些知識面.同時為學習An ...
[java學習筆記]java語言核心----面向對象之this關鍵字
一.this關鍵字 體現:當成員變量和函數的局部變量重名時,可以使用this關鍵字來區別:在構造函數中調用其它構造函數 原理: ??????? 代表的是當前對象. ??????? this就是所在函數 ...
[java學習筆記]java語言核心----面向對象之構造函數
1.構造函數概念 特點: 函數名與類名相同 不用定義返回值類型 沒有具體的返回值 作用: ?????????????? 給對象進行初始化 注意: 默認構造函數 多個構造函數是以重載出現的 一個類中如果 ...
IOS學習筆記07---C語言函數-printf函數
IOS學習筆記07---C語言函數-printf函數 0 7.C語言5-printf函數 ------------------------- ----------------------------- ...
IOS學習筆記06---C語言函數
IOS學習筆記06---C語言函數 -------------------------------------------- ?qq交流群:創夢技術交流群:251572072 ???????????? ...
python學習筆記-(一)初識python
1.python的前世今生 想要充分的了解一個人,無外乎首先充分了解他的過去和現在:咱們學習語言也是一樣的套路 1.1 python的歷史 Python(英國發音:/?pa?θ?n/ 美國發音:/?p ...
python學習筆記系列----(一)python簡介
一個月前,就按下決心要系統的學習下python了,雖然之前有學習過java,學習過c++,也能較為熟練的使用java做自動化測試看懂c++里的業務邏輯,但是實際上有那么多的東西自己還是不清楚,今天下定 ...
Python學習筆記(一)初識Python以及安裝Python
一.Python簡介 1.Python發展史 Python 是由 Guido van Rossum 在八十年代末和九十年代初,在荷蘭國家數學和計算機科學研究所設計出來的. Python 本身也是由諸多 ...
ios開發學習筆記001-C語言基礎知識
先來學習一下C語言基礎知識,總結如下: 在xcode下編寫代碼. 1.編寫代碼 2.編譯:cc –c 文件名.c 編譯成功會生成一個 .o的目標文件 3.鏈接:把目標文件.o和系統自帶的庫合并在一起, ...
隨機推薦
[書目20160624]Android應用開發從入門到精通
盧海東 著 第1章 揭開神秘面紗——Android系統簡介 1?? 1.1 認識Android系統 2?? 1.1.1 Android成長歷程 2?? 1.1.2 發行版本 3?? 1.1.3 得到大 ...
cpu進程調度---RT Throttling【轉】
轉自:http://book.2cto.com/201302/16291.html RT Throttling是對分配給實時進程的CPU時間進行限制的功能.使用實時調度策略的進程由于bug等出現不可控 ...
PHP 概述 特點 基礎語法
PHP是什么 http://php.net/manual/zh/intro-whatis.php#intro-whatis? PHP(Hypertext Preprocessor,超文本預處理器)是一 ...
Qt日常備注(函數/接口實現)
1.判斷QString是否為純數字 2.查找自身最長重復子字符串 3.樹形列表復選框操作 4.更改文件權限 5.判斷系統64位 6.文件生成md5值 7.版本號比較(字符串比較) //-----實現- ...
App界面設計規范-字體規范
通過對不同類型的app進行總結,總結出app的字體規范. 一.字體選擇 1.IOS:蘋果ios 9系統開始,系統最新的默認中文字體是:蘋方.英文字體是:?San Francisco 2.Android ...
Win10 安裝 Anaconda3 用 Anaconda3 安裝TensorFlow 1.2 (只支持python3.5)
Win10 安裝 Anaconda3 1.安裝Anaconda3 選擇相應的Anaconda進行安裝,下載地址點擊這里,下載對應系統版本的Anaconda,官網現在的版本是Anaconda 4.3.1 ...
Lotusscript統計在線用戶數
使用notessession的SendConsoleCommand方法向服務器控制臺發送“show inetusers”命令,該命令返回一個結果(字符串),字符串類似如下: admin?? 192.1 ...
idea 安裝uml 畫圖工具
centos7上: yum -y install graphviz mac上: brew install Graphviz file -> setting->plugins 安裝plant ...
文件夾操作之判斷是否存在(Directory)
Directory類用于操作文件夾,用于創建.移動和枚舉目錄和子目錄的靜態方法.DirectoryInfo類用于典型操作,如復制,移動,重命名,創建和刪除目錄.他們都可用于獲取和設置相關屬性或有關創建 ...
socket的幾個配置函數
body, table{font-family: 微軟雅黑; font-size: 13.5pt} table{border-collapse: collapse; border: solid gra ...