forked from mrlan/EnglishPal
				
			Fix bug 533
							parent
							
								
									d6f4c247ea
								
							
						
					
					
						commit
						62d978ad54
					
				|  | @ -1,3 +1,5 @@ | ||||||
|  | import csv | ||||||
|  | 
 | ||||||
| from WordFreq import WordFreq | from WordFreq import WordFreq | ||||||
| from app.UseSqlite import RecordQuery | from app.UseSqlite import RecordQuery | ||||||
| from wordfreqCMD import youdao_link, sort_in_descending_order | from wordfreqCMD import youdao_link, sort_in_descending_order | ||||||
|  | @ -10,6 +12,7 @@ from flask import Flask, request, redirect, render_template, url_for, session, a | ||||||
| from difficulty import get_difficulty_level_for_user, text_difficulty_level, user_difficulty_level | from difficulty import get_difficulty_level_for_user, text_difficulty_level, user_difficulty_level | ||||||
| from model.article import get_all_articles, get_article_by_id, get_number_of_articles | from model.article import get_all_articles, get_article_by_id, get_number_of_articles | ||||||
| import logging | import logging | ||||||
|  | import re | ||||||
| 
 | 
 | ||||||
| path_prefix = './' | path_prefix = './' | ||||||
| db_path_prefix = './db/'  # comment this line in deployment | db_path_prefix = './db/'  # comment this line in deployment | ||||||
|  | @ -23,6 +26,17 @@ def load_text_list_from_db(db_file): | ||||||
|     text_list = [row['text'] for row in result if 'text' in row] |     text_list = [row['text'] for row in result if 'text' in row] | ||||||
|     return text_list |     return text_list | ||||||
| 
 | 
 | ||||||
|  | def load_word_list(csv_file): | ||||||
|  |     with open(csv_file, 'r', encoding='utf-8') as f: | ||||||
|  |         reader = csv.reader(f) | ||||||
|  |         # 使用正则表达式匹配只包含字母的单词 | ||||||
|  |         return set(re.sub(r'\W+', '', word.strip().lower()) for row in reader for word in row[0].split(',') if word.strip()) | ||||||
|  | def calculate_coverage(text_list, word_set): | ||||||
|  |     total_words = sum(len(article.split()) for article in text_list) | ||||||
|  |     covered_words = sum(len(set(article.split()).intersection(word_set)) for article in text_list) | ||||||
|  |     return (covered_words / total_words) * 10000 if total_words else 0 | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
| def total_number_of_essays(): | def total_number_of_essays(): | ||||||
|     return get_number_of_articles() |     return get_number_of_articles() | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
							
								
								
									
										33330
									
								
								app/db/The_Oxford.csv
								
								
								
								
							
							
						
						
									
										33330
									
								
								app/db/The_Oxford.csv
								
								
								
								
							
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							
							
								
								
									
										12
									
								
								app/main.py
								
								
								
								
							
							
						
						
									
										12
									
								
								app/main.py
								
								
								
								
							|  | @ -1,6 +1,5 @@ | ||||||
| #! /usr/bin/python3 | #! /usr/bin/python3 | ||||||
| # -*- coding: utf-8 -*- | # -*- coding: utf-8 -*- | ||||||
| import csv |  | ||||||
| 
 | 
 | ||||||
| ########################################################################### | ########################################################################### | ||||||
| # Copyright 2019 (C) Hui Lan <hui.lan@cantab.net> | # Copyright 2019 (C) Hui Lan <hui.lan@cantab.net> | ||||||
|  | @ -28,16 +27,6 @@ path_prefix = '/var/www/wordfreq/wordfreq/' | ||||||
| path_prefix = './'  # comment this line in deployment | path_prefix = './'  # comment this line in deployment | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| def load_word_list(csv_file): |  | ||||||
|     with open(csv_file, 'r', encoding='utf-8') as f:  # 添加encoding参数指定编码方式 |  | ||||||
|         reader = csv.reader(f) |  | ||||||
|         return set(word.strip().lower() for row in reader for word in row[0].split(',')) |  | ||||||
| 
 |  | ||||||
| def calculate_coverage(text_list, word_set): |  | ||||||
|     total_words = sum(len(article.split()) for article in text_list) |  | ||||||
|     covered_words = sum(len(set(article.split()).intersection(word_set)) for article in text_list) |  | ||||||
|     return (covered_words / total_words) * 10000 if total_words else 0 |  | ||||||
| 
 |  | ||||||
| def get_random_image(path): | def get_random_image(path): | ||||||
|     ''' |     ''' | ||||||
|     返回随机图 |     返回随机图 | ||||||
|  | @ -103,6 +92,7 @@ def mainpage(): | ||||||
|     coverage_percentage = "{:.2f}".format(calculate_coverage(text_list, word_set)) |     coverage_percentage = "{:.2f}".format(calculate_coverage(text_list, word_set)) | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
|  | 
 | ||||||
|     if request.method == 'POST':  # when we submit a form |     if request.method == 'POST':  # when we submit a form | ||||||
|         content = escape(request.form['content']) |         content = escape(request.form['content']) | ||||||
|         f = WordFreq(content) |         f = WordFreq(content) | ||||||
|  |  | ||||||
|  | @ -1,4 +1,4 @@ | ||||||
| from model import * | from app.model import * | ||||||
| from datetime import datetime | from datetime import datetime | ||||||
| 
 | 
 | ||||||
| def add_article(content, source="manual_input", level="5", question="No question"): | def add_article(content, source="manual_input", level="5", question="No question"): | ||||||
|  |  | ||||||
|  | @ -1,4 +1,4 @@ | ||||||
| from model import * | from app.model import * | ||||||
| from Login import md5 | from Login import md5 | ||||||
| from pony import orm | from pony import orm | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
		Loading…
	
		Reference in New Issue