【Text_Classification】学习到的语法知识
生活随笔
收集整理的這篇文章主要介紹了
【Text_Classification】学习到的语法知识
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
1. 任務(wù)
1.1 字典中每個種類的準(zhǔn)確率
分母: 首先計算每個種類的總數(shù)!
for value in label:# get(value, num)函數(shù)的作用是獲取字典中value對應(yīng)的鍵值, num=0指示初始值大小。label_cout[value] = label_cout.get(value, 0) + 1label_acc[value] = label_acc.get(value, 0) print(label_cout) print(label_acc)分子:再次計算每個種類正確的數(shù)
第一步: 獲取種類字典:
錯誤的做法
正確的是上面的
label_acc[value] = label_acc.get(value, 0)第二步: 記錄正確類的個數(shù)
results = model.predict(data, max_seq_len=50, batch_size=1, use_gpu=True) #獲取每行輸入數(shù)據(jù)的預(yù)測結(jié)果 for idx, item in enumerate(results):sum = sum + 1; #所有的數(shù)據(jù)集總和if results[idx] == label[idx]: # print("OHHHH data: {}".format(data[idx]), "predict:{}".format(results[idx]),# "right:{}".format(label[idx]))right = right + 1; #如果是正確的,那么就加一print(results[idx])label_acc[results[idx]] += 1 #正確的,則從字典中尋找到指定key也加一第三步: 相除得到準(zhǔn)確率
#由于我們在定義兩個字典時,key標(biāo)簽都是對應(yīng)的,所以直接除,并更新label_acc即可 for key in label_acc.keys():label_acc[key] = label_acc[key] / label_cout[key]1.2. 如何將分類數(shù)值化
前提: 你得有輸出結(jié)果以及l(fā)abel
label_list = ['城市事件類;宣傳廣告', '城市事件類;擴(kuò)充類別', '城市事件類;街面秩序','城市部件類;市政公用設(shè)施', '城市事件類;市容環(huán)境', '城市部件類;擴(kuò)充類別', '城市事件類;施工管理', '城市部件類;園林綠化', '環(huán)境保護(hù)類;其他', '文明城市創(chuàng)建類;其他',]label_map = { #必須是指定的格式idx: label_text for idx, label_text in enumerate(label_list) } model = hub.Module(name='ernie_tiny',version='2.0.1',task='seq-cls',load_checkpoint='/home/wxx/progressfiles/project_pc_NLP/Texts_Classification/model/ernie_text_cls/best_model/model.pdparams',label_map=label_map)results = model.predict(data, max_seq_len=50, batch_size=1, use_gpu=True)之后就用兩個list就夠了!
n_label = [] n_results = [] for item in results:for key in label_map:if item == label_map[key]:n_results.append(key) for item in label:for key in label_map:if item == label_map[key]:n_label.append(key)補(bǔ)充
1. set是無序的!!! 你改成set集合后序列就無序了,而計算每個類別的準(zhǔn)確性,必須是類型順序不變的
2.從linux上下載文件
sz XXX3. 讀CSV文件沒事,但是在寫入csv文件是亂碼
df.to_csv("/home/wxx/progressfiles/project_pc_NLP/Texts_Classification/res_all_label.csv", encoding='utf_8_sig', sep=",", index=0)4. 如果出現(xiàn)在寫入csv文件時,單元格錯位問題,說明你的分隔符不對
5. 寫入excel文件中
https://blog.csdn.net/pikaqiubula/article/details/113781466
6. 將其它的放入到DataFrame中: 轉(zhuǎn)變?yōu)镾eries ,再設(shè)置columns
鏈接
df = pd.DataFrame(pd.Series(d1), columns=['right'])7. python將字典轉(zhuǎn)換為dataframe數(shù)據(jù)框
python將字典轉(zhuǎn)換成dataframe數(shù)據(jù)框
8. DataFrame操作
定義!
列表定義!
字典列表定義!
import pandas as pdinp = [{'c1':10, 'c2':100}, {'c1':11, 'c2':110}, {'c1':12, 'c2':123}] df = pd.DataFrame(inp)print(df)添加列!
DF的遍歷: https://www.jb51.net/article/172623.htm
9. 更好的放入到DF中
text_a.append(data[idx]) label_wrong.append(item) label_right.append(label[idx])df = pd.DataFrame() df['text_a'] = pd.Series(text_a) df['wrong_label'] = label_wrong df['right_label'] = label_right10. 代碼解決F1_score
鏈接
總結(jié)
以上是生活随笔為你收集整理的【Text_Classification】学习到的语法知识的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: tkinter的可视化拖拽工具_可视化越
- 下一篇: prototype.js ajax.re