forked from mrlan/EnglishPal
				
			Fix bug 533
							parent
							
								
									5d4547986f
								
							
						
					
					
						commit
						52d8c12e45
					
				|  | @ -1,16 +1,16 @@ | ||||||
| import csv | import csv | ||||||
| 
 | 
 | ||||||
| from WordFreq import WordFreq | from app.WordFreq import WordFreq | ||||||
| from app.UseSqlite import RecordQuery | from app.UseSqlite import RecordQuery | ||||||
| from wordfreqCMD import youdao_link, sort_in_descending_order | from app.wordfreqCMD import youdao_link, sort_in_descending_order | ||||||
| import pickle_idea, pickle_idea2 | from app import pickle_idea, pickle_idea2 | ||||||
| import os | import os | ||||||
| import random, glob | import random, glob | ||||||
| import hashlib | import hashlib | ||||||
| from datetime import datetime | from datetime import datetime | ||||||
| from flask import Flask, request, redirect, render_template, url_for, session, abort, flash, get_flashed_messages | from flask import Flask, request, redirect, render_template, url_for, session, abort, flash, get_flashed_messages | ||||||
| from difficulty import get_difficulty_level_for_user, text_difficulty_level, user_difficulty_level | from app.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 app.model.article import get_all_articles, get_article_by_id, get_number_of_articles | ||||||
| import logging | import logging | ||||||
| import re | import re | ||||||
| 
 | 
 | ||||||
|  | @ -29,8 +29,14 @@ def load_text_list_from_db(db_file): | ||||||
| def load_word_list(csv_file): | def load_word_list(csv_file): | ||||||
|     with open(csv_file, 'r', encoding='utf-8') as f: |     with open(csv_file, 'r', encoding='utf-8') as f: | ||||||
|         reader = csv.reader(f) |         reader = csv.reader(f) | ||||||
|         # 使用正则表达式匹配只包含字母的单词 |         word_set = set() | ||||||
|         return set(re.sub(r'\W+', '', word.strip().lower()) for row in reader for word in row[0].split(',') if word.strip()) |         for row in reader: | ||||||
|  |             for word in row[0].split(','): | ||||||
|  |                 clean_word = re.sub(r'\W+', '', word.strip().lower()) | ||||||
|  |                 if clean_word: | ||||||
|  |                     word_set.add(clean_word) | ||||||
|  |         return word_set | ||||||
|  | 
 | ||||||
| def calculate_coverage(text_list, word_set): | def calculate_coverage(text_list, word_set): | ||||||
|     total_words = sum(len(article.split()) for article in text_list) |     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) |     covered_words = sum(len(set(article.split()).intersection(word_set)) for article in text_list) | ||||||
|  |  | ||||||
|  | @ -3,7 +3,7 @@ | ||||||
| # Written permission must be obtained from the author for commercial uses. | # Written permission must be obtained from the author for commercial uses. | ||||||
| ########################################################################### | ########################################################################### | ||||||
| 
 | 
 | ||||||
| from wordfreqCMD import remove_punctuation, freq, sort_in_descending_order | from app.wordfreqCMD import remove_punctuation, freq, sort_in_descending_order | ||||||
| import string | import string | ||||||
| 
 | 
 | ||||||
| class WordFreq: | class WordFreq: | ||||||
|  |  | ||||||
|  | @ -7,7 +7,7 @@ | ||||||
| 
 | 
 | ||||||
| import pickle | import pickle | ||||||
| import math | import math | ||||||
| from wordfreqCMD import remove_punctuation, freq, sort_in_descending_order, sort_in_ascending_order | from app.wordfreqCMD import remove_punctuation, freq, sort_in_descending_order, sort_in_ascending_order | ||||||
| import snowballstemmer | import snowballstemmer | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
|  | @ -9,6 +9,7 @@ from flask import escape | ||||||
| from Login import * | from Login import * | ||||||
| from Article import * | from Article import * | ||||||
| import Yaml | import Yaml | ||||||
|  | from app import pickle_idea | ||||||
| from app.wordfreqCMD import sort_in_descending_order | from app.wordfreqCMD import sort_in_descending_order | ||||||
| from user_service import userService | from user_service import userService | ||||||
| from account_service import accountService | from account_service import accountService | ||||||
|  |  | ||||||
|  | @ -1,23 +1,17 @@ | ||||||
| 
 | from app.Article import load_text_list_from_db, load_word_list, calculate_coverage | ||||||
| from app.Article import load_text_list_from_db |  | ||||||
| from app.main import load_word_list, calculate_coverage |  | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| def test_coverage_percentage(): | def test_coverage_percentage(): | ||||||
|     try: |     try: | ||||||
|         db_file = "db\wordfreqapp.db" |         text_list = load_text_list_from_db("db\wordfreqapp.db") | ||||||
|         csv_file = "db\The_Oxford.csv" |         word_set = load_word_list("db\The_Oxford.csv") | ||||||
|         text_list = load_text_list_from_db(db_file) |         coverage_percentage = calculate_coverage(text_list, word_set) | ||||||
|         word_set = load_word_list(csv_file) | 
 | ||||||
|         coverage_percentage = "{:.2f}".format(calculate_coverage(text_list, word_set)) |         assert 0 <= coverage_percentage <= 100, "Coverage percentage is not within the range [0, 100]" | ||||||
|         print("coverage_percentage:", coverage_percentage); | 
 | ||||||
|  |         print("coverage_percentage:", coverage_percentage) | ||||||
|     except Exception as e: |     except Exception as e: | ||||||
|         print(e) |         print(e) | ||||||
| 
 | 
 | ||||||
| if __name__ == '__main__': | if __name__ == "__main__": | ||||||
|     test_coverage_percentage(); |     test_coverage_percentage() | ||||||
| 
 |  | ||||||
| 
 |  | ||||||
| 
 |  | ||||||
| 
 |  | ||||||
| 
 |  | ||||||
|  | @ -7,7 +7,7 @@ import collections | ||||||
| import string | import string | ||||||
| import operator | import operator | ||||||
| import os, sys # 引入模块sys,因为我要用里面的sys.argv列表中的信息来读取命令行参数。 | import os, sys # 引入模块sys,因为我要用里面的sys.argv列表中的信息来读取命令行参数。 | ||||||
| import pickle_idea | from app import pickle_idea | ||||||
| 
 | 
 | ||||||
| def freq(fruit): | def freq(fruit): | ||||||
|     ''' |     ''' | ||||||
|  |  | ||||||
		Loading…
	
		Reference in New Issue