Vous pouvez faire de la programmation orientée objet en Python. Je voudrais m'en servir pour améliorer la commodité et la lisibilité. Cette fois, j'ai enregistré le processus de création d'un programme de code spaghetti que j'ai créé orienté objet.
"Object-Oriented" est, en gros, ** un objet, une collection de données, de propriétés et d'actions associées (comportement, méthode). L'idée est de le rassembler dans un pack. L'application de cette idée à la programmation nécessite deux processus: l'analyse orientée objet (OOA) et la conception orientée objet (OOD).
Supposons ici que l'autre jour, Ethical Baysean Classifier est orienté objet. Le contenu de ce programme est essentiellement un simple classificateur de baies naïves. Après avoir lu le texte, il est formé et le texte saisi par l'utilisateur est étiqueté. Commençons par une analyse orientée objet de ce programme. Ce que vous devez faire à l'étape de «l'analyse orientée objet» est de ** comprendre le mécanisme et la structure du système et de l'interpréter comme le comportement d'une série d'objets **. Dans ce cas, on peut comprendre que l'objet lui-même n'est qu'un "classificateur", le texte d'apprentissage / texte de jugement est une donnée et le processus d'apprentissage / de jugement est une opération.
Une fois que vous comprenez comment le programme fonctionne avec l'analyse orientée objet, l'étape suivante consiste à définir les ** exigences **. Il n'y a qu'un seul "classificateur" pour l'objet, les données peuvent être réduites à quatre types de texte d'apprentissage, de texte de jugement, chaque étiquette et de données mises en forme après l'apprentissage, et l'opération peut être réduite à trois types: entrée, apprentissage et jugement. ..
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
Vous pouvez exécuter n'importe quel programme orienté objet avec seulement quatre lignes de code.
Recommended Posts