这里有谁曾在python中使用过可读性0.2或textstat 0.3.1包?在这个问题上找不到任何东西,也找不到任何关于这个问题的好文件。
到目前为止,我的代码是:它在本地存储的大量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 ")这很好,但是我有两个问题:
任何帮助都很感激。
发布于 2016-09-16 19:32:46
对于第一个问题,您可以指定您的文件位于任何目录中,只需给它提供完整的路径:"F:\Level1\Level2\Results_readability.txt"或相对路径"..\Other\Results_readibilty.txt"
关于第二个问题。YMMV可读性不是一门精确的科学。这是有可能构成一个句子,使用简短,但晦涩的词,似乎容易读,但不是。
再一次,要计算音节的数量,需要不同的启发式方法来决定如何将一个单词分割成音节,如果这在您的文本上失败了,就会导致错误。也就是说,textstat确实实现了各种可读性索引的正确版本。如果结果不同,您可以调查原因。
发布于 2017-05-25 15:50:49
我怀疑textstat使用不同的系数。简单的检查:用一个由一个音节组成的单词组成的句子运行它。我使用了文本"No."
In: textstat.flesch_kincaid_grade("No.")
Out: -4.6但根据文献中的公式,答案应该是-3.4 (即0.39*1+11.8*1-15.59)
https://stackoverflow.com/questions/39537707
复制相似问题