【Text_Classification】学习到的语法知识
生活随笔
收集整理的這篇文章主要介紹了
【Text_Classification】学习到的语法知识
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
1. 任務
1.1 字典中每個種類的準確率
分母: 首先計算每個種類的總數!
for value in label:# get(value, num)函數的作用是獲取字典中value對應的鍵值, num=0指示初始值大小。label_cout[value] = label_cout.get(value, 0) + 1label_acc[value] = label_acc.get(value, 0) print(label_cout) print(label_acc)分子:再次計算每個種類正確的數
第一步: 獲取種類字典:
錯誤的做法
正確的是上面的
label_acc[value] = label_acc.get(value, 0)第二步: 記錄正確類的個數
results = model.predict(data, max_seq_len=50, batch_size=1, use_gpu=True) #獲取每行輸入數據的預測結果 for idx, item in enumerate(results):sum = sum + 1; #所有的數據集總和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也加一第三步: 相除得到準確率
#由于我們在定義兩個字典時,key標簽都是對應的,所以直接除,并更新label_acc即可 for key in label_acc.keys():label_acc[key] = label_acc[key] / label_cout[key]1.2. 如何將分類數值化
前提: 你得有輸出結果以及label
label_list = ['城市事件類;宣傳廣告', '城市事件類;擴充類別', '城市事件類;街面秩序','城市部件類;市政公用設施', '城市事件類;市容環境', '城市部件類;擴充類別', '城市事件類;施工管理', '城市部件類;園林綠化', '環境保護類;其他', '文明城市創建類;其他',]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)補充
1. set是無序的!!! 你改成set集合后序列就無序了,而計算每個類別的準確性,必須是類型順序不變的
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. 如果出現在寫入csv文件時,單元格錯位問題,說明你的分隔符不對
5. 寫入excel文件中
https://blog.csdn.net/pikaqiubula/article/details/113781466
6. 將其它的放入到DataFrame中: 轉變為Series ,再設置columns
鏈接
df = pd.DataFrame(pd.Series(d1), columns=['right'])7. python將字典轉換為dataframe數據框
python將字典轉換成dataframe數據框
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
鏈接
總結
以上是生活随笔為你收集整理的【Text_Classification】学习到的语法知识的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: tkinter的可视化拖拽工具_可视化越
- 下一篇: hive-内置函数(常用内置函数汇总)