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