gpt4 book ai didi

google-apps-script - Google 文档中的部分字数统计

转载 作者:行者123 更新时间:2023-12-04 12:44:46 25 4
gpt4 key购买 nike

Google Docs 插件是否可以计算每个标题(部分)的字数?下图显示了我想要的。

screenshot

有没有办法在侧边栏或任何其他方式中显示这种字数统计信息?

最佳答案

这是一个执行此操作的脚本。在 Google Docs 中,标题是一种由 getHeading() 区分的段落。属性。因此有 9 个级别的段落:标题、副标题、h1...h6 和正常。

该脚本首先查找每个段落的级别和每个段落的字数。然后,对于每个段落,它遍历所有后续“正常”段落,添加它们的字数;当达到另一个相同或更高级别的段落时,这会停止。

我的理解是标题中的单词本身不应包含在字数统计中,但如果需要,可以更改。

由于这不是一个附加组件,因此没有显示信息的侧边栏。我只是将结果附加到最后,将每个标题复制到那里并附加(X 个字)到其文本中。它看起来像这样:

Book title (108 words)
Chapter 1 (54 words)
Section 1 (15 words)
Section 2 (20 words)
Chapter 2 (54 words)
Section 1 (54 words)
Subsection 1 (31 words)
Subsection 2 (13 words)

在我的示例文本中,第 1 章在第一节之前有一些“介绍”普通文本,这就是为什么它的字数高于两节的字数总和。

脚本:
function countPerSection() {                
var body = DocumentApp.getActiveDocument().getBody();
var para = body.getParagraphs();
var levels = para.map(function(p) {
return [DocumentApp.ParagraphHeading.TITLE,
DocumentApp.ParagraphHeading.SUBTITLE,
DocumentApp.ParagraphHeading.HEADING1,
DocumentApp.ParagraphHeading.HEADING2,
DocumentApp.ParagraphHeading.HEADING3,
DocumentApp.ParagraphHeading.HEADING4,
DocumentApp.ParagraphHeading.HEADING5,
DocumentApp.ParagraphHeading.HEADING6,
DocumentApp.ParagraphHeading.NORMAL].indexOf(p.getHeading());
});
var paraCounts = para.map(function (p) {
return p.getText().split(/\W+/).length;
});

var counts = [];
for (var i = 0; i < para.length; i++) {
var count = 0;
for (var j = i+1; j < para.length; j++) {
if (levels[j] <= levels[i]) {
break;
}
if (levels[j] == 8) {
count += paraCounts[j];
}
}
counts.push(count);
}

for (var i = 0; i < para.length; i++) {
if (levels[i] < 8) {
body.appendParagraph(para[i].copy()).appendText(" (" + counts[i] + " words)");
}
}
}

关于google-apps-script - Google 文档中的部分字数统计,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47954341/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com