
安装nltk,写python一般使用的是集成环境EPD,其中有包管理,可以在线进行桐冲安装。如果不是集成环境,可以通过pip install nltk安装。
》pip install nltk #安装nltk
》nltk.download() #d出一个选择框,可拿轿以按照自己需要的语义或者是功能进行安装
一般要实现分词,分句,以及词性标注和去除停用词的功能时,需要安装stopwords,punkt以及
当出现LookupError时一般就是局敏歼由于缺少相关模块所导致的
By Jiaxian Shi
英文文章的难度从直觉上来讲可以从以下两方面来定义:
句子的难易程度可以从句子的长度和复杂性(从句数量,嵌套)方面来考虑。词汇的难易程度可以从词汇的长度和使用频率(专业词汇,罕见词汇)方面来考虑。通过查阅维基百科等相关资料,发现目前普遍得到运用的可读性标准为Flesch–Kincaid可读性测试消码祥指标。Flesch–Kincaid可读性测试指标由两个指标构成:Flesch Reading Ease(FRE)和Flesch–Kincaid Grade Level(FKGL)。与我们的直觉一致,两者都使用了类似的方法:句子长度和词汇长度(由音节数确定,不单纯考虑字母数)。由于两个指标对句子长度和词汇长度所采取的权重不同(包括正负号),所以两个指标的意义相反:FRE数值越高,文章就越简单,可读性也越高。而FKGL数值越高,文章就越复杂,文章的可读性也就越低。
使用Python强大的自然语言处理(NLP)包NLTK,来实现下述3个功能:
其中,断句使用NLTK提供的非监督学习的预训练模型tokenizers/punkt/english.pickle,分词则使用NLTK推荐的word_tokenize函数(使用TreebankWordTokenizer和PunktSentenceTokenizer模块),分音节则使用NLTK供的SyllableTokenizer模块。需要注意的是,分词会将标点符号分为一个单词,需要手动去除。同时,分音节时会讲英语中的连字符“-”分为一个音拿搏节,也需要手动去除。另外,文章需要进行预处理,去除回车符和空格,并将非标准标点符号转换为英文标准标点符号。
统计出句数,词数和音节数后,即可根据上文提供的公式计算出FRE和FKGL了。本程序使用4段不同类型的英文文章分别计算FRG和FKGL,并使用matplotlib模块绘制出柱状图已做比较。
文章:模行
比较结果如下图所示:
可以发现,文章的难度为:儿童文学<侦探小说<杂志文章<学术论文,这与我们的实际感受是一致的。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)