一个问答Python小程序代码
时间: 2023-04-05 09:01:13 浏览: 122
你好,我是 CSDN 开发的 C 知道,很高兴为您解答问题。关于您的问题,我可以为您提供一个简单的 Python 小程序代码,用于问答:
```
while True:
question = input("请输入您的问题:")
if question == "退出":
break
else:
answer = "这是一个回答"
print(answer)
```
您可以将程序保存为一个 .py 文件,然后在命令行中运行。程序会不断地等待您输入问题,并输出一个固定的回答。如果您输入“退出”,程序将会结束。希望这个程序能够帮助到您。
相关问题
用python代码写一个问答小程序
以下是一个简单的问答小程序,使用Python编写:
```
print("欢迎来到问答小程序!")
while True:
question = input("请输入一个问题:")
if question == "退出":
print("感谢使用问答小程序,再见!")
break
else:
answer = input("请输入问题的答案:")
print("问题是:" + question)
print("答案是:" + answer)
```
程序会不断循环,等待用户输入问题。如果用户输入“退出”,程序会结束并退出循环。否则,程序会要求用户输入问题的答案,并将问题和答案打印出来。
用python写一个高级点的知识问答小程序,且写出程序代码
好的,我将为你提供一个简单的基于文本的知识问答小程序的代码示例,代码如下:
```python
# 导入需要的库
import nltk
import numpy as np
from sklearn.feature_extraction.text import TfidfVectorizer
from sklearn.metrics.pairwise import cosine_similarity
# 加载语料库
nltk.download('punkt')
nltk.download('wordnet')
nltk.download('averaged_perceptron_tagger')
from nltk.corpus import wordnet as wn
from nltk.tokenize import word_tokenize, sent_tokenize
from nltk.stem import WordNetLemmatizer
def get_synonyms(word):
# 获取一个单词的同义词
synonyms = set()
for syn in wn.synsets(word):
for lemma in syn.lemmas():
synonyms.add(lemma.name())
return list(synonyms)
def get_definition(word):
# 获取一个单词的定义
synset = wn.synset(word + '.n.01')
return synset.definition()
def get_answer(question, corpus):
# 对问题进行预处理
lemmatizer = WordNetLemmatizer()
question = question.lower()
words = word_tokenize(question)
words = [lemmatizer.lemmatize(word) for word in words]
words = [word for word in words if word.isalnum()]
# 构建TF-IDF向量
vectorizer = TfidfVectorizer()
corpus.append(' '.join(words))
tfidf_matrix = vectorizer.fit_transform(corpus)
# 计算问题与语料库中所有文档的余弦相似度
sim_matrix = cosine_similarity(tfidf_matrix[-1], tfidf_matrix[:-1])
sim_scores = sim_matrix.flatten()
ranked_docs = sim_scores.argsort()[::-1]
# 根据相似度排序,找到最相关的文档
max_sim = sim_scores[ranked_docs[0]]
if max_sim == 0:
return "我不知道答案"
else:
answer = corpus[ranked_docs[0]]
return answer
# 加载语料库
corpus = ["Python是一种动态解释性高级编程语言。",
"Java是一种广泛使用的计算机编程语言。",
"Ruby是一种简单而强大的面向对象编程语言。"]
# 交互式问答
while True:
question = input("请输入您的问题:")
if question == "退出":
break
answer = get_answer(question, corpus)
print(answer)
```
该程序使用了NLTK和Scikit-learn库,实现了一个简单的基于文本的知识问答系统。程序中使用了TF-IDF向量和余弦相似度计算来衡量问题与语料库中所有文档的相似度,并返回与问题最相关的文档作为答案。程序只是一个简单的示例,还有很多可以优化的地方。
阅读全文