用flask框架基于sbert写一个问答系统,写一个基础的案例
时间: 2023-02-27 10:47:54 浏览: 118
Question-Answering-System:使用NLP + Flask + NLTK创建问答系统
好的,这是一个使用 Flask 框架基于 Sentence-BERT 的问答系统的基础案例。
首先,您需要安装 Flask 和 Sentence-BERT:
```
pip install flask
pip install sentence-transformers
```
然后,创建一个名为 `app.py` 的文件,并编写以下代码:
```python
from flask import Flask, request
from sentence_transformers import SentenceTransformer
app = Flask(__name__)
# Load Sentence-BERT model
model = SentenceTransformer('bert-base-nli-mean-tokens')
# Define a question-answer pair
qa_pair = [("What is Sentence-BERT?", "Sentence-BERT is a variant of BERT that has been fine-tuned for the natural language inference task.")]
@app.route("/", methods=["GET", "POST"])
def index():
if request.method == "POST":
# Get the user's question
question = request.form["question"]
# Get the most similar question from the qa_pair based on Sentence-BERT's cosine similarity
similarities = model.encode(question)
most_similar_index = 0
max_similarity = float('-inf')
for index, similarity in enumerate(similarities):
cos_sim = model.get_cosine_similarity(similarity, model.encode(qa_pair[index][0]))
if cos_sim > max_similarity:
most_similar_index = index
max_similarity = cos_sim
# Return the answer to the most similar question
answer = qa_pair[most_similar_index][1]
return answer
return """
<form action="/" method="post">
<input type="text" name="question">
<input type="submit" value="Submit">
</form>
"""
if __name__ == "__main__":
app.run(debug=True)
```
最后,运行这个程序:
```
python app.py
```
打开您的浏览器,访问 `http://localhost:5000/`,您就可以输入问题,并得到相应的回答了。
希望这个案例能帮助您入门 Flask 和 Sentence-BERT。
阅读全文