數(shù)據(jù)分析與挖掘

| 2022-09-14 admin

一、數(shù)據(jù)分析與挖掘

一、數(shù)據(jù)分析與挖掘概述

  1、數(shù)據(jù)分析與挖掘定義及關(guān)系

  數(shù)據(jù)分析:對(duì)已知的數(shù)據(jù)進(jìn)行分析,然后提取出一些有價(jià)值的信息。比如統(tǒng)計(jì)出平均數(shù)、標(biāo)準(zhǔn)差等信息,數(shù)據(jù)分析的數(shù)據(jù)量有時(shí)有時(shí)不會(huì)太大。

  數(shù)據(jù)挖掘:是指對(duì)大量的數(shù)據(jù)進(jìn)行分析與挖掘,得到一些未知的、有價(jià)值的信息等。比如從網(wǎng)站的用戶(hù)或者用戶(hù)行為數(shù)據(jù)中挖掘出用戶(hù)潛在需求信息,從而對(duì)網(wǎng)站進(jìn)行改善等。

  數(shù)據(jù)分析與挖掘密不可分,數(shù)據(jù)挖掘是數(shù)據(jù)分析的提升。

  2、數(shù)據(jù)分析與挖掘的應(yīng)用場(chǎng)景

  數(shù)據(jù)挖掘技術(shù)可以幫助我們更好的發(fā)現(xiàn)事物之間的規(guī)律。

  我們可以利用數(shù)據(jù)挖掘技術(shù)實(shí)現(xiàn)數(shù)據(jù)規(guī)律的探索,比如發(fā)現(xiàn)竊電用戶(hù)、挖掘用戶(hù)潛在需求、實(shí)現(xiàn)信息的個(gè)性化推送、發(fā)現(xiàn)疾病與癥狀、甚至疾病與藥物之間的規(guī)律等等。

  3、數(shù)據(jù)挖掘的過(guò)程

  1. 確定目標(biāo)
  2. 獲取數(shù)據(jù)(自有數(shù)據(jù)、外部數(shù)據(jù)——常用的手段有通過(guò)爬蟲(chóng)采集或者下載一些統(tǒng)計(jì)網(wǎng)站發(fā)布的數(shù)據(jù))
  3. 數(shù)據(jù)探索
  4. 數(shù)據(jù)預(yù)處理(數(shù)據(jù)清洗(去掉臟數(shù)據(jù))、數(shù)據(jù)集成(集中)、數(shù)據(jù)變換(規(guī)范化)、數(shù)據(jù)規(guī)約(精簡(jiǎn)))
  5. 挖掘建模(分類(lèi)、聚類(lèi)、關(guān)聯(lián)、預(yù)測(cè))
  6. 模型評(píng)價(jià)與發(fā)布

  4、數(shù)據(jù)分析與挖掘的相關(guān)模塊

    1、相關(guān)模塊的作用
  1. numpy可以高效處理數(shù)據(jù)、提供數(shù)組支持、很多模塊都依賴(lài)它。比如pandas、scipy、matplotlib都依賴(lài)它,所以這個(gè)模塊時(shí)基礎(chǔ)。
  2. pandas用的最多的一個(gè)模塊,主要用于進(jìn)行數(shù)據(jù)探索和數(shù)據(jù)分析。
  3. matplotlib作圖模塊,解決可視化問(wèn)題
  4. scipy主要進(jìn)行數(shù)值計(jì)算,同時(shí)支持矩陣運(yùn)算,并提供了很多高等數(shù)據(jù)處理功能,比如積分、傅里葉變換、微分方程求解等。
  5. statsmodels模塊主要用于統(tǒng)計(jì)分析
  6. Gensim模塊朱濤用于文本挖掘
  7. sklearn模塊用于機(jī)器學(xué)習(xí),keras模塊用于深度學(xué)習(xí)
    2、相關(guān)模塊的安裝與技巧

  模塊安裝的順序與方式建議如下:

  安裝包下載地址:??https://www.lfd.uci.edu/~gohlke/pythonlibs/??

  1. numpy、mkl(建議下載安裝(包名規(guī)范:numpy-1.15.2+mkl-cp36-cp36m-win_amd64.whl))
  2. pandas(建議網(wǎng)絡(luò)安裝:pip3 install pandas)
  3. matplotlib(建議網(wǎng)絡(luò)安裝:pip3 install matplotlib)
  4. scipy(建議下載安裝(包名規(guī)范:scipy-1.1.0-cp36-cp36m-win_amd64.whl))
  5. statsmodels(建議網(wǎng)絡(luò)安裝:pip3 install statsmodels)
  6. Gensim(建議網(wǎng)絡(luò)安裝:pip3 install Gensim)

二、數(shù)據(jù)分析與挖掘相關(guān)模塊使用

  1、numpy的使用

  numpy的使用教程:????

import numpy

x = numpy.array(["a","33","4","12"])
print(x)
print(x[2])
print(x.sort())
print(x)

  2、pandas的使用

import pandas as pda
import pymysql

conn = pymysql.connect(host="127.0.0.1", user="test", passwd="test", db="chaxun")
sql = "select * from chaxun"
data = pda.read_sql(sql,conn)
des = data.describe()
print(des)

i = pda.read_csv("/data/test.csv")
i.describe()

excel = pda.read_excel("/data/abc.xls")

  3、matplotlib的使用

  直方圖可以很方便知道數(shù)據(jù)的分部情況。

    1、折線圖/散點(diǎn)圖plot

  散點(diǎn)、顏色、線條是可以疊加使用的

import matplotlib.pylab as pyl

x = [1,2,3,4,8]
y = [5,7,1,9,2]

# 繪制:plot(x軸數(shù)據(jù),y軸數(shù)據(jù),展現(xiàn)形式) 默認(rèn)是最基本的折線圖
pyl.plot(x,y,'o')
# 展現(xiàn)

  設(shè)置成不同的顏色

1 c-cyan--青色
2 r-red--紅色
3 m-magente--品紅
4 g-green--綠色
5 b-blue--藍(lán)色
6 y-yellow--黃色
7 k-black--黑色
8

  設(shè)置線條的樣式

1 - 直線
2 -- 虛線
3 -. -.形式
4

  設(shè)置點(diǎn)的樣式

1 s 方形
2 h 六角形
3 H 六角形
4 * 星形
5 + 加號(hào)
6 x x形
7 d 菱形
8 D 菱形
9
pyl.plot(x, y, '--*y')
pyl.show()

  添加圖表的標(biāo)題,標(biāo)題

pyl.plot(x, y, '--*r')
pyl.title('test')
pyl.xlabel("date")
pyl.ylabel('score')
pyl.show()

  設(shè)定x與y軸的范圍:在一個(gè)圖中繪制多條

x1 = [4,15,9,17,20]
y1 = [2,3,7,19,21]
pyl.plot(x, y, '--*r')
pyl.plot(x1, y1, '-Hy')
pyl.title('test')
pyl.xlabel("date")
pyl.ylabel('score')
pyl.xlim(0,30)
pyl.ylim(0,25)
pyl.show()
    2、直方圖

  隨機(jī)數(shù)的生成:??info-detail-507676.html??

import numpy as npy
data = npy.random.random_integers(1,20,1000) #在(最小值,最大值,個(gè)數(shù))
# print(data)

  正態(tài)分布:??正態(tài)分布??

  西格瑪:??8466948??

data2 = npy.random.normal(5.0, 2.0, 20) #(均數(shù), 西格瑪, 個(gè)數(shù))
print(data2)

  直方圖

import numpy as npy
data3 = npy.random.normal(10.0, 1.0, 1000)
pyl.hist(data3)
pyl.show()

  設(shè)置直方圖的上下限、取消輪廓

import numpy as npy

data4 = npy.random.random_integers(10,30,1000)
pyl.hist(data4)
# 設(shè)置直方圖的上下限
sty = npy.arange(2, 30, 1)
# 取消輪廓
pyl.hist(data4, sty, histtype='stepfilled')
pyl.show()

#
pyl.subplot(5, 3, 2) #(行, 列, 當(dāng)前區(qū)域)

  子域

import numpy as npy

pyl.subplot(2, 2, 1)
x1 = [1,2,3,4,5]
y1 = [5,3,5,23,5]
pyl.plot(x1, y1)

pyl.subplot(2, 2, 2)
x2 = [5,2,3,8,6]
y2 = [7,9,12,12,3]
pyl.plot(x2, y2)

pyl.subplot(2, 1, 2)
x3 = [5,6,7,10,19,20,29]
y3 = [6,2,4,21,5,1,5]
pyl.plot(x3, y3)
pyl.show()

  excel表格處理

import pandas as pda
import numpy as npy
import matplotlib.pylab as py1
data = pda.read_excel(
    "E:/Data/python_project/study/Linux_study/data_analysis_and_mining/hexun.xls"
    )
# 查看excel表的行列數(shù)
# print(data.shape)
# 結(jié)果:(5697, 6)

# 查看指定單元格的數(shù)據(jù):data.values[第幾行][第幾列]
# print(data.values) 顯示所有的數(shù)據(jù)
# print(data.values[0][1])

# 數(shù)據(jù)轉(zhuǎn)置
data1 = data.T
# print(data1)
y1 = data1.values[3]
x1 = data1.values[4]
# py1.plot(x1, y1)
# py1.show()

x2 = data1.values[0]
py1.plot(x2, y1)
py1.show()

 

三、導(dǎo)入數(shù)據(jù)并分析

  1、導(dǎo)入csv數(shù)據(jù)

  csv是一種常見(jiàn)的數(shù)據(jù)存儲(chǔ)格式,基本上我們遇到的數(shù)據(jù)都可以轉(zhuǎn)為這種存儲(chǔ)格式。在Python數(shù)據(jù)分析中,使用pandas模塊導(dǎo)入csv數(shù)據(jù)。

import pandas as pda

i = pda.read_csv("/data/test.csv")
i.describe()

  2、導(dǎo)入excel數(shù)據(jù)

  excel是一種表格文件,在Python數(shù)據(jù)分析,也可以使用pandas模塊導(dǎo)入excel表格里面的數(shù)據(jù)。

import pandas as pda

excel = pda.read_excel("/data/abc.xls")

excel.describe()

  3、分析DB(MySQL)數(shù)據(jù)

import pandas as pda
import pymysql

conn = pymysql.connect(host="127.0.0.1", user="test", passwd="test", db="chaxun")
sql = "select * from chaxun"
data = pda.read_sql(sql,conn)
des = data.describe()
print(des)

  4、導(dǎo)入html數(shù)據(jù)

  使用pandas,可以直接從html網(wǎng)頁(yè)中加載對(duì)應(yīng)table表格中的數(shù)據(jù),但是在使用read_html()之前,需要安裝html5lib模塊和beautifulsoup4模塊。

import pandas as pda

# 只讀取網(wǎng)頁(yè)中的表格
web_table = pda.read_html("https://book.douban.com/")

print(web_table)

  5、導(dǎo)入文本數(shù)據(jù)

  可以直接導(dǎo)入文本數(shù)據(jù)

import pandas as pda

txt_table = pda.read_table("test.txt")

四、數(shù)據(jù)探索與數(shù)據(jù)清洗

  1、數(shù)據(jù)探索與數(shù)據(jù)清洗的目的與關(guān)系

  數(shù)據(jù)探索的目的:及早發(fā)現(xiàn)數(shù)據(jù)的一些簡(jiǎn)單規(guī)律或特征。

  數(shù)據(jù)清洗的目的:留下可靠數(shù)據(jù),避免臟數(shù)據(jù)的干擾。

  這兩者沒(méi)有嚴(yán)格的先后順序,經(jīng)常在一個(gè)階段進(jìn)行。

  2、數(shù)據(jù)探索的核心

  1. 數(shù)據(jù)質(zhì)量分析(跟數(shù)據(jù)清洗密切聯(lián)系)
  2. 數(shù)據(jù)特征分析(分布、對(duì)比、周期性、相關(guān)性、常見(jiàn)統(tǒng)計(jì)量等)

  3、數(shù)據(jù)清洗實(shí)戰(zhàn)

  數(shù)據(jù)清洗可以按如下步驟進(jìn)行:

  1. 缺失值處理(通過(guò)describe與len直接發(fā)現(xiàn),通過(guò)0數(shù)據(jù)發(fā)現(xiàn))
  2. 異常值處理(通過(guò)散點(diǎn)圖發(fā)現(xiàn))

  插補(bǔ)的方式主要有:均值插補(bǔ)、中位數(shù)插補(bǔ)、眾數(shù)插補(bǔ)、固定值插補(bǔ)、最近數(shù)據(jù)插補(bǔ)、回歸插補(bǔ)、拉格朗日插值、牛頓插值法、分段插值等等。

  遇到異常值,一般處理方式為視為缺失值、刪除、修補(bǔ)(平均數(shù)、中位數(shù)等等)、不處理。

  4、數(shù)據(jù)分布探索實(shí)戰(zhàn)

  探索數(shù)據(jù)的分部規(guī)律,非常有用,有時(shí),可以直接發(fā)現(xiàn)數(shù)據(jù)的規(guī)律。(大小范圍適當(dāng)調(diào)整,可以發(fā)現(xiàn)出其中的規(guī)律)

  5、示例代碼

import pymysql
import numpy as npy
import pandas as pda
import matplotlib.pylab as pyl
#導(dǎo)入數(shù)據(jù)
conn = pymysql.connect(host="127.0.0.1", user="root", passwd="123456", db="taobao")
sql = "select * from taob"
data = pda.read_sql(sql, conn)
# print(data.describe())

# 數(shù)據(jù)清洗
# 發(fā)現(xiàn)確實(shí)值,進(jìn)行處理
# 將價(jià)格為的0進(jìn)行控制處理
data["price"][(data["price"] == 0)] = None

x = 0
for i in data.columns:
    for j in range(len(data)):
        if data[i].isnull()[j]:
            data[i][j] = "36"
            x += 1

# print(x) #44

# 異常值處理
# 畫(huà)散點(diǎn)圖(橫軸為價(jià)格,縱軸為評(píng)論數(shù))
# 得到價(jià)格(將數(shù)據(jù)轉(zhuǎn)置一下)
data2 = data.T
price = data2.values[2]
# print(price)
# 得到評(píng)論數(shù)據(jù)
comment = data2.values[3]
# pyl.plot(price, comment, "o")
# pyl.show()

# 評(píng)論數(shù)異常>200000,價(jià)格異常>2300
line = len(data.values)
col = len(data.values[0])
da = data.values
# 將異常數(shù)據(jù)處理為平均數(shù)或者中位數(shù)
# 若數(shù)據(jù)量比較小的話(huà),使用平均數(shù)處理異常數(shù)據(jù),異常數(shù)據(jù)會(huì)收異常數(shù)據(jù)影響比較大
# 若數(shù)據(jù)量比較大可以使用平均數(shù)
for i in range(0,line):
    for j in range(0, col):
        if da[i][2] > 2300:
            # print(da[i][j])
            da[i][j] = 36
        if da[i][3] > 20000:
            # print(da[i][j])
            da[i][j] = 58


# 查看一下異常處理完的數(shù)據(jù)分布情況
da2 = da.T
price = da2[2]
comment = da2[3]
# pyl.plot(price, comment, "o")
# pyl.show()


# 數(shù)據(jù)分布分析
pricemax = da2[2].max()
pricemin = da2[2].min()
commentmax = da2[3].max()
commentmin = da2[3].min()
# 數(shù)據(jù)極差值:最大值減去最小值
pricerange = pricemax - pricemin
commentrange = commentmax - commentmin
# 組距:極差/組數(shù)
price_class_interval = pricerange / 12
comment_class_interval = commentrange / 12
# 畫(huà)價(jià)格的直方圖
pricesty = npy.arange(pricemin, pricemax, price_class_interval)
pyl.hist(da2[2], pricesty)
pyl.show()
# 畫(huà)評(píng)論的直方圖
commentsty = npy.arange(commentmin, commentmax, comment_class_interval)
# pyl.hist(da2[3], commentsty)
# pyl.show()

示例代碼

 

五、數(shù)據(jù)集成

  1、數(shù)據(jù)集成概述

  數(shù)據(jù)集成一般是把不同來(lái)源的數(shù)據(jù)放在一起。但是來(lái)自多個(gè)地方的數(shù)據(jù)一定要做好實(shí)體識(shí)別與冗余屬性識(shí)別,避免數(shù)據(jù)整合錯(cuò)誤及數(shù)據(jù)重復(fù)。

  2、數(shù)據(jù)集成技巧

  數(shù)據(jù)集成的過(guò)程

  1. 觀察數(shù)據(jù)源,發(fā)現(xiàn)其中關(guān)系,詳細(xì)查看是否有同名不同意,同意不同名的情況。
  2. 進(jìn)行數(shù)據(jù)讀取與整合。
  3. 去除重復(fù)數(shù)據(jù)。

  3、示例代碼

import numpy as nmp


a = nmp.array([[1,4,5],[6,7,9]])
b = nmp.array([[2,6,5],[56,8,5]])
print("a:n", a)
print("b:n", b)
# 數(shù)據(jù)集成
c = nmp.concatenate((a, b))
print("c:n", c)

示例代碼

 

六、數(shù)據(jù)變換(數(shù)據(jù)預(yù)處理)

  1、簡(jiǎn)單變換

  簡(jiǎn)單變換的目的是將數(shù)據(jù)轉(zhuǎn)化為更方便分析的數(shù)據(jù)。

  簡(jiǎn)單變換通常使用函數(shù)變換的方式進(jìn)行,常見(jiàn)的函數(shù)變換包括:開(kāi)方、平方、對(duì)數(shù)等。

  2.、數(shù)據(jù)規(guī)范化

  1. 離差標(biāo)準(zhǔn)化(最小-最大標(biāo)準(zhǔn)化)——消除量綱(單位)影響以及變異大小因素的影響 x1 = (x-min) / (max-min) 應(yīng)用場(chǎng)景:將大值數(shù)據(jù)轉(zhuǎn)換為小值數(shù)據(jù)
  2. 標(biāo)準(zhǔn)差標(biāo)準(zhǔn)化(零-均值標(biāo)準(zhǔn)化)——消除單位影響以及變量自身變異影響。x1 = (x-平均數(shù)) / 標(biāo)準(zhǔn)差
  3. 小數(shù)定標(biāo)規(guī)范化——消除單位影響 x1 = x / 10 ** (k)   k = log10(x的絕對(duì)值的最大值) 解釋?zhuān)?0^? = 2000 那么?=log10(|-2000)

  3、離散化

    1、連續(xù)性數(shù)據(jù)常用的離散化的方法
  • 等寬離散化
  • 等頻率離散化
  • 一維聚類(lèi)離散化

  4、屬性構(gòu)造

   根據(jù)原來(lái)屬性特性根據(jù)需求構(gòu)造出更實(shí)用的屬性。

  5、示例代碼

import pymysql
import pandas as pda
import numpy as npy


conn = pymysql.connect(host="127.0.0.1", user="root", passwd="123456", db="taobao")
sql = "select price,comment from taob"
data = pda.read_sql(sql, conn)

print("處理前:n",data.describe())
# 離差標(biāo)準(zhǔn)化
data2 = (data-data.min()) / (data.max()-data.min())
print("n離差標(biāo)準(zhǔn)化:n", data2.describe())

# 標(biāo)準(zhǔn)差(std方法)標(biāo)準(zhǔn)化
data3 = (data-data.mean()) / data.std()
print("n標(biāo)準(zhǔn)差標(biāo)準(zhǔn)化:n",data3.describe())

# 小數(shù)定標(biāo)規(guī)范化
# 進(jìn)1取整函數(shù) ceil
k = npy.ceil(npy.log10(data.abs().max()))
data4 = data/10**(k)
# print("n小數(shù)定標(biāo)標(biāo)準(zhǔn)化:n", data4)

# 連續(xù)型數(shù)據(jù)離散化
data5 = data["price"].copy()
data6 = data5.T
data7 = data6.values
k = 3
c1 = pda.cut(data7, k, labels=["便宜", "適中", "貴"])
# print(c1)

# 非等寬離散化
k = [0,50,100,300,500,2000,data7.max()]
c2 = pda.cut(data7, k, labels=["非常便宜", "便宜", "適中", "有點(diǎn)貴", "很貴", "非常貴"])
# print(c2)

# 屬性構(gòu)造
import pymysql
import pandas as pda
import numpy as mpy
import imp

conn = pymysql.connect(host="127.0.0.1", user="root", passwd="123456", db="hexun")
sql = "select * from myhexun"
data8 = pda.read_sql(sql, conn)
# print(data8)
# 評(píng)點(diǎn)比
ch = data8["comment"]/data8["hits"]
# print(ch)

data8["評(píng)點(diǎn)比"] = ch
# file = "./hexun.xls"
# data8.to_excel(file, index=False)

# 主成分分析
# 若無(wú)法導(dǎo)入,使用pip安裝一下即可
from sklearn.decomposition import PCA
import pymysql
import pandas as pda
import numpy as mpy


conn = pymysql.connect(host="127.0.0.1", user="root", passwd="123456", db="hexun")
sql = "select hits,comment from myhexun"
data9 = pda.read_sql(sql, conn)
# print(data9)
ch = data9["comment"] / data8["hits"]
data9["評(píng)點(diǎn)比"] = ch

# 主成分分析進(jìn)行中
pcal = PCA()
pcal.fit(data9)
# 返回模型中的各個(gè)特征量
characteristic_quantity = pcal.components_
print("n特征量:n", characteristic_quantity)
# 各個(gè)成分中各自方差百分比,貢獻(xiàn)率
rate = pcal.explained_variance_ratio_
print("n貢獻(xiàn)率:n", rate)

# 將維處理
pca2 = PCA(2)
pca2.fit(data9)
dimensionality_reduction = pca2.transform(data9) #降維
print("n降維處理:n", dimensionality_reduction)
recovery = pca2.inverse_transform(dimensionality_reduction) #恢復(fù)
print("n恢復(fù)n", recovery)

示例代碼

七、數(shù)據(jù)規(guī)約

  數(shù)據(jù)規(guī)約:就是將數(shù)據(jù)精簡(jiǎn)。

  數(shù)據(jù)規(guī)約包括:屬性規(guī)約和數(shù)值規(guī)約。

  1、屬性規(guī)約之主成分分析

  PCA算法

  簡(jiǎn)單易學(xué)的機(jī)器學(xué)習(xí)算法——主成分分析(PCA)?

  2、示例代碼

from sklearn.decomposition import PCA
import pymysql
import pandas as pda
import numpy as mpy


conn = pymysql.connect(host="127.0.0.1", user="root", passwd="123456", db="hexun")
sql = "select hits,comment from myhexun"
data9 = pda.read_sql(sql, conn)
# print(data9)
ch = data9["comment"] / data8["hits"]
data9["評(píng)點(diǎn)比"] = ch

# 主成分分析進(jìn)行中
pcal = PCA()
pcal.fit(data9)
# 返回模型中的各個(gè)特征量
characteristic_quantity = pcal.components_
print("n特征量:n", characteristic_quantity)
# 各個(gè)成分中各自方差百分比,貢獻(xiàn)率
rate = pcal.explained_variance_ratio_
print("n貢獻(xiàn)率:n", rate)

# 將維處理
pca2 = PCA(2)
pca2.fit(data9)
dimensionality_reduction = pca2.transform(data9) #降維
print("n降維處理:n", dimensionality_reduction)
recovery = pca2.inverse_transform(dimensionality_reduction) #恢復(fù)
print("n恢復(fù)n", recovery)

示例代碼

 

八、文本挖掘

  安裝相對(duì)應(yīng)的庫(kù)jieba分詞模塊(也可以安裝其他的)

pip3 install

  1、文本挖掘的三種模式

  • 全模式:分詞會(huì)有重疊
  • 精準(zhǔn)模式:每個(gè)詞匯都有優(yōu)先級(jí),首先顯示優(yōu)先級(jí)高的詞(默認(rèn)是精準(zhǔn)模式 )
  • 搜索模式

  示例代碼

import jieba

sentence = "我喜歡上海東方明珠"
# 全模式:分詞會(huì)有重疊
word1 = jieba.cut(sentence, cut_all=True) #模式
print("我是全模式:")
for item in word1:
    print(item)

#精準(zhǔn)模式:每個(gè)詞匯都有優(yōu)先級(jí),首先顯示優(yōu)先級(jí)高的詞(默認(rèn)是精準(zhǔn)模式 )
print("n我是精準(zhǔn)模式:")
word2 = jieba.cut(sentence, cut_all=False)
for item in word2:
    print(item)

# 搜索模式
print("n搜索模式:")
word3 = jieba.cut_for_search(sentence)
for item in word3:
    print(item)

  2、詞性標(biāo)注

    1、常用的詞性
1 a:形容詞
 2 c:連詞
 3 d:副詞
 4 e:嘆詞
 5 f:方位詞
 6 i:成語(yǔ)
 7 m:數(shù)詞
 8 n:名詞
 9 nr:人名
10 ns:地名
11 nt:機(jī)構(gòu)團(tuán)體
12 nz:其他專(zhuān)有名詞
13 p:介詞
14 r:代詞
15 t:時(shí)間
16 u:助詞
17 v:動(dòng)詞
18 vn:名動(dòng)詞
19 w:標(biāo)點(diǎn)符號(hào)
20

  示例代碼

from jieba import posseg
word4 = posseg.cut(sentence)
# .flag 詞性 .word詞語(yǔ)
print("n詞性標(biāo)注:")
for item in word4:
    print(item.word+"------"+item.flag)

  2、詞典操作

# 自定義詞典加載
# jieba.load_userdict("文件名")


# 更改詞頻
word5 = jieba.cut(sentence)
for item in word5:
    print(item)
print("n更改詞頻:")
jieba.suggest_freq("上海東方", True)
word6 = jieba.cut(sentence)
for item in word6:
    print(item)

#提取關(guān)鍵詞
from jieba import analyse
sentence = "我喜歡上海東方明珠"
print("n提取關(guān)鍵詞:")
tag = analyse.extract_tags(sentence, 3)
print(tag)

# 返回詞語(yǔ)的位置
word7 = jieba.tokenize(sentence)
for item in word7:
    print(item)
print("n返回詞語(yǔ)的位置:")
word8 = jieba.tokenize(sentence, mode="search")
for item in word8:
    print(item)


# 分析詞頻實(shí)踐(默認(rèn)的關(guān)鍵詞是20個(gè))
print("n分析血尸的詞頻")
data = open("E:/Data/python_project/study/Linux_study/data_handing/text_mining/xueshi", encoding="utf-8").read()
tag = jieba.analyse.extract_tags(data, 15)
print(tag)