Sie können in Python objektorientiert programmieren. Ich möchte es nutzen, um die Bequemlichkeit und Lesbarkeit zu verbessern. Dieses Mal habe ich den Prozess der Erstellung eines Spaghetti-Code-Programms aufgezeichnet, das ich objektorientiert erstellt habe.
"Objektorientiert" ist grob gesagt ** ein Objekt, eine Sammlung von Daten, Propatien und verwandten Aktionen (Verhalten, Methode). Die Idee ist, es in einer Packung zusammenzustellen. Die Anwendung dieser Idee auf die Programmierung erfordert zwei Prozesse: Objektorientierte Analyse (OOA) und Objektorientiertes Design (OOD).
Nehmen wir hier an, dass neulich Ethical Baysean Classifier objektorientiert ist. Der Inhalt dieses Programms ist im Grunde ein einfacher Klassifikator für naive Buchten. Nach dem Lesen des Textes wird er trainiert und der vom Benutzer eingegebene Text wird beschriftet. Beginnen wir mit einer objektorientierten Analyse dieses Programms. In der Phase der "objektorientierten Analyse" sollten Sie den Mechanismus und die Struktur des Systems verstehen und als Verhalten einer Reihe von Objekten interpretieren. In diesem Fall kann verstanden werden, dass das Objekt selbst nur ein "Klassifikator" ist, der Lerntext / Urteilstext Daten sind und der Lern- / Urteilsprozess eine Operation ist.
Sobald Sie verstanden haben, wie das Programm mit objektorientierter Analyse funktioniert, müssen Sie im nächsten Schritt die ** Anforderungen ** definieren. Es gibt nur einen "Klassifikator" für das Objekt, die Daten können nach dem Lernen auf vier Arten von Lerntexten, Beurteilungstexten, jeder Beschriftung und geformten Daten eingegrenzt werden, und die Operation kann auf drei Arten eingegrenzt werden: Eingabe, Lernen und Beurteilung. ..
Ethical_Baysean_Classifier-OOP.ipynb
import numpy as np
import matplotlib.pyplot as plt
from textblob import TextBlob
from textblob.classifiers import NaiveBayesClassifier
class Classifier():
def __init__(self):
self.act_pos = []
self.etc_pos = []
self.etc_neg = []
self.etc_user = []
self.etc_user_label = []
self.etc_user_label2 = []
self.trained1 = []
self.trained2 = []
print("Classifier has initiated.")
def input(self):
with open("analysed/actual_statement_pos.txt","r", encoding="utf8", errors='ignore')as f:
entire_txt = f.read()
self.act_pos = entire_txt.splitlines()
print("Text lines =", len(self.act_pos))
with open("analysed/ethical_statement_pos.txt","r", encoding="utf8", errors='ignore')as f:
entire_txt2 = f.read()
self.etc_pos = entire_txt2.splitlines()
print("Text lines =", len(self.etc_pos))
with open("analysed/ethical_statement_neg.txt","r", encoding="utf8", errors='ignore')as f:
entire_txt3 = f.read()
self.etc_neg = entire_txt3.splitlines()
print("Text lines =", len(self.etc_neg))
with open("analysed/ethical_statement_user.txt","r", encoding="utf8", errors='ignore')as f:
entire_txt4 = f.read()
self.etc_user = entire_txt4.splitlines()
print("Text lines =", len(self.etc_user))
def train(self):
for i,item in enumerate(self.act_pos):
self.trained1 = [
(self.act_pos[i], "act"),
(self.etc_pos[i], "etc"),
]
for i,item in enumerate(self.act_pos):
self.trained2 = [
(self.etc_pos[i], "etc_pos"),
(self.etc_neg[i], "etc_neg"),
]
print("\n Classifier has trained for Actual/Ethical,Correct/Wrong distinction.")
def classify(self):
trained1 = self.trained1
cl = NaiveBayesClassifier(trained1)
print("\n Actual/Ethical distinction")
for i,item in enumerate(self.act_pos):
self.etc_user_label.append(cl.classify(self.etc_user[i]))
print(self.etc_user[i],"<<- Text | Classified ->> ", self.etc_user_label[i])
trained2 = self.trained2
cl = NaiveBayesClassifier(trained2)
print("\n Correct/Wrong distinction")
for i,item in enumerate(self.act_pos):
self.etc_user_label2.append(cl.classify(self.etc_user[i]))
print(self.etc_user[i],"<<- Text | Classified ->> ", self.etc_user_label2[i])
clsf = Classifier()
clsf.input()
clsf.train()
clsf.classify()
Classifier has initiated. Text lines = 10 Text lines = 10 Text lines = 10 Text lines = 10
Classifier has trained for Actual/Ethical,Correct/Wrong distinction.
Actual/Ethical distinction We must not be late. <<- Text | Classified ->> etc We must fight against odds. <<- Text | Classified ->> etc We must take the evil with the good. <<- Text | Classified ->> etc We must consider the gravity of the situation. <<- Text | Classified ->> etc We must have high ideals. <<- Text | Classified ->> etc We must keep calm. <<- Text | Classified ->> etc We must try to find him, <<- Text | Classified ->> etc We must not forget that day. <<- Text | Classified ->> etc We must protect that. <<- Text | Classified ->> etc We must always provide against accidents. <<- Text | Classified ->> etc
Correct/Wrong distinction We must not be late. <<- Text | Classified ->> etc_neg We must fight against odds. <<- Text | Classified ->> etc_pos We must take the evil with the good. <<- Text | Classified ->> etc_pos We must consider the gravity of the situation. <<- Text | Classified ->> etc_pos We must have high ideals. <<- Text | Classified ->> etc_pos We must keep calm. <<- Text | Classified ->> etc_pos We must try to find him, <<- Text | Classified ->> etc_pos We must not forget that day. <<- Text | Classified ->> etc_neg We must protect that. <<- Text | Classified ->> etc_pos We must always provide against accidents. <<- Text | Classified ->> etc_pos
Sie können jedes objektorientierte Programm mit nur vier Codezeilen ausführen.
Recommended Posts