猫史档案馆


【Python作品分享】猜诗【作品秀】

用户:好奇的铁奥UsFM好奇的铁奥UsFM查看:0 回复:0 评论:0 创建时间:2021-02-04T15:20:26


【作品展示】

center_image

 

【作品介绍】

大家来猜诗

 

【作品源代码】

import jieba
from nltk.classify import NaiveBayesClassifier

#收集证据
#读取苏轼的诗
with open('sushi.txt','r',encoding='UTF-8-sig') as txt:
    text1=txt.read()
    list1=jieba.lcut(text1)
result1=' '.join(list1)
# print(list1)
# print(result1)

#读取陆游的诗
with open('luyou.txt','r',encoding='UTF-8-sig') as txt:
    text2=txt.read()
    list2=jieba.lcut(text2)
result2=' '.join(list2)
# print(list2)
# print(result2)

#词语特征函数
def word_feats(words):
    return dict([(word,True)for word in words])

#给故事词语贴标签
ss_features=[(word_feats(ss),'ss') for ss in result1]
ly_features=[(word_feats(ly),'ly') for ly in result2]

train_set=ss_features+ly_features

classifier=NaiveBayesClassifier.train(train_set)

print(classifier.classify({'竹':True}))

print('少年,诗落谁家,敢挑战吗?!')
print('我们的游戏规则是:你只需输入苏轼/陆游的诗句,程序就能猜出作者呦!')
print('-----------------------------------------------------------------')

sentence=input('请在这里输入想到的一句苏轼或陆游的诗句:')

words=jieba.lcut(sentence)
print(words)

ss=0
ly=0

for word in words:
    print(word)
    classResult=classifier.classify(word_feats(word))
    if classResult=='ss':
        ss+=1
    if classResult=='ly':
        ly+=1

su=ss/len(words)
lu=ly/len(words)
print('苏轼的可能性:',su)
print('陆游的可能性:',lu)

 

【提示】

部分含有Python第三方库相关内容的作品,在海龟编辑器网页端无法运行哦!如遇到这种情况,可以打开下面的链接,下载海龟编辑器客户端:

https://python.codemao.cn


回复

上一页1 页 / 共 0下一页