NLP 機器學習 情緒識別實戰

2021-10-05 05:04:52 字數 1827 閱讀 1987

import pandas as pd

import numpy as np

# reading the dataset (isear dataset)

data = pd.read_csv('isear.csv',header=none)

data.head()

from sklearn.model_selection import train_test_split

labels = data[0].values.tolist()

sents = data[1].values.tolist()

# 將資料隨機分成80%的訓練資料和20%的測試資料

x_train, x_test, y_train, y_test = train_test_split(sents, labels, test_size=0.2, random_state=42)

from sklearn.feature_extraction.text import tfidfvectorizer

# tfidfvectorizer可以把原始文字轉化為tf-idf的特徵矩陣

# 其他特徵可以提取嗎?

# 1. 詞性的特徵

# 2. n-gram

vectorizer = tfidfvectorizer()

x_train = vectorizer.fit_transform(x_train)

x_test = vectorizer.transform(x_test)

from sklearn.linear_model import logisticregression

from sklearn.model_selection import gridsearchcv

# 遮蔽警告資訊

import warnings

warnings.filterwarnings("ignore")

# 此處c對應正規表示式λ的值, 是λ分之一

parameters =

lr = logisticregression()

lr.fit(x_train, y_train).score(x_test, y_test)

# gridsearchcv,它存在的意義就是自動調參,只要把引數輸進去,就能給出最優化的結果和引數。

# 但是這個方法適合於小資料集

clf = gridsearchcv(lr, parameters, cv=10)

clf.fit(x_train, y_train)

clf.score(x_test, y_test)

print (clf.best_params_)

from sklearn.metrics import confusion_matrix

# 混淆矩陣 對角線的值越大越好

confusion_matrix(y_test, clf.predict(x_test))

array([[ 98,  34,  18,  27,  14,  18,  18],

[ 25, 122, 14, 16, 9, 4, 14],

[ 13, 7, 138, 11, 11, 12, 8],

[ 24, 9, 10, 109, 14, 16, 27],

[ 7, 7, 8, 8, 180, 14, 9],

[ 17, 19, 14, 7, 18, 123, 7],

[ 21, 30, 15, 33, 20, 6, 101]], dtype=int64)

機器學習實戰 knn 手寫識別

這個是 機器學習實戰 的第二個例項,用knn演算法實現手寫識別,識別0 9這幾個數字 要實現手寫識別功能,首先將影象資料轉換為矩陣或者向量形式,本例使用32 32的二值影象,轉化成1 1024的陣列,具體 如下 def img2vector filename returnvect zeros 1,1...

機器學習 實戰 利用tensorflow識別衣物

fashion mnist 是乙個衣物資料集,整合在keras中可以直接使用。本文記錄了一步一步利用 fashion minst 的資料庫訓練 tensorflow 神經網路。import tensorflow as tf from tensorflow import keras import nu...

NLP學習筆記17 機器學習

本文屬於貪心nlp學習筆記系列。從本節課開始進入機器學習的章節。之前的兩個分支之一 基於概率的系統 probabilistic 主要是學習出資料與標籤之間的對映關係。定義 自動從已有的資料裡找出一規律,然後把學到的這些規律應用到對未來資料 future data 的 中,或者在不確定環境下自動地做一...