Python人工智能识别陆游和苏轼的古诗
用简洁的代码实现人工智能识别古诗的效果
第一步:导库
import pandas as pd
import numpy as np
import jieba
from sklearn.naive_bayes import *
from sklearn.model_selection import *
from sklearn.feature_extraction.text import *
sklearn库是人工智能的常用库。另外三个是数据预处理的常用库。
第二步:数据预处理
with open("sushi.txt", "r", encoding='utf-8') as txt:
text1 = txt.read()
list1 = jieba.lcut(text1)#jieba把句子断成词语
with open("luyou.txt", "r", encoding='utf-8') as txt:
text2 = txt.read()
list2 = jieba.lcut(text2)#jieba把句子断成词语
#给古诗词语贴标签
ss_features = []
for ss in list1:
ss_features.append((ss,"苏轼"))
ly_features = []
for ly in list2:
ly_features.append((ly,"陆游"))
这样,就完成了给古诗词语贴标签的步骤。
然后把这些词语分成训练组和测试组:
words = ss_features + ly_features
df = pd.DataFrame(words)
split_data = train_test_split(df[0], df[1], random_state = 3)
x_train = split_data[0]
x_test = split_data[1]
y_train = split_data[2]
y_test = split_data[3]
tv = TfidfVectorizer()
x_train = tv.fit_transform(x_train)
x_test = tv.transform(x_test)
第三步:人工智能大展身手
clt = MultinomialNB()#编码器
clt.fit(x_train, y_train)#训练模型
print(clt.score(x_test, y_test))#打分
不要看就这么三行,但功能极强
第四步:实现功能
poem = input("请输入苏轼或陆游的诗句:")
poem_features = jieba.lcut(poem)
print(poem_features)
df2 = pd.DataFrame(poem_features)
t_word = tv.transform(df2[0])
res = clt.predict(t_word)
print(res)