forked from mrlan/EnglishPal
WIP:[REFACTOR]:main.py,create_clozeTest.py:重构
parent
0117470ab5
commit
9d5175d0a6
|
@ -1,7 +1,9 @@
|
|||
import random
|
||||
import sqlite3,re
|
||||
import sqlite3
|
||||
import re
|
||||
from nltk.corpus import wordnet as wn
|
||||
|
||||
|
||||
class Essay:
|
||||
def __init__(self):
|
||||
self._article_id = 0
|
||||
|
@ -27,7 +29,8 @@ class Essay:
|
|||
conn = sqlite3.connect("static/wordfreqapp.db")
|
||||
# 创建游标
|
||||
cursor = conn.cursor()
|
||||
cursor.execute("select text,level from article where article_id = "+str(id))
|
||||
cursor.execute(
|
||||
"select text,level from article where article_id = "+str(id))
|
||||
results = cursor.fetchall()
|
||||
conn.commit()
|
||||
cursor.close()
|
||||
|
@ -53,7 +56,8 @@ class Essay:
|
|||
conn = sqlite3.connect("static/wordfreqapp.db")
|
||||
# 创建游标
|
||||
cursor = conn.cursor()
|
||||
cursor.execute("select word from words where difficulty = " + str(self._difficulty))
|
||||
cursor.execute(
|
||||
"select word from words where difficulty = " + str(self._difficulty))
|
||||
results = cursor.fetchall()
|
||||
conn.commit()
|
||||
cursor.close()
|
||||
|
@ -82,26 +86,27 @@ class Essay:
|
|||
|
||||
database_words = essay.find_same_difficulty_words()
|
||||
essay_words = essay.split_essay_to_word()
|
||||
# 寻找文章中与文章难度相同的单词存入word[]中
|
||||
for essay_word in essay_words:
|
||||
if database_words.__contains__(essay_word) and essay_word not in word:
|
||||
word.append(essay_word)
|
||||
|
||||
# 给出因文章内容太少的问题导致题目少于10个的情况
|
||||
if len(word) <= 10:
|
||||
answers = word
|
||||
else:
|
||||
else: # 将找出来的单词作为正确答案存入answers[]中
|
||||
for i in range(0, 10):
|
||||
w = word[random.randint(0, len(word) - 1)]
|
||||
if not answers.__contains__(w):
|
||||
answers.append(w)
|
||||
|
||||
self._answers = answers
|
||||
|
||||
# 用题号来替换文章中的单词
|
||||
No = 1
|
||||
for answer in answers:
|
||||
questions.append(list(answer.split(",")))
|
||||
self._essay = self._essay.replace(answer, '('+str(No)+')____', 1)
|
||||
No += 1
|
||||
|
||||
# 生成每道题目的四个选项
|
||||
for question in questions:
|
||||
synset = list(set(essay.get_word_synsets(question[0])))
|
||||
if len(synset) == 0 or len(synset) == 1:
|
||||
|
|
|
@ -109,6 +109,10 @@ essay = Essay()
|
|||
|
||||
@app.route('/gocloze', methods=['GET', 'POST'])
|
||||
def go_ClozeTest():
|
||||
'''
|
||||
根据GET或POST方法来分别返回答题前后的完型填空界面
|
||||
:return: 完型填空界面
|
||||
'''
|
||||
if request.method == 'GET':
|
||||
essay._article_id += 1
|
||||
essay.create_clozeTest(essay)
|
||||
|
|
Loading…
Reference in New Issue