分類的問題
----------------------------
分類的使用
.根據名字判別性別
.文字分類
.詞性分類
.句子分割
.識別對話行為
分類演算法
.樸素貝葉斯
.決策樹
........
根據名字判別性別
建立分類器
1-確定輸入特徵
2-劃分資料集
3-使用訓練集構建分類器
4-使用測試集測試分類器的效果
def gender_features(word):
return
gender_features('shark')
from nltk.corpus import names
import nltk
import random
names_set=([(name,'male')for name in names.words('male.txt')]+[(name,'female')for name in names.words('female.txt')])
random.shuffle(names_set)#打亂資料集
print(names_set[:10])#列印前十個資料集
features=[(gender_features(n),g)for (n,g)in names_set]
train_set,test_set=features[500:],features[:500]
classifier=nltk.*****bayesclassifier.train(train_set)
-進行測試
classifier.classify(gender_features('neo'))
classifier.classify(gender_features('trinty'))
-計算準確率
print(nltk.classifier.accuracy(classifier,test_set))
-展示最有效的特徵
classifier.show_most_informative_features(5)
下面是在本人電腦上執行結果的展示
[('leeann', 'female'), ('virgil', 'male'), ('luce', 'male'), ('gracia', 'female'), ('dacie', 'female'), ('jabez', 'male'), ('darla', 'female'), ('shanon', 'female'), ('arianne', 'female'), ('dulcinea', 'female')]
0.77
most informative features
last letter = 'a' female : male = 36.9 : 1.0
last letter = 'k' male : female = 31.8 : 1.0
last letter = 'f' male : female = 17.3 : 1.0
last letter = 'p' male : female = 10.5 : 1.0
last letter = 'd' male : female = 9.7 : 1.0
樸素貝葉斯分類
1 貝葉斯分類是一類分類演算法的總稱,這類演算法均以貝葉斯定理為基礎,故統稱為貝葉斯分類。2 樸素貝葉斯的思想基礎是這樣的 對於給出的待分類項,求解在此項出現的條件下各個類別出現的概率,哪個最大,就認為此待分類項屬於哪個類別。通俗來說,就好比這麼個道理,你在街上看到乙個黑人,我問你你猜這哥們 來的,...
樸素貝葉斯分類
摘自寫在公司內部的wiki 要解決的問題 表中增加欄位classification,有四個取值 0 初始值,未分類 1 positive 2 normal 99 negative review submit前,由樸素貝葉斯分類器決定該條review的flag屬於negative還是positive ...
分類 樸素貝葉斯
原始的貝葉斯公式為 p b a p a b p a p a b p b p a 1 在分類問題中,y為類別,x為樣本特徵,則已知待 的樣本特徵 x 它為類別yi 的概率為 p yi x p x yi p y i p x p yi jp xj y i p x 2 p yi 類別為y i的樣本 數總樣本...