天然語言處理入門小白從0開始學天然語言處理+學習筆記(一)

一、天然語言處理學習路徑規劃

  • 天然語言處理(NLP)開發環境搭建
  • 分詞demo(搭建helloworld工程)
  • 案例:nlp實現預測天氣冷暖感知度
  • ---案例需求和數據準備
  • ---可視化數據分析
  • ---KNN模型原理及歐式距離計算
  • ---KNN分類器模型實現
  • ---利用KNN分類器採訪隨機遊客預測天氣感知度
  • ---機器學習庫sklearn實現預測天氣冷暖感知度
  • 天然語言處理學習總結概括

二、天然語言處理(NLP)開發環境搭建

  • 天然語言處理通常用python語言,java其實也能夠,反正每一個語言生態都有本身的相關NLP庫
  • 開發環境千萬個,蘿蔔青菜給有所愛,這裏給搭建推薦用idea了java

    • 下載idea https://www.jetbrains.com/ide...python

      • 下載python語言插件(File->settings->plugins->marketplace->搜索:python選擇python language那個)
      • 有了插件,就能夠新建python項目了,先默認新建一個項目,好比:nlp

file

三、分詞demo(搭建helloworld工程)

  1. 按照國際上的慣例,我們應該先寫個hello world,體驗一下python(但願你們有python基礎,沒有也不要緊)
  2. NLP當中有個經常使用的技術,分詞,咱也不會,用個第三方的試試
  3. jieba庫是一款優秀的 Python 第三方中文分詞庫jieba 支持三種分詞模式:精確模式、全模式和搜索引擎模式,下面是三種模式的特色。
  • 精確模式:試圖將語句最精確的切分,不存在冗餘數據,適合作文本分析
  • 全模式:將語句中全部多是詞的詞語都切分出來,速度很快,可是存在冗餘數據
  • 搜索引擎模式:在精確模式的基礎上,對長詞再次進行切分

上代碼以前得安裝這個分詞包,秒級安裝鏡像pip install jieba -i https://pypi.douban.com/simple/
好,上代碼:算法

import jieba;

str = "中國是工人階級領導的以工農聯盟爲基礎的人民民主專政的社會主義國家";

res = "  ".join(jieba.cut(str))

print(res)

運行效果以下:
file機器學習

四、案例:nlp實現預測天氣冷暖感知度

4.一、案例需求及數據準備

file
file
上代碼:ide

#coding=utf8

'''建立數據源、返回數據集和類標籤'''
def creat_dataset():
    datasets = [[8,4,2],[7,1,1],[1,4,4],[3,0,5]]#數據集
    labels = ['很是熱','很是熱','通常熱','很是熱']#類標籤
    return datasets,labels

if __name__ == '__main__':
    datasets,labels = creat_dataset()
    print(datasets,'\n',labels)

運行結果:
file工具

4.二、數據分析與可視化

上代碼:學習

#coding=utf8
import numpy as np
from numpy import *
import matplotlib
import matplotlib.pyplot as plt
'''建立數據源、返回數據集和類標籤'''
def creat_dataset():
    datasets = array([[8,4,2],[7,1,1],[1,4,4],[3,0,5]])#數據集
    labels = ['很是熱','很是熱','通常熱','很是熱']#類標籤
    return datasets,labels

'''可視化數據分析'''
def analyse_data_plot(x,y):
    plt.scatter(x,y)
    plt.show()

if __name__ == '__main__':
    datasets,labels = creat_dataset()
    print('數據集:\n',datasets,'\n','類標籤:\n',labels)

    '''數據可視化分析'''
    analyse_data_plot(datasets[:,0],datasets[:,1])

運行結果:
file搜索引擎

4.三、算法模型及原理

KNN模型原理及歐式距離計算

file
file
file
file
上代碼:idea

#coding=utf8
import numpy as np
from numpy import *
import matplotlib
import matplotlib.pyplot as plt
'''建立數據源、返回數據集和類標籤'''
def creat_dataset():
    datasets = array([[8,4,2],[7,1,1],[1,4,4],[3,0,5]])#數據集
    labels = ['很是熱','很是熱','通常熱','很是熱']#類標籤
    return datasets,labels

'''可視化數據分析'''
def analyse_data_plot(x,y):
    plt.scatter(x,y)
    plt.show()

'''構造KNN分類器'''
#def knn_Classifier(newV,datasets,labels,2):
#1.獲取新的樣本數據
#2.獲取樣本庫的數據
#3.選擇K值
#4.計算樣本數據與樣本庫數據之間的距離
#5.根據距離進行排序
#6.針對K個點,統計各個類別的數量
#7.投票機制,少數服從多數原則

'''歐氏距離計算:d²=(x1-x2)²+(y1-y2)²'''
def ComputerEuclideanDistance(x1,y1,x2,y2):
    d = math.sqrt(math.pow((x1-x2),2)+math.pow((y1-y2),2))
    return d
'''歐氏距離計算多維度支持'''
def EuclideanDistance(instance1,instance2,length):
    d=0
    for i in range(length):
        d += pow((instance1[i]-instance2[i]),2)
    return math.sqrt(d)
if __name__ == '__main__':

    #1.建立數據集和類標籤
    datasets,labels = creat_dataset()
    print('數據集:\n',datasets,'\n','類標籤:\n',labels)

    #2.數據可視化分析
    #analyse_data_plot(datasets[:,0],datasets[:,1])

    #3.1.歐式距離計算
    d = ComputerEuclideanDistance(2,4,8,2)
    print(d)

    #3.2.歐式距離計算
    d2 = EuclideanDistance([2,4],[8,2],2)
    print(d2)

    #3.3.歐式距離計算,可支持多維
    d3 = EuclideanDistance([2,4,9],[8,2,5],3)
    print(d3)

    #KNN分類器
    newV = [2,4,0]
    #knn_Classifier(newV,datasets,labels,2)

運行結果:
filespa

下一篇筆記分享學習以下內容

  • ---KNN分類器模型實現
  • ---利用KNN分類器採訪隨機遊客預測天氣感知度
  • ---機器學習庫sklearn實現預測天氣冷暖感知度
  • 天然語言處理學習總結概括
本文由博客羣發一文多發等運營工具平臺 OpenWrite 發佈
相關文章
相關標籤/搜索