benmarwick/wordcountaddin

GitHub: benmarwick/wordcountaddin

为 R Markdown 文档提供字数统计与可读性分析的 RStudio 插件。

Stars: 343 | Forks: 35

# wordcountaddin [![Last-changedate](https://img.shields.io/badge/last%20change-2019--01--09-brightgreen.svg)](https://github.com/benmarwick/wordcountaddin/commits/master) [![minimal R version](https://img.shields.io/badge/R%3E%3D-3.5.2-brightgreen.svg)](https://cran.r-project.org/) [![Licence](https://img.shields.io/github/license/mashape/apistatus.svg)](http://choosealicense.com/licenses/mit/) [![Travis-CI Build Status](https://travis-ci.org/benmarwick/wordcountaddin.png?branch=master)](https://travis-ci.org/benmarwick/wordcountaddin) [![codecov.io](https://codecov.io/github/benmarwick/wordcountaddin/coverage.svg?branch=master)](https://codecov.io/github/benmarwick/wordcountaddin?branch=master) [![ORCiD](https://img.shields.io/badge/ORCiD-0000--0001--7879--4531-green.svg)](http://orcid.org/0000-0001-7879-4531) 这个 R 包是一个 [RStudio addin](https://rstudio.github.io/rstudioaddins/),用于统计 [R markdown](http://rmarkdown.rstudio.com/) 文档中文本的字数和字符数。它还包含一个计算可读性统计数据的函数, 因此你可以了解你的文档阅读起来的难易程度。 你可以通过三种方式统计你的 Rmd 文件中的字数: - 在当前活动的 Rmd 中统计选定文本的字数,方法是在 RStudio 中用鼠标选择部分文本,然后使用 Wordcount Addin - 在 RStudio 中统计当前活动的 Rmd 中的所有字数,方法是在未选中文本的情况下使用 Wordcount Addin - 直接从控制台或命令行使用 `word_count` 函数统计某个 Rmd 文件中的所有字数(不需要 RStudio), 并将文件名指定为该函数的参数(例如 `wordcountaddin::word_count("my_file.Rmd")`)。这将返回一个 单一的整数结果,而不是其他函数所返回的 Markdown 表格。 独立于 Rmd 文件之外,你还可以使用 `text_stats_chr` 函数从控制台统计字符向量中的字数 (以及用于可读性的 `readability_chr`)。 ## 字数统计 在统计你的 Rmd 文档文本的字数时,以下内容将被 忽略: - YAML 元数据 - 代码块和内联代码 - HTML 注释标签内的文本:`` - 文本中的 HTML 标签:`
`, `
` - 这种格式的内联 URL:`[text of link](url)` - 带有标题的图片,格式如下: `![this is the caption](/path/to/image.png)` - 标题级别指示符,例如 `#` 和 `##` 等。 并且因为我使用的正则表达式非常简单,字数统计函数可能也会 忽略你实际文本中类似于这些内容的片段。 字数统计将包含标题、块引用、原始 代码块、表格、原始 LaTeX 和原始 HTML 中的文本。 通常,统计字数的方法有很多种,目前没有广泛 接受的标准方法。方法的多样性在于对单词和句子的 定义不同。运行 `?stringi::stri_stats_latex` 和 `?koRpus::describe` 以了解更多关于 字数统计方法的信息。 出于好奇,想看看它们之间有什么不同,我在这个 addin 中加入了 两种方法。我使用了 [stringi](https://cran.r-project.org/web/packages/stringi/index.html) 和 [koRpus](https://cran.r-project.org/web/packages/koRpus/index.html) 包中的函数。如果你感兴趣,可以将你使用这个 addin 得到的结果与 http://wordcounttools.com/ 等在线工具进行对比。 `Word count` 函数的输出是 R 控制台中的一个 markdown 表格, 可能如下所示: ``` |Method |koRpus |stringi | |:---------------|:-----------|:-------------| |Word count |107 |104 | |Character count |604 |603 | |Sentence count |10 |Not available | |Reading time |0.5 minutes |0.5 minutes | ``` 如果你想在其它 R 函数中重用这些结果,你可以像这样使用一个 未导出的函数 `wordcountaddin:::text_stats_fn_(text)`, 其中 `text` 是你的文本组成的字符向量(长度为 1,即 你所有的文本都在同一个字符串中)。输出结果将是一个 list 对象,并且会包含 markdown 表格中未显示的其他多项内容。 ## 可读性 可读性函数会忽略与字数统计函数相同的文本部分, 然后计算大量[可读性 统计数据](https://en.wikipedia.org/wiki/Readability_test)的值。 这些可读性测量指标大多旨在估算理解你的文本所需的教育年限。 它们会考察每个单词的字符数和音节数、每句话的单词数等。 它们并不分析单词的含义。得分在 10-12 左右大致相当于美国高中毕业生的阅读水平。这些统计数据是由 [koRpus](https://cran.r-project.org/web/packages/koRpus/index.html) 包计算的。 该可读性函数大约会返回 27 项测量指标(具体取决于你的文本长度), 包括 Automated Readability Index (ARI)、Coleman-Liau、Flesch-Kincaid Grade Level, 以及 Simple Measure of Gobbledygook (SMOG)。要获取可读性函数返回的 可读性测量指标的完整列表, 请运行 `?koRpus::readability`。该帮助页面还显示了每项统计指标的 公式和引用文献(以及此处未使用的另外 20 多项 可读性统计指标)。 当然,可读性统计数据并不能代替你对自己写作在传达 思想和信息方面的有效性所进行的批判性自我反思。为了在这方面获得帮助,请阅读 [*Style: Toward Clarity and Grace*](http://www.amazon.com/dp/0226899152)。 `readability` 函数的输出是 R 控制台中的一个 markdown 表格, 可能如下所示: ``` |index |flavour |raw |grade |age | |:---------------------|:-----------|:-----|:-----|:----| |ARI | | |2.31 | | |Coleman-Liau | |66 |4.91 | | |Danielson-Bryan DB1 | |6.46 | | | |Danielson-Bryan DB2 | |60.39 |6 | | |Dickes-Steiwer | |53.07 | | | |ELF | |1.83 | | | |Farr-Jenkins-Paterson | |66.81 |8-9 | | |Flesch |en (Flesch) |69.57 |8-9 | | |Flesch-Kincaid | | |4.85 |9.8 | |FOG | | |7.84 | | |FORCAST | | |10.28 |15.3 | |Fucks | |23.38 |4.83 | | |Linsear-Write | | |2.35 | | |LIX | |32.41 |< 5 | | |nWS1 | | |4.19 | | |nWS2 | | |4.72 | | |nWS3 | | |4.14 | | |nWS4 | | |3.64 | | |RIX | |1.42 |5 | | |SMOG | | |8.08 |13.1 | |Strain | |2.44 | | | |TRI | |-94 | | | |Tuldava | |2.57 | | | |Wheeler-Smith | |18.33 |2 | | ``` 与 `word count` 函数类似,如果你想在其它 R 函数中重用这些结果, 你可以像这样使用一个未导出的函数 `wordcountaddin:::readability_fn_(text)`,其中 `text` 是你的文本组成的字符 向量(长度为 1,即你所有的文本都在同一个字符串中)。输出将是一个 list 对象,比上面的汇总表稍微详细一些。 这个 addin 的灵感来源于 [jadd](https://github.com/jennybc/jadd) 和 [WrapRmd](https://github.com/tjmahr/WrapRmd)。 ## 如何安装 使用以下命令安装 `devtools::install_github("benmarwick/wordcountaddin", type = "source", dependencies = TRUE)` 在 RStudio 中前往 `Tools > Addins` 选择并配置 addin。 ## 如何使用 1. 在 RStudio 中打开一个 Rmd 文件。 2. 选择部分文本,它可以包含 YAML、代码块和内联代码 3. 在 RStudio 中前往 `Tools > Addins` 并点击 `Word count` 或 `Readability`。在较长的文档上计算 `Readability` 可能需要一点时间,因为某些统计数据需要统计音节数。 4. 在控制台中查看输出结果 ## 反馈、贡献等 如果发现未能按预期工作的情况,请[提交一个 issue](https://github.com/benmarwick/wordcountaddin/issues/new)。请注意,本项目发布时附带了一份 [贡献指南](CONTRIBUTING.md)和一份 [贡献者行为准则](CONDUCT.md)。参与本项目即表示 你同意遵守其条款。
标签:R, R Markdown, RStudio插件, SOC Prime, 可读性分析, 字数统计, 开发工具, 文本分析