分類模型用到的excel轉csv指令碼

2022-04-28 14:24:09 字數 4340 閱讀 5058

#

coding=utf-8

import

pandas as pd

from pandas import

dataframe, series

import

redef

rule(item_str):

"""對內容的規則

:param item_str: str

:return:

"""item_str = re.sub('

\s', ""

, item_str)

item_str = item_str.replace("

,", "

,").replace("

(", "

(").replace("

)", "

)").replace('

"', "「"

)

return

item_str

defget_csv(file_name, csv_filename, col_li):

"""獲取分類模型需要的csv

:param file_name: 原始excel檔案

:param csv_filename: 轉換後的csv檔案

:param col_li: 【text, label】對應的列名

:return:

"""df =pd.read_excel(file_name)[col_li].dropna()

#df["item_info"] = [for i in range()]

#df["工作內容"] = df["工作內容"]

#df["item_info"] = ["" for i in range(len(df[col_li[1]]))]

#處理為需寫入csv的資料

csv_key = ['

text

', '

label

', '

item_info']

data =df.values.tolist()

data_list =

for i in

data:

text_content =rule(str(i[0]))

label_content = rule(str(i[1]))

if text_content in ["", "

nan", "

none

"] or label_content in ["", "

nan", "

none"]:

continue

#風險等級為所隊,錯誤資料

#if label_content == "所隊":

#continue

item_info = ""

df2 = dataframe(data=data_list, columns=csv_key)

df2.to_csv(csv_filename, index=false, encoding="utf-8")

return"ok

"if__name__ == '

__main__':

excel_path = r"

../files_excl/作業風險資料.xlsx"#

excel_path = r"../files_excl/4-5月全部計畫v2.xlsx"

#csv_path = r"../files_csv/feng_xian.csv"

#text_label_li = ["工作內容", "風險等級"]

csv_path = r"

../files_csv/guan_kong.csv

"text_label_li = ["

工作內容

", "

管控層級"]

res =get_csv(excel_path, csv_path, text_label_li)

print(res)

#

coding=utf-8

import

codecs

import

xlrd

import

csvimport

redef

rule(item_str):

"""對內容的規則

:param item_str: str

:return:

"""item_str = re.sub('

\s', ""

, item_str)

item_str = item_str.replace("

,", "

,").replace("

(", "

(").replace("

)", "

)").replace('

"', "「"

)

return

item_str

defxlsx_to_csv(file_path, csv_filename, col_li):

"""用於分類模型, excel轉csv

:param file_path: 檔案路徑

:param csv_filename: 轉換後的csv檔名

:param col_li: 需寫到csv列名【text,label】

:return:

"""workbook =xlrd.open_workbook(file_path)

table =workbook.sheet_by_index(0)

row_num = table.nrows #

sheet行數

#col_num = table.ncols # sheet列數

head_li = table.row_values(0, start_colx=0, end_colx=none) #

返回由該行中所有單元格的資料組成的列表

text_index =head_li.index(col_li[0])

label_index = head_li.index(col_li[1])

#print(text_index, label_index)

#print(head_li)

data_list = [["

text

", "

label

", "

item_info"]]

for row in range(1, row_num):

item_li = table.row_values(row, start_colx=0, end_colx=none)

text_content =rule(str(item_li[text_index]))

label_content =rule(str(item_li[label_index]))

if text_content in ["", "

nan", "

none

"] or label_content in ["", "

nan", "

none"]:

continue

#風險等級為所隊,錯誤資料

#if label_content == "所隊":

#continue

item_info = ""

#寫入csv

with codecs.open(csv_filename, "

w", encoding="

utf-8

") as f:

csv_writer =csv.writer(f)

for row_content in

data_list:

csv_writer.writerow(row_content)

return"ok

"if__name__ == '

__main__':

excel_path = r"

../files_excl/作業風險資料.xlsx"#

excel_path = r"../files_excl/4-5月全部計畫v2.xlsx"

#csv_path = r"../files_csv/feng_xian.csv"

#text, label

#text_label_li = ["工作內容", "風險等級"]

csv_path = r"

../files_csv/guan_kong.csv

"text_label_li = ["

工作內容

", "

管控層級"]

res =xlsx_to_csv(excel_path, csv_path, text_label_li)

print(res)

簡單的分類模型

分類模型是文字分類的核心技術,大體上文字分類模型可以分為兩種 基於規則的文字分類和基於統計的文字分類。在基於規則的分類技術中首先需要根據某種假設 建立起可用於分類的規則,該規則包括了文字的表示方法,類別的表示方法,文字與類別的對映方式等等,之後通過訓練過程來完成規則的完善和調整,訓練後則可 以使用該...

分類模型的評價

假如某個班級有男生80人,女生20人,共計100人。目標是找出所有女生。現在某人挑選出50個人,其中20人是女生,另外還錯誤的把30個男生也當作女生挑選出來了。評估 evaluation 下他的工作。1 accuracy 準確率 0 1損失。分類器 某人 正確分類的樣本數 總樣本數,即20 50 1...

分類模型的評價

1 二分類模型 指標計算 備註精準率 precision precision tp tp fp 在所有被 為陽性的測試資料中,真正是陽性的比率。越大越好 召回率 recall recall tp tp fn 在所有實際為陽性的測試資料中,真正是陽性的比率。越大越好 f1score f1score 2...