# FormalityAnalyzer **Repository Path**: santongding/formality-analyzer ## Basic Information - **Project Name**: FormalityAnalyzer - **Description**: 英语文章正式程度分析 - **Primary Language**: Python - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2021-06-07 - **Last Updated**: 2022-06-22 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README 使用方法: 将英文文本以utf-8编码且为txt格式的文件放入工程目录 Data/Test 内,然后执行Solver.py 文章分段方法: 对于较长文章,以一个值x,将文章每x句分为一组,不考虑文章本身的段落结构 目前x=10 涉及特征向量(以组为单位提取一个特征向量,每组x句): 段落: 句子中单词个数的平均值 词汇: 组中每类词性所出现的频率,标点符号也被视为一种词性.若词性不存在于词性列表中,归为单独一组.词性列表见 Tools/Constant.PartOfSpeechList //设词典中sum为总频率,max为所有单词中sum的最大值,sp为spoken频率,fic为fiction频率,mag为magazine频率,aca为academic频率 //设cnt为组中出现在词典中的单词个数,ncnt为没有出现的单词个数 ncnt/(cnt+ncnt) (Σsum(i)/max)/cnt //sum(i)为出现在词典中的单词的sum值,以下同 (Σsp(i)/sum(i))/cnt (Σfic(i)/sum(i))/cnt (Σmag(i)/sum(i))/cnt (Σaca(i)/sum(i))/cnt 语法结构: 语法结构树中叶子节点的深度的平均值(先求和再除以所有句子总的叶子节点个数) 每个句子语法结构树的高度的平均值 机器学习方法: 使用sklearn.linear_model.LassoCV,带交叉验证的Lasso回归,提供多个α进行交叉验证训练,并输出效果最好的一种.具体数学原理俺也不知道