[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[nongnu] elpa/writegood-mode 41d8a193c1 24/47: Flesch-Kincaid tests
From: |
ELPA Syncer |
Subject: |
[nongnu] elpa/writegood-mode 41d8a193c1 24/47: Flesch-Kincaid tests |
Date: |
Mon, 12 Dec 2022 21:01:41 -0500 (EST) |
branch: elpa/writegood-mode
commit 41d8a193c13eca43e037c25bd23e70fbf627e964
Author: Ben <ben@rentenna.com>
Commit: Ben <ben@rentenna.com>
Flesch-Kincaid tests
---
writegood-mode.el | 39 ++++++++++++++++++++++++++++++++++++++-
1 file changed, 38 insertions(+), 1 deletion(-)
diff --git a/writegood-mode.el b/writegood-mode.el
index ff0f7964b4..e79feef220 100755
--- a/writegood-mode.el
+++ b/writegood-mode.el
@@ -210,6 +210,41 @@
(writegood-passive-voice-turn-off)
(writegood-duplicates-turn-off))
+(defun writegood-count-syllables (str)
+ "Approximate the number of sentences in a string by counting vowels
(including 'y')."
+ (max 1 (length (mapconcat (lambda (x) (if (member x (list 97 101 105 111 117
121)) "." "")) str ""))))
+
+(defun writegood-count-sentences (str)
+ "Approximate the number of sentences in a string by counting '.', '!', and
'?'."
+ (max 1 (length (mapconcat (lambda (x) (if (member x (list 33 46 63)) "."
"")) str ""))))
+
+(defun writegood-count-words (str)
+ (max 1 (/ (length str) 5)))
+
+(defun writegood-reading-ease (&optional start end)
+ "Flesch-Kincaid reading ease test. Scores roughly between 0 and 100."
+ (interactive)
+ (let* ((start (if mark-active (region-beginning) (point-min)))
+ (end (if mark-active (region-end) (point-max)))
+ (text (buffer-substring-no-properties start end))
+ (words (float (writegood-count-words text)))
+ (sentences (float (writegood-count-sentences text)))
+ (syllables (float (writegood-count-syllables text)))
+ (score (- 206.835 (* 1.015 (/ words sentences)) (* 84.6 (/
syllables words)))))
+ (message "Flesch-Kincaid reading ease score: %.2f" score)))
+
+(defun writegood-grade-level (&optional start end)
+ "Flesch-Kincaid grade level test. Converts reading ease score to a grade
level (Score ~ years of school needed to read passage)."
+ (interactive)
+ (let* ((start (if mark-active (region-beginning) (point-min)))
+ (end (if mark-active (region-end) (point-max)))
+ (text (buffer-substring-no-properties start end))
+ (words (float (writegood-count-words text)))
+ (sentences (float (writegood-count-sentences text)))
+ (syllables (float (writegood-count-syllables text)))
+ (score (+ (* 0.39 (/ words sentences)) (* 11.8 (/ syllables
words)) -15.59)))
+ (message "Flesh-Kincaid grade level score: %.2f" score)))
+
;;;###autoload
(define-minor-mode writegood-mode
"Colorize issues with the writing in the buffer."
@@ -220,6 +255,8 @@
(writegood-turn-off))
(font-lock-mode 1)))
-(provide 'writegood-mode)
+(provide 'writegood-mode
+ 'writegood-reading-ease
+ 'writegood-grade-level)
;;; writegood-mode.el ends here
- [nongnu] elpa/writegood-mode 2537107022 34/47: Merge pull request #13 from jjasghar/whitespace, (continued)
- [nongnu] elpa/writegood-mode 2537107022 34/47: Merge pull request #13 from jjasghar/whitespace, ELPA Syncer, 2022/12/12
- [nongnu] elpa/writegood-mode 416453af5a 38/47: Merge pull request #18 from sten0/master, ELPA Syncer, 2022/12/12
- [nongnu] elpa/writegood-mode ecb888b659 01/47: Initial version, ELPA Syncer, 2022/12/12
- [nongnu] elpa/writegood-mode 40c4733cde 25/47: Flesch-Kincaid refactor/cleanup, ELPA Syncer, 2022/12/12
- [nongnu] elpa/writegood-mode 62fa034d08 19/47: Merge pull request #4 from morphling/patch-1, ELPA Syncer, 2022/12/12
- [nongnu] elpa/writegood-mode 3db1a3bbf1 08/47: Added version const and function, ELPA Syncer, 2022/12/12
- [nongnu] elpa/writegood-mode 1dba5de892 29/47: Updated README to highlight new functionality, ELPA Syncer, 2022/12/12
- [nongnu] elpa/writegood-mode d42e8f5500 37/47: Remove executable bit from README.org and writegood-mode.el, ELPA Syncer, 2022/12/12
- [nongnu] elpa/writegood-mode d54eadeedb 47/47: Add tooltips to detected text sections, ELPA Syncer, 2022/12/12
- [nongnu] elpa/writegood-mode 599aed98f5 03/47: Fixed the link in the README to the original scripts, ELPA Syncer, 2022/12/12
- [nongnu] elpa/writegood-mode 41d8a193c1 24/47: Flesch-Kincaid tests,
ELPA Syncer <=
- [nongnu] elpa/writegood-mode c772829f30 10/47: Blocks of comments are now checked as well. (See Test Text for examples), ELPA Syncer, 2022/12/12
- [nongnu] elpa/writegood-mode 07275921a1 22/47: Merge pull request #6 from frankshearar/fix-nits, ELPA Syncer, 2022/12/12
- [nongnu] elpa/writegood-mode 2dcba94eb2 33/47: Whitespaces, ELPA Syncer, 2022/12/12
- [nongnu] elpa/writegood-mode da662098e4 31/47: Fix issue of dynamically updating regexes, ELPA Syncer, 2022/12/12
- [nongnu] elpa/writegood-mode 3c068f389e 23/47: Updated revision to 1.3, ELPA Syncer, 2022/12/12
- [nongnu] elpa/writegood-mode 15f27658e5 28/47: Updated version string., ELPA Syncer, 2022/12/12
- [nongnu] elpa/writegood-mode a99896531a 35/47: Update Artbollocks link, ELPA Syncer, 2022/12/12
- [nongnu] elpa/writegood-mode 572fcbeab0 36/47: Fix Version and Last-Updated to use new policy, ELPA Syncer, 2022/12/12
- [nongnu] elpa/writegood-mode 0bb65772a5 39/47: Add comment about Reading Ease Score, ELPA Syncer, 2022/12/12
- [nongnu] elpa/writegood-mode 664667dbe3 41/47: Merge pull request #21 from zimoun/master, ELPA Syncer, 2022/12/12