18 lines
628 B
Python
18 lines
628 B
Python
from app import create_app
|
|
from app.ml.naive_bayes_classifier import NaiveBayesSpamClassifier
|
|
from app.models import SpamTrainingSample
|
|
|
|
|
|
def main():
|
|
app = create_app()
|
|
with app.app_context():
|
|
rows = SpamTrainingSample.query.filter_by(is_active=True).order_by(SpamTrainingSample.id.asc()).all()
|
|
samples = [{"text": row.text, "label": row.label} for row in rows]
|
|
clf = NaiveBayesSpamClassifier(app.config["NB_MODEL_PATH"])
|
|
meta = clf.train(samples)
|
|
print(f"模型训练完成: {meta.get('version')} 样本数={meta.get('sample_count')}")
|
|
|
|
|
|
if __name__ == "__main__":
|
|
main()
|