当前位置:   article > 正文

使用机器学习确定文本的编程语言

使用机器学习确定文本的编程语言

导入必要的库

norman Python 语句:import

  1. <span style="color:#000000"><span style="background-color:#fbedbb"><span style="color:#0000ff">import</span> pandas <span style="color:#0000ff">as</span> pd
  2. <span style="color:#0000ff">import</span> numpy <span style="color:#0000ff">as</span> np
  3. <span style="color:#0000ff">from</span> sklearn.feature_extraction.text <span style="color:#0000ff">import</span> TfidfVectorizer
  4. <span style="color:#0000ff">from</span> sklearn.linear_model.logistic <span style="color:#0000ff">import</span> LogisticRegression
  5. <span style="color:#0000ff">from</span> sklearn.ensemble <span style="color:#0000ff">import</span> RandomForestClassifier
  6. <span style="color:#0000ff">from</span> sklearn.svm <span style="color:#0000ff">import</span> LinearSVC
  7. <span style="color:#0000ff">from</span> sklearn.tree <span style="color:#0000ff">import</span> DecisionTreeClassifier
  8. <span style="color:#0000ff">from</span> sklearn.naive_bayes <span style="color:#0000ff">import</span> MultinomialNB
  9. <span style="color:#0000ff">from</span> sklearn.model_selection <span style="color:#0000ff">import</span> train_test_split, cross_val_score
  10. <span style="color:#0000ff">from</span> sklearn.utils <span style="color:#0000ff">import</span> shuffle
  11. <span style="color:#0000ff">from</span> sklearn.metrics <span style="color:#0000ff">import</span> precision_score, classification_report, accuracy_score
  12. <span style="color:#0000ff">from</span> sklearn.pipeline <span style="color:#0000ff">import</span> FeatureUnion
  13. <span style="color:#0000ff">from</span> sklearn.preprocessing <span style="color:#0000ff">import</span> LabelEncoder
  14. <span style="color:#0000ff">import</span> re
  15. <span style="color:#0000ff">import</span> time</span></span>

检索和解析数据

我在这个挑战中的大部分时间都花在了弄清楚如何有效地解析数据以从文本中提取语言名称,然后从文本中删除该信息,这样它就不会污染我们的训练和测试数据集。

下面是两个文本字符串/段(跨越多行并包含回车符)的示例:

  1. <span style="color:#000000"><span style="background-color:#fbedbb"><pre lang=<span style="color:#800080">"</span><span style="color:#800080">Swift"</span>>
  2. @objc func handleTap(sender: UITapGestureRecognizer) {
  3. <span style="color:#0000ff">if</span> <span style="color:#0000ff">let</span> tappedSceneView = sender.view as? ARSCNView {
  4. <span style="color:#0000ff">let</span> tapLocationInView = sender.<span style="color:#339999">location</span>(<span style="color:#0000ff">in</span>: tappedSceneView)
  5. <span style="color:#0000ff">let</span> planeHitTest = tappedSceneView.hitTest(tapLocationInView,
  6. types: .existingPlaneUsingExtent)
  7. <span style="color:#0000ff">if</span> !planeHitTest.isEmpty {
  8. addFurniture(hitTest: planeHitTest)
  9. }
  10. }
  11. }<span style="color:#0000ff"></</span><span style="color:#800000">pre</span><span style="color:#0000ff">></span>
  12. <pre lang=<span style="color:#800080">"</span><span style="color:#800080">JavaScript"</span>>
  13. <span style="color:#0000ff">var</span> my_dataset = [
  14. {
  15. id: <span style="color:#800080">"</span><span style="color:#800080">1"</span>,
  16. text: <span style="color:#800080">"</span><span style="color:#800080">Chairman & CEO"</span>,
  17. title: <span style="color:#800080">"</span><span style="color:#800080">Henry Bennett"</span>
  18. },
  19. {
  20. id: <span style="color:#800080">"</span><span style="color:#800080">2"</span>,
  21. text: <span style="color:#800080">"</span><span style="color:#800080">Manager"</span>,
  22. title: <span style="color:#800080">"</span><span style="color:#800080">Mildred Kim"</span>
  23. },
  24. {
  25. id: <span style="color:#800080">"</span><span style="color:#800080">3"</span>,
  26. text: <span style="color:#800080">"</span><span style="color:#800080">Technical Director"</span>,
  27. title: <span style="color:#800080">"</span><span style="color:#800080">Jerry Wagner"</span>
  28. },
  29. { id: <span style="color:#800080">"</span><span style="color:#800080">1-2"</span>, <span style="color:#0000ff">from</span>: <span style="color:#800080">"</span><span style="color:#800080">1"</span>, to: <span style="color:#800080">"</span><span style="color:#800080">2"</span>, type: <span style="color:#800080">"</span><span style="color:#800080">line"</span> },
  30. { id: <span style="color:#800080">"</span><span style="color:#800080">1-3"</span>, <span style="color:#0000ff">from</span>: <span style="color:#800080">"</span><span style="color:#800080">1"</span>, to: <span style="color:#800080">"</span><span style="color:#800080">3"</span>, type: <span style="color:#800080">"</span><span style="color:#800080">line"</span> }
  31. ];<span style="color:#0000ff"></</span><span style="color:#800000">pre</span><span style="color:#0000ff">></span></span></span>

棘手的部分是让正则表达式返回 “” 标签中的数据,然后创建另一个正则表达式来只返回 “” 标签的 “” 部分。<pre lang...><pre>langpre

它并不漂亮,我相信它可以优化,但它有效:

  1. <span style="color:#000000"><span style="background-color:#fbedbb"><span style="color:#0000ff">def</span> get_data():
  2. file_name = <span style="color:#800080">'</span><span style="color:#800080">./LanguageSamples.txt'</span>
  3. rawdata = <span style="color:#339999">open</span>(file_name, <span style="color:#800080">'</span><span style="color:#800080">r'</span>)
  4. lines = rawdata.readlines()
  5. <span style="color:#0000ff">return</span> lines
  6. <span style="color:#0000ff">def</span> clean_data(input_lines):
  7. <span style="color:#008000"><em>#</em></span><span style="color:#008000"><em>find matches for all data within the pre tags</em></span>
  8. all_found = re.findall(r<span style="color:#800080">'</span><span style="color:#800080"><pre[\s\S]*?<\/pre>'</span>, input_lines, re.MULTILINE)
  9. <span style="color:#008000"><em>#</em></span><span style="color:#008000"><em>clean the string of various tags</em></span>
  10. clean_string = <span style="color:#0000ff">lambda</span> x: x.replace(<span style="color:#800080">'</span><span style="color:#800080">&lt;'</span>, <span style="color:#800080">'</span><span style="color:#800080"><'</span>).replace(<span style="color:#800080">'</span><span style="color:#800080">&gt;'</span>, <span style="color:#800080">'</span><span style="color:#800080">>'</span>).replace
  11. (<span style="color:#800080">'</span><span style="color:#800080"></pre>'</span>, <span style="color:#800080">'</span><span style="color:#800080">'</span>).replace(<span style="color:#800080">'</span><span style="color:#800080">\n'</span>, <span style="color:#800080">'</span><span style="color:#800080">'</span>)
  12. all_found = [clean_string(item) <span style="color:#0000ff">for</span> item <span style="color:#0000ff">in</span> all_found]
  13. <span style="color:#008000"><em>#</em></span><span style="color:#008000"><em>get the language for all of the pre tags</em></span>
  14. get_language = <span style="color:#0000ff">lambda</span> x: re.findall(r<span style="color:#800080">'</span><span style="color:#800080"><pre lang="(.*?)">'</span>, x, re.MULTILINE)[<span style="color:#000080">0</span>]
  15. lang_items = [get_language(item) <span style="color:#0000ff">for</span> item <span style="color:#0000ff">in</span> all_found]
  16. <span style="color:#008000"><em>#</em></span><span style="color:#008000"><em>remove all of the pre tags that contain the language</em></span>
  17. remove_lang = <span style="color:#0000ff">lambda</span> x: re.sub(r<span style="color:#800080">'</span><span style="color:#800080"><pre lang="(.*?)">'</span>, <span style="color:#800080">"</span><span style="color:#800080">"</span>, x)
  18. all_found = [remove_lang(item) <span style="color:#0000ff">for</span> item <span style="color:#0000ff">in</span> all_found]
  19. <span style="color:#008000"><em>#</em></span><span style="color:#008000"><em>return let text between the pre tags and their corresponding language</em></span>
  20. <span style="color:#0000ff">return</span> (all_found, lang_items) </span></span>

创建 Pandas DataFrame

在这里,我们获取数据,创建一个并用数据填充它。DataFrame

  1. <span style="color:#000000"><span style="background-color:#fbedbb">all_samples = <span style="color:#800080">'</span><span style="color:#800080">'</span>.join(get_data())
  2. cleaned_data, languages = clean_data(all_samples)
  3. df = pd.DataFrame()
  4. df[<span style="color:#800080">'</span><span style="color:#800080">lang_text'</span>] = languages
  5. df[<span style="color:#800080">'</span><span style="color:#800080">data'</span>] = cleaned_data</span></span>

这是我们的样子:DataFrame

初始 DataFrame

创建分类列

接下来我们需要做的是将我们的 “” 列变成一个数字列,因为这是许多机器学习模型对它试图确定的 “” 或输出的期望。为此,我们将使用 LabelEncoder 并使用它来将我们的 “” 列转换为分类列。lang_textYlang_text

  1. <span style="color:#000000"><span style="background-color:#fbedbb">lb_enc = LabelEncoder()
  2. df[<span style="color:#800080">'</span><span style="color:#800080">language'</span>] = lb_enc.fit_transform(df[<span style="color:#800080">'</span><span style="color:#800080">lang_text'</span>]) </span></span>

现在我们看起来像这样:DataFrame

带有新专栏的 DataFame

我们可以通过运行以下命令来查看该列是如何编码的:

<span style="color:#000000"><span style="background-color:#fbedbb">lb_enc.classes_</span></span>

显示此内容(数组中的位置与新的“语言”分类列中的整数值匹配):

  1. <span style="color:#000000"><span style="background-color:#fbedbb">array([<span style="color:#800080">'</span><span style="color:#800080">ASM'</span>, <span style="color:#800080">'</span><span style="color:#800080">ASP.NET'</span>, <span style="color:#800080">'</span><span style="color:#800080">Angular'</span>, <span style="color:#800080">'</span><span style="color:#800080">C#'</span>, <span style="color:#800080">'</span><span style="color:#800080">C++'</span>, <span style="color:#800080">'</span><span style="color:#800080">CSS'</span>, <span style="color:#800080">'</span><span style="color:#800080">Delphi'</span>, <span style="color:#800080">'</span><span style="color:#800080">HTML'</span>,
  2. <span style="color:#800080">'</span><span style="color:#800080">Java'</span>, <span style="color:#800080">'</span><span style="color:#800080">JavaScript'</span>, <span style="color:#800080">'</span><span style="color:#800080">Javascript'</span>, <span style="color:#800080">'</span><span style="color:#800080">ObjectiveC'</span>, <span style="color:#800080">'</span><span style="color:#800080">PERL'</span>, <span style="color:#800080">'</span><span style="color:#800080">PHP'</span>,
  3. <span style="color:#800080">'</span><span style="color:#800080">Pascal'</span>, <span style="color:#800080">'</span><span style="color:#800080">PowerShell'</span>, <span style="color:#800080">'</span><span style="color:#800080">Powershell'</span>, <span style="color:#800080">'</span><span style="color:#800080">Python'</span>, <span style="color:#800080">'</span><span style="color:#800080">Razor'</span>, <span style="color:#800080">'</span><span style="color:#800080">React'</span>,
  4. <span style="color:#800080">'</span><span style="color:#800080">Ruby'</span>, <span style="color:#800080">'</span><span style="color:#800080">SQL'</span>, <span style="color:#800080">'</span><span style="color:#800080">Scala'</span>, <span style="color:#800080">'</span><span style="color:#800080">Swift'</span>, <span style="color:#800080">'</span><span style="color:#800080">TypeScript'</span>, <span style="color:#800080">'</span><span style="color:#800080">VB.NET'</span>, <span style="color:#800080">'</span><span style="color:#800080">XML'</span>], dtype=object)</span></span>

样板代码

     以下是后续步骤:

  1. 声明用于输出训练结果的函数
  2. 声明用于训练和测试模型的函数
  3. 声明用于创建要测试的模型的函数
  4. 随机播放数据
  5. 拆分训练和测试数据
  6. 将数据和模型传递到训练和测试函数中,并查看结果:
  1. <span style="color:#000000"><span style="background-color:#fbedbb"><span style="color:#0000ff">def</span> output_accuracy(actual_y, predicted_y, model_name, train_time, predict_time):
  2. <span style="color:#0000ff">print</span>(<span style="color:#800080">'</span><span style="color:#800080">Model Name: '</span> + model_name)
  3. <span style="color:#0000ff">print</span>(<span style="color:#800080">'</span><span style="color:#800080">Train time: '</span>, <span style="color:#339999">round</span>(train_time, <span style="color:#000080">2</span>))
  4. <span style="color:#0000ff">print</span>(<span style="color:#800080">'</span><span style="color:#800080">Predict time: '</span>, <span style="color:#339999">round</span>(predict_time, <span style="color:#000080">2</span>))
  5. <span style="color:#0000ff">print</span>(<span style="color:#800080">'</span><span style="color:#800080">Model Accuracy: {:.4f}'</span>.<span style="color:#339999">format</span>(accuracy_score(actual_y, predicted_y)))
  6. <span style="color:#0000ff">print</span>(<span style="color:#800080">'</span><span style="color:#800080">'</span>)
  7. <span style="color:#0000ff">print</span>(classification_report(actual_y, predicted_y, digits=4))
  8. <span style="color:#0000ff">print</span>(<span style="color:#800080">"</span><span style="color:#800080">======================================================="</span>)
  9. <span style="color:#0000ff">def</span> test_models(X_train_input_raw, y_train_input, X_test_input_raw, y_test_input, models_dict):
  10. return_trained_models = {}
  11. return_vectorizer = FeatureUnion([(<span style="color:#800080">'</span><span style="color:#800080">tfidf_vect'</span>, TfidfVectorizer())])
  12. X_train = return_vectorizer.fit_transform(X_train_input_raw)
  13. X_test = return_vectorizer.transform(X_test_input_raw)
  14. <span style="color:#0000ff">for</span> key <span style="color:#0000ff">in</span> models_dict:
  15. model_name = key
  16. model = models_dict[key]
  17. t1 = time.time()
  18. model.fit(X_train, y_train_input)
  19. t2 = time.time()
  20. predicted_y = model.predict(X_test)
  21. t3 = time.time()
  22. output_accuracy(y_test_input, predicted_y, model_name, t2 - t1, t3 - t2)
  23. return_trained_models[model_name] = model
  24. <span style="color:#0000ff">return</span> (return_trained_models, return_vectorizer)
  25. <span style="color:#0000ff">def</span> create_models():
  26. models = {}
  27. models[<span style="color:#800080">'</span><span style="color:#800080">LinearSVC'</span>] = LinearSVC()
  28. models[<span style="color:#800080">'</span><span style="color:#800080">LogisticRegression'</span>] = LogisticRegression()
  29. models[<span style="color:#800080">'</span><span style="color:#800080">RandomForestClassifier'</span>] = RandomForestClassifier()
  30. models[<span style="color:#800080">'</span><span style="color:#800080">DecisionTreeClassifier'</span>] = DecisionTreeClassifier()
  31. models[<span style="color:#800080">'</span><span style="color:#800080">MultinomialNB'</span>] = MultinomialNB()
  32. <span style="color:#0000ff">return</span> models
  33. X_input, y_input = shuffle(df[<span style="color:#800080">'</span><span style="color:#800080">data'</span>], df[<span style="color:#800080">'</span><span style="color:#800080">language'</span>], random_state=7)
  34. X_train_raw, X_test_raw, y_train, y_test = train_test_split(X_input, y_input, test_size=0.<span style="color:#000080">7</span>)
  35. models = create_models()
  36. trained_models, fitted_vectorizer = test_models(X_train_raw, y_train, X_test_raw, y_test, models) </span></span>

结果是这样的:

  1. <span style="color:#000000"><span style="background-color:#fbedbb">Model Name: LinearSVC
  2. Train time: 0.99
  3. Predict time: 0.0
  4. Model Accuracy: 0.9262
  5. precision recall f1-score support
  6. 0 1.0000 1.0000 1.0000 6
  7. 1 1.0000 1.0000 1.0000 2
  8. 2 1.0000 1.0000 1.0000 1
  9. 3 0.8968 1.0000 0.9456 339
  10. 4 0.9695 0.8527 0.9074 224
  11. 5 0.9032 1.0000 0.9492 28
  12. 6 0.7000 1.0000 0.8235 7
  13. 7 0.9032 0.7568 0.8235 74
  14. 8 0.7778 0.5833 0.6667 36
  15. 9 0.9613 0.9255 0.9430 161
  16. 10 1.0000 0.5000 0.6667 6
  17. 11 1.0000 1.0000 1.0000 14
  18. 12 1.0000 1.0000 1.0000 5
  19. 13 1.0000 1.0000 1.0000 2
  20. 14 1.0000 0.4545 0.6250 11
  21. 15 1.0000 1.0000 1.0000 6
  22. 16 1.0000 0.4000 0.5714 5
  23. 17 0.9589 0.9589 0.9589 73
  24. 18 1.0000 1.0000 1.0000 8
  25. 19 0.7600 0.9268 0.8352 41
  26. 20 0.1818 1.0000 0.3077 2
  27. 21 1.0000 1.0000 1.0000 137
  28. 22 1.0000 0.8750 0.9333 24
  29. 23 1.0000 1.0000 1.0000 7
  30. 24 1.0000 1.0000 1.0000 25
  31. 25 0.9571 0.9571 0.9571 70
  32. 26 0.9211 0.9722 0.9459 108
  33. avg / total 0.9339 0.9262 0.9255 1422
  34. =========================================================================
  35. Model Name: DecisionTreeClassifier
  36. Train time: 0.13
  37. Predict time: 0.0
  38. Model Accuracy: 0.9388
  39. precision recall f1-score support
  40. 0 1.0000 1.0000 1.0000 6
  41. 1 1.0000 1.0000 1.0000 2
  42. 2 1.0000 1.0000 1.0000 1
  43. 3 0.9123 0.9204 0.9163 339
  44. 4 0.8408 0.9196 0.8785 224
  45. 5 1.0000 0.8929 0.9434 28
  46. 6 1.0000 1.0000 1.0000 7
  47. 7 1.0000 0.9595 0.9793 74
  48. 8 0.9091 0.8333 0.8696 36
  49. 9 0.9817 1.0000 0.9908 161
  50. 10 1.0000 0.5000 0.6667 6
  51. 11 1.0000 1.0000 1.0000 14
  52. 12 1.0000 1.0000 1.0000 5
  53. 13 1.0000 1.0000 1.0000 2
  54. 14 1.0000 0.4545 0.6250 11
  55. 15 1.0000 0.5000 0.6667 6
  56. 16 1.0000 0.4000 0.5714 5
  57. 17 1.0000 1.0000 1.0000 73
  58. 18 1.0000 1.0000 1.0000 8
  59. 19 0.9268 0.9268 0.9268 41
  60. 20 1.0000 1.0000 1.0000 2
  61. 21 1.0000 1.0000 1.0000 137
  62. 22 1.0000 0.7500 0.8571 24
  63. 23 1.0000 1.0000 1.0000 7
  64. 24 0.6786 0.7600 0.7170 25
  65. 25 1.0000 1.0000 1.0000 70
  66. 26 1.0000 1.0000 1.0000 108
  67. avg / total 0.9419 0.9388 0.9376 1422
  68. =========================================================================
  69. Model Name: LogisticRegression
  70. Train time: 0.71
  71. Predict time: 0.01
  72. Model Accuracy: 0.9304
  73. precision recall f1-score support
  74. 0 1.0000 1.0000 1.0000 6
  75. 1 1.0000 1.0000 1.0000 2
  76. 2 1.0000 1.0000 1.0000 1
  77. 3 0.9040 1.0000 0.9496 339
  78. 4 0.9569 0.8929 0.9238 224
  79. 5 0.9032 1.0000 0.9492 28
  80. 6 0.7000 1.0000 0.8235 7
  81. 7 0.8929 0.6757 0.7692 74
  82. 8 0.8750 0.5833 0.7000 36
  83. 9 0.9281 0.9627 0.9451 161
  84. 10 1.0000 0.5000 0.6667 6
  85. 11 1.0000 1.0000 1.0000 14
  86. 12 1.0000 1.0000 1.0000 5
  87. 13 1.0000 1.0000 1.0000 2
  88. 14 1.0000 0.4545 0.6250 11
  89. 15 1.0000 1.0000 1.0000 6
  90. 16 1.0000 0.4000 0.5714 5
  91. 17 0.9589 0.9589 0.9589 73
  92. 18 1.0000 1.0000 1.0000 8
  93. 19 0.7600 0.9268 0.8352 41
  94. 20 1.0000 1.0000 1.0000 2
  95. 21 1.0000 0.9781 0.9889 137
  96. 22 1.0000 0.8750 0.9333 24
  97. 23 1.0000 1.0000 1.0000 7
  98. 24 1.0000 1.0000 1.0000 25
  99. 25 0.9571 0.9571 0.9571 70
  100. 26 0.9211 0.9722 0.9459 108
  101. avg / total 0.9329 0.9304 0.9272 1422
  102. =========================================================================
  103. Model Name: RandomForestClassifier
  104. Train time: 0.04
  105. Predict time: 0.01
  106. Model Accuracy: 0.9374
  107. precision recall f1-score support
  108. 0 1.0000 1.0000 1.0000 6
  109. 1 1.0000 1.0000 1.0000 2
  110. 2 1.0000 1.0000 1.0000 1
  111. 3 0.8760 1.0000 0.9339 339
  112. 4 0.9452 0.9241 0.9345 224
  113. 5 0.9032 1.0000 0.9492 28
  114. 6 0.7000 1.0000 0.8235 7
  115. 7 1.0000 0.8378 0.9118 74
  116. 8 1.0000 0.5278 0.6909 36
  117. 9 0.9527 1.0000 0.9758 161
  118. 10 1.0000 0.1667 0.2857 6
  119. 11 1.0000 1.0000 1.0000 14
  120. 12 1.0000 1.0000 1.0000 5
  121. 13 1.0000 1.0000 1.0000 2
  122. 14 1.0000 0.4545 0.6250 11
  123. 15 1.0000 0.5000 0.6667 6
  124. 16 1.0000 0.4000 0.5714 5
  125. 17 1.0000 1.0000 1.0000 73
  126. 18 1.0000 0.6250 0.7692 8
  127. 19 0.9268 0.9268 0.9268 41
  128. 20 0.0000 0.0000 0.0000 2
  129. 21 1.0000 1.0000 1.0000 137
  130. 22 1.0000 1.0000 1.0000 24
  131. 23 1.0000 0.5714 0.7273 7
  132. 24 1.0000 1.0000 1.0000 25
  133. 25 1.0000 0.9571 0.9781 70
  134. 26 0.8889 0.8889 0.8889 108
  135. avg / total 0.9411 0.9374 0.9324 1422
  136. =========================================================================
  137. Model Name: MultinomialNB
  138. Train time: 0.01
  139. Predict time: 0.0
  140. Model Accuracy: 0.8776
  141. precision recall f1-score support
  142. 0 1.0000 1.0000 1.0000 6
  143. 1 0.0000 0.0000 0.0000 2
  144. 2 0.0000 0.0000 0.0000 1
  145. 3 0.8380 0.9764 0.9019 339
  146. 4 1.0000 0.8750 0.9333 224
  147. 5 1.0000 1.0000 1.0000 28
  148. 6 1.0000 1.0000 1.0000 7
  149. 7 0.6628 0.7703 0.7125 74
  150. 8 1.0000 0.5833 0.7368 36
  151. 9 0.8952 0.6894 0.7789 161
  152. 10 1.0000 0.3333 0.5000 6
  153. 11 1.0000 1.0000 1.0000 14
  154. 12 1.0000 1.0000 1.0000 5
  155. 13 0.0000 0.0000 0.0000 2
  156. 14 1.0000 0.7273 0.8421 11
  157. 15 1.0000 1.0000 1.0000 6
  158. 16 1.0000 0.4000 0.5714 5
  159. 17 1.0000 0.9178 0.9571 73
  160. 18 0.8000 1.0000 0.8889 8
  161. 19 0.4607 1.0000 0.6308 41
  162. 20 0.0000 0.0000 0.0000 2
  163. 21 1.0000 1.0000 1.0000 137
  164. 22 1.0000 1.0000 1.0000 24
  165. 23 1.0000 1.0000 1.0000 7
  166. 24 0.8462 0.8800 0.8627 25
  167. 25 0.8642 1.0000 0.9272 70
  168. 26 0.9630 0.7222 0.8254 108
  169. avg / total 0.8982 0.8776 0.8770 1422
  170. =========================================================================</span></span>
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/weixin_40725706/article/detail/528224
推荐阅读
相关标签
  

闽ICP备14008679号