簡體   English   中英

在NLTK中顯示標簽概率/置信度

[英]Show label probability/confidence in NLTK

我正在使用Python NLTK庫中的MaxEnt分類器。 對於我的數據集,我有許多可能的標簽,並且正如預期的那樣,MaxEnt僅返回一個標簽。 我已經訓練了我的數據集,並獲得了大約80%的准確性。 我還在未知數據項上測試了我的模型,結果很好。 但是,對於任何給定的未知輸入,我希望能夠基於用於選擇一個的某些內部標准MaxEnt(例如置信度/概率)來打印/顯示所有可能標簽的排名。 例如,假設我有a,b,c盡可能多的標簽,並且我使用了MaxEnt.classify(input) ,那么我現在得到一個標簽,比如說c 但是,我希望能夠查看諸如a (0.9), b(0.7), c(0.92) ,因此我可以看到為什么選擇了c ,並可能根據這些參數選擇多個標簽。 為我的模糊術語表示歉意,我對NLP和機器學習還是相當陌生。

根據已接受的答案,下面是一個框架代碼示例,以演示我想要什么以及如何實現。 NLTK網站上有更多分類器示例。

import nltk

contents = read_data('mydataset.csv')
data_set = [(feature_sets(input), label) for (label, input) in contents] # User-defined feature_sets() function
train_set, test_set = data_set[:1000], data_set[1000:]
labels = [label for (input, label) in train_set]
maxent = nltk.MaxentClassifier.train(train_set)
maxent.classify(feature_sets(new_input)) # Returns one label
multi_label = maxent.prob_classify(feature_sets(new_input)) # Returns a DictionaryProbDist object
for label in labels:
    multi_label.prob(label)

嘗試prob_classify(input)

它返回每個標簽具有概率的字典,請參閱docs

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM