这里的任何人曾经在
python中使用过可读性0.2或textstat 0.3.1包吗?无法在SO上找到任何涉及此主题的内容或任何有关此问题的好文档.
到目前为止我的代码是:
它遍历本地存储的一堆txt文件,并将结果(可读性度量)打印到主文本文件中.
from textstat.textstat import textstat
import os
import glob
import contextlib
@contextlib.contextmanager
def stdout2file(fname):
import sys
f = open(fname, 'w', encoding="utf-8")
sys.stdout = f
yield
sys.stdout = sys.__stdout__
f.close()
def readability():
os.chdir(r"F:\Level1\Level2")
with stdout2file("Results_readability.txt"):
for file in glob.iglob("*.txt"): # iterates over all files in the directory ending in .txt
with open(file, encoding="utf8") as fin:
contents = fin.read()
if __name__ == '__main__':
print(textstat.flesch_reading_ease(contents))
print(file.split(os.path.sep)[-1], end=" | ")
print(textstat.smog_index(contents), end="\n ")
print(file.split(os.path.sep)[-1], end=" | ")
print(textstat.gunning_fog(contents), end="\n ")
这很好用,但我有两个问题:
>是否可以将我的主文件存储到另一个目录中?如果我使用上面的代码,我的masterfile创建在与我的迭代文件相同的目录中,这是毫无意义的……
>任何人都有经验这些包的准确性如何?我刚刚在textstat和http://www.webpagefx.com/tools/read-able/check.php/http://gunning-fog-index.com/中测试了相同的字符串,并在所有度量上获得了显着不同的结果?
任何帮助赞赏.
最佳答案 我怀疑textstat使用不同的系数.一个简单的检查:在一个由一个音节组成的单词组成的句子上运行它.我使用了文字“号”:
In: textstat.flesch_kincaid_grade("No.")
Out: -4.6
但根据文献中的公式,答案应该是-3.4
(那是0.39 * 1 11.8 * 1-15.59)