hat jemand Ideen wie ich diesen Quellcode noch vereinfachen könnte ?
So ganz zufrieden bin ich damit noch nicht
Code: Alles auswählen
data = pd.read_csv("/home/felix/Desktop/Document_Scanner/german.csv")
# count various labels
count = pd.Series(data['label'].str.replace(r'[\[\]\']','').str.split(',').map(Counter).sum())
num_classes = len(set([element.strip() for element in count.index]))
data['label'] = data['label'].str.replace(r'[\[\]\']','').str.replace(" ", '').str.split(',')
#data = data.explode('label')
#initialize MultiLabelBinarizer
mlb = MultiLabelBinarizer()
#transform the label column to a series of columns with binary values
binary_labels = pd.DataFrame(mlb.fit_transform(data['label']), columns=mlb.classes_)
binary_labels = binary_labels.sort_index(axis=1)
#bring data frames together
data = data.merge(binary_labels, how='inner', left_index=True, right_index=True)
Hier noch das erstellen der csv-Datei/en
Code: Alles auswählen
import os
from tqdm import tqdm
import textract
import re
import pandas as pd
from langdetect import detect
FOLDER_PATH = '/home/felix/Desktop/MachineLearning'
german_labels = list()
german_texts = list()
english_labels = list()
english_texts = list()
error_files = list()
def unzip_labels(label):
labels = re.split('(?=[A-Z])', label)
label = [label.lower() for label in labels]
return label
def create_csv():
for root, dirs, files in os.walk(FOLDER_PATH):
for file in tqdm(files):
try:
file_path = os.path.abspath(os.path.join(root, file)) # filepath
label = os.path.basename(root) # label
label = unzip_labels(label)
text = str(textract.process(file_path, method='tesseract', encoding='ascii')).replace('\n', ' ') # text # other: pdfminer , pdftotext
if detect(text) == 'de':
german_labels.append(label)
german_texts.append(text)
elif detect(text) == 'en':
english_labels.append(label)
english_texts.append(text)
else:
print(f'can not detect de or en in {file}')
error_files.append(file)
except:
print(f'{file} occurs an error')
error_files.append(file)
# german
df = pd.DataFrame(columns=['label', 'text'])
df['label'] = german_labels
df['text'] = german_texts
df.to_csv('german.csv', index=False, encoding='ascii')
# english
df = pd.DataFrame(columns=['label', 'text'])
df['label'] = english_labels
df['text'] = english_texts
df.explode('label')
df.to_csv('english.csv', index=False, encoding='ascii')
print(f'unexcepted files : {error_files}')
if __name__ == "__main__":
create_csv()
Code: Alles auswählen
0 ['china', 'politik'] b'82\n\n \n\n|\n\nAndreas Dittrich ist\nwis...
1 ['china', 'politik'] b"Das politische System\nder Volksrepublik Chi...
2 ['china', 'politik'] b' \n\n \n\nKonrad-Adenauer-Stiftung Washingto...
3 ['china', 'politik'] b"China Analysis 63\nJuli 2008\nwww.chinapolit...
4 ['china', 'politik'] b'SP Fraktion im\nBundestag\n\nBerlin, 30.06.2...
.. ... ...
200 ['italien', 'politik'] b' \n\nAlessandro Cavalli\n\n \n\nDie italieni...
201 ['italien', 'politik'] b'3 Das italienische Parteiensystem in histori...
202 ['italien', 'politik'] b'Foto: AP\n\n \n\nWahlkampfer\nBerlusconi:\nw...
203 ['italien', 'politik'] b" \n\nMatteo Renz\n\nvon Heinz Bierbaum\n\nMi...
204 ['italien', 'politik'] b'Deutsch-italienische Renaissance?\n\nMichael...
Code: Alles auswählen
label text boxen china corona italien politik python rezept sport typisierung usa
0 [china, politik] b'82\n\n \n\n|\n\nAndreas Dittrich ist\nwis... 0 1 0 0 1 0 0 0 0 0
1 [china, politik] b"Das politische System\nder Volksrepublik Chi... 0 1 0 0 1 0 0 0 0 0
2 [china, politik] b' \n\n \n\nKonrad-Adenauer-Stiftung Washingto... 0 1 0 0 1 0 0 0 0 0
3 [china, politik] b"China Analysis 63\nJuli 2008\nwww.chinapolit... 0 1 0 0 1 0 0 0 0 0
4 [china, politik] b'SP Fraktion im\nBundestag\n\nBerlin, 30.06.2... 0 1 0 0 1 0 0 0 0 0
.. ... ... ... ... ... ... ... ... ... ... ... ...
200 [italien, politik] b' \n\nAlessandro Cavalli\n\n \n\nDie italieni... 0 0 0 1 1 0 0 0 0 0
201 [italien, politik] b'3 Das italienische Parteiensystem in histori... 0 0 0 1 1 0 0 0 0 0
202 [italien, politik] b'Foto: AP\n\n \n\nWahlkampfer\nBerlusconi:\nw... 0 0 0 1 1 0 0 0 0 0
203 [italien, politik] b" \n\nMatteo Renz\n\nvon Heinz Bierbaum\n\nMi... 0 0 0 1 1 0 0 0 0 0
204 [italien, politik] b'Deutsch-italienische Renaissance?\n\nMichael... 0 0 0 1 1 0 0 0 0 0
MfG Felix