当前位置:   article > 正文

机器学习之文本特征识别_如何用机器学习识别文字特征规律

如何用机器学习识别文字特征规律
  1. import pandas as pd
  2. from sklearn.feature_extraction.text import CountVectorizer
  3. from sklearn.model_selection import train_test_split
  4. from sklearn.naive_bayes import MultinomialNB
  5. from sklearn.metrics import accuracy_score, confusion_matrix
  6. import openpyxl
  7. import joblib
  8. # 1. 准备训练数据集
  9. data = pd.read_csv('address_data.csv', encoding='GBK')
  10. # 2. 特征工程
  11. vectorizer = CountVectorizer(max_features=7000)
  12. X = vectorizer.fit_transform(data['Address']).toarray()
  13. y = data['IsFake']
  14. # 检查是否已存在模型文件
  15. try:
  16. classifier = joblib.load('model.joblib')
  17. model_trained = True
  18. except FileNotFoundError:
  19. classifier = None
  20. model_trained = False
  21. while True:
  22. user_input = input("请输入 '开始训练' 或 '开始预测' 或 'exit' 退出: ")
  23. if user_input.lower() == 'exit':
  24. if classifier:
  25. # 退出前保存模型
  26. joblib.dump(classifier, 'model.joblib')
  27. print("退出程序。")
  28. break
  29. elif user_input.lower() == '开始训练':
  30. if not classifier:
  31. # 可在这里增加其他模型算法
  32. classifier = MultinomialNB()
  33. # 开始训练模型
  34. X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=0)
  35. classifier.fit(X_train, y_train)
  36. y_pred = classifier.predict(X_test)
  37. accuracy = accuracy_score(y_test, y_pred)
  38. confusion = confusion_matrix(y_test, y_pred)
  39. print("模型已经训练完成。")
  40. print("准确性: ", accuracy)
  41. print("混淆矩阵:\n", confusion)
  42. model_trained = True
  43. elif user_input.lower() == '开始预测':
  44. if not model_trained:
  45. print("请先训练模型,然后再进行预测。")
  46. else:
  47. # 加载已训练的模型
  48. if not classifier:
  49. classifier = joblib.load('model.joblib')
  50. # 加载新数据集进行预测
  51. new_data = pd.read_csv('new_address_data.csv', encoding='GBK')
  52. X_new = vectorizer.transform(new_data['Address']).toarray()
  53. predictions = classifier.predict(X_new)
  54. # 将预测结果存储在一个新的数据框中
  55. new_data['Predicted_IsFake'] = predictions
  56. # 导出预测结果到一个 Excel 文件
  57. new_data.to_excel('address_predictions.xlsx', index=False, engine='openpyxl') # 指定所需的 Excel 文件名
  58. print("预测结果已保存到 'address_predictions.xlsx' 文件中")
  59. else:
  60. print("无效的输入,请输入 '开始训练' 或 '开始预测' 或 'exit'。")

当我们面对一个乱写的地址时,该怎么利用机器去学习,让机器通过模型去帮助我们判断呢?

本篇基于朴素索叶斯模型去开发代码

本文内容由网友自发贡献,转载请注明出处:https://www.wpsshop.cn/w/IT小白/article/detail/930905
推荐阅读
相关标签
  

闽ICP备14008679号