nltk和python的關系_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))#查找頻率

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

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 ...

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/530901.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/530901.shtml
英文地址,請注明出處:http://en.pswp.cn/news/530901.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

python七段數碼管倒計時_python實現七段數碼管和倒計時效果

8是典型的七段數碼管的例子,因為剛好七段都有經過,這里我寫的代碼是從1開始右轉。這是看Mooc視頻寫的一個關于用七段數碼管顯示當前時間# -*-coding:utf-8 -*-import turtle as timport timedef drawGap():t.penup()t.fd(5)def drawLine(draw):drawGap()…

rda分析怎么做_數量生態學筆記||冗余分析(RDA)

上一節數量生態學筆記||冗余分析(RDA)概述中,我們回顧了RDA的計算過程,不管這個過程我們有沒有理解透徹,我希望你能知道的是:RDA是響應變量矩陣與解釋變量之間多元多重線性回歸的擬合值矩陣的PCA分析。本節我們就是具體來看一個RD…

mysql 服務器管理員_mysql 查看數據庫管理員

mysql 查看數據庫管理員云服務器(Elastic Compute Service,簡稱ECS)是阿里云提供的性能卓越、穩定可靠、彈性擴展的IaaS(Infrastructure as a Service)級別云計算服務。云服務器ECS免去了您采購IT硬件的前期準備,讓您像使用水、電、天然氣等公共資源一樣…

python中有哪些重要的書寫規則_一文讀懂Python代碼的書寫規范

Python代碼的書寫規范1. 一致性的建議打破一條既定規則的兩個好理由當應用這個規則將導致代碼可讀性下降,即使對于某人來說他已經習慣于按照這條規則來閱讀代碼了為了和周圍的代碼保持一致而打破規則(也許是歷史原因)2. 代碼的布局縮進4個空格代碼行行最大長度 : 79字符推薦長度…

二進制文件mysql創表_MySQL_MYSQL中如何存取二進制文件,首先創建測試表testtable CREATE TA - phpStudy...

MYSQL中如何存取二進制文件首先創建測試表testtableCREATE TABLE testtable ( id INT(5) NOT NULL AUTO_INCREMENT PRIMARY KEY,filename CHAR(255),data LONGBLOB );將文件存入表中mysql_connect( "localhost", "root", "password"); //連接數據…

樹莓派 php mysql 中文_使用樹莓派(raspberry pi)搭建網站(nginx+php+mysql+ddclient)

標簽: 樹莓派 raspberrypi php 網站 mysql分類: Linux技術最近在研究學習PHP,有時候想隨時就學習,所以就決定搭建一個網站,隨時可以進行學習,因為要24小時在線,要低功耗和安靜,所以選…

mysql從庫應用負載_線上MySQL數據庫高負載的解決思路--再次論程序應用索引的重要性...

前言:過去的筆記整理而得,未免丟失,發布個人博客。[2012年的資料筆記]場景:數據庫的負載飆升,CPU高達99%。查看進程。通過猜測推理,定位了一些select語句363478427 | apps_read | 192.168.1.113:48945 …

python獲取方法的裝飾方法_python中的方法和裝飾器

[TOC]裝飾器python中的裝飾器(decorator)是在pep 318中被首次引入,它的本質是一個函數這個函數是接受其它參數為參數,并且用一個新的,修改后的函數作為替換,最常見的裝飾器就classmethod和staticmethoddef happy(f):return lambda…

一幫一python_[python]L1-030?一幫一?(15分)

L1-030 一幫一 (15分)“一幫一學習小組”是中小學中常見的學習組織方式,老師把學習成績靠前的學生跟學習成績靠后的學生排在一組。本題就請你編寫程序幫助老師自動完成這個分配工作,即在得到全班學生的排名后,在當前尚未分組的學生中&#xf…

java書面_Java程序猿的書面采訪String3

public class SameString {//思想二:每個字符都相應著自己的ASC碼,第一個思想的算法復雜度為O(nlogn)。一般能夠利用空間來減少時間復雜度//能夠開辟一個大小為256的數組空間,而且將256個數組元素都置為0,然后遍歷第一個字符串把字…

java fangfa_daicanfangfa java中的方法 剛入門的分不清帶參方法的作用和用處 這個可以詳細的講解如何使用帶參方法 - 下載 - 搜珍網...

第14章 帶參數的方法/01 教學演示示例/示例1:帶一個參數的方法/StudentsBiz.java第14章 帶參數的方法/01 教學演示示例/示例1:帶一個參數的方法/TestAdd.java第14章 帶參數的方法/01 教學演示示例/示例2:帶多個參數的方法/StudentsBiz.java第…

java sqlite 工具類_Java 工具類 - JDBC通用操作基類 BaseDao

封裝了增刪改查功能適用于MySQL、Oracle、SQLServer、DB2、Sybase、JTDS、PostgreSql、SQLite、Derby、H2、HSQLDB、ODBC 等等數據庫,有需要的還可以自己增加。package com.tgb.hz.jdbc;import org.slf4j.Logger;import org.slf4j.LoggerFactory;import javax.namin…

java 跨域 下載文件_文件下載重命名(可跨域)

一、正常情況下,我們都如此下載文件并修改文件名,在a標簽上面添加download屬性var link document.createElement(a);link.href file.url;link.download file.name;link.target"_blank";link.click();由于a.download跨域會失效,上…

java hibernate 插入數據_[Java教程]hibernate 返回新插入數據的Id

[Java教程]hibernate 返回新插入數據的Id0 2015-08-28 10:00:11例如 表明 studentInfoString sql"set set nocount on studentInfo(列名,列名) values(值,值);select identity as inserId";java代碼:public int executeCount(String sql, Map paramMap) {…

java輸入行數打印菱形_JAVA題,輸入行數,輸入列數,輸出一個菱形

展開全部1,冒泡排序1. /**2. * JAVA排序算法實現代碼-冒泡(Bubble Sort)排序。3. *4. *5. *6. */7. public class Test {8. public static void main(String[] args) {9. int[] a ;10.11. System.out.print("排序前: ");12.13. for (int i 0; i < a.length; i)1…

mysql 密碼大小寫_MySQL數據庫加密和解密~認證登陸密碼(mysql.user)和MySQL不區分大小寫...

MySQL數據庫認證密碼有兩種方式:1&#xff1a;MySQL 4.1版本之前是MySQL323加密2&#xff1a;MySQL 4.1和之后的版本都是MySQLSHA1加密還有函數:AES_ENCRYPT()加密函數和AES_DECRYPT()解密函數和MD5()加密。MySQL數據庫中自帶old_password(str)和password(str)函數,前者是MySQL…

三星手機 java_如何在三星手機上安裝Java ME應用程序?

我的手機應該可以運行&#xff1a;JavaTM&#xff1a;MIDP 2.0,基于CLDC 1.1的應用程序.但是,無論我嘗試在其上安裝哪個應用程序,我都會收到錯誤&#xff1a;已下載的JAR無效我已經嘗試在Netbeans上構建Java ME項目,使用指定的MIDP 2.0和CLDC 1.1.這些應用程序很簡單,使用Netbe…

openshift 3 mysql_最新OpenShift免費空間申請與使用教程-1G內存1G空間支持PHP和MysqL

一、OpenShift空間申請使用前必備工具1、OpenShift官網&#xff1a;1、官方網站&#xff1a;https://www.openshift.com/2、OpenShift V3&#xff1a;https://manage.openshift.com/2、Github賬號(或者其他的git倉庫也可以..)。注冊git倉庫是為了方便的實現代碼的同步&#xff…

python 簡單web音頻_Python Twisted web服務器音頻fi

我嘗試用python中的twisted創建一個簡單的web服務器。不過&#xff0c;我無法提供m4a音頻文件。在在當前程序中&#xff0c;當我加載http://localhost:8880/mp3.html時&#xff0c;它可以正常工作。它顯示音頻播放器和mp3播放。此外&#xff0c;程序同時打印“/mp3.html”和/測…

cpython教程_python高性能擴展工具-cython教程1快速入門

Cython不僅僅是一種編程語言。它的起源可以追溯到SAGE數學軟件包&#xff0c;它用于提高數學計算性能&#xff0c;例如涉及矩陣的計算。更一般地說&#xff0c;我傾向于將Cython視為SWIG的替代品&#xff0c;為本機代碼生成非常好的Python綁定。SWIG是最早和最好之一&#xff0…