计算多章节文本的平均句长的方法选择

armstrong

高级会员
各位C友国庆节快乐!
有一个问题想请教各位:如一个文本有50章, 存贮的方式有两种:第一种是各章独立存放;第二种是将它们合并成一个文件,如果计算此文本的平均句长等参数时,加载文件是以同时加载50个文件的方式还是加载其整体文件的方式?(本人发现有时两者差别甚至一倍左右)

谢谢!
 
回复: 计算多章节文本的平均句长的方法选择

您的研究目的是什么,平均句长这个指标用来做什么用啊?多说点,大家讨论,别怕泄露idea,
 
回复: 计算多章节文本的平均句长的方法选择

您的研究目的是什么,平均句长这个指标用来做什么用啊?多说点,大家讨论,别怕泄露idea,

呵呵,没有什么idea,是这样的:最近看了《外国语》上一篇文章,上面分析几部小说的TTR和Mean Words in Sentence,自己身边有这几部小说,验证了一下,发现用同一个工具,结果不一样,因此就来请教各位达人。
 
写一行VBA代码,自动计算平均句长(单词数)

写一行VBA代码,自动计算平均句长(单词数)

你把一系列的txt文件都从菜单上的“插入”的“文件”而插入到某个空白文件或新建文件吧。Office的Word已经内置了句子数量和单词数量和每个句子的单词数量的“对象模型”与“配套函数”。你在Word 2003的菜单上,点“工具”的“宏”的“Visual Basic 编辑器”,双击左侧的“Project”的子项目的“Microsoft Word对象”的“ThisDocument”,在右侧出现的空白区域,把下面的三行代码粘贴到空白区域,退出这个窗口之后,在当前的空白Word文件中粘贴或插入大量的文本内容,然后点菜单上的“工具”的“宏”的“宏”,就会弹出一个对话框,在这个对话框的下半部分有“宏的位置”这个下拉选项,你注意要选择为“所有的活动模板和文档”,就能看到“平均句长”这个宏(名),你选中它,点右侧的“运行”这个按钮,就会弹出一个消息框,这个消息框就是报告“平均句长”的。

Sub 平均句长()
MsgBox (ActiveDocument.Words.Count - ActiveDocument.Sentences.Count - 1) / ActiveDocument.Sentences.Count
End Sub


以上的操作,其实就是点了8下而已。如果你觉得有点难以理解的话,可以观看我在优酷网的一个类似操作的视频教学“写一行代码,让Word计算指定区域的句子数量”,持续23分钟而已,你就学会了如何把别人写好的VBA代码运行起来。
http://v.youku.com/v_playlist/f5427313o1p15.html

例如,我们有如下内容的一个Word文件打开了,运行了上面的宏代码:

We love corpus linguistics. I have a dream. I will try.

那么,弹出的消息框就会呈现出“3.6666666”,这就是每个句子有3.66个单词的意思(上面是11个单词分布于3个句子)。


ActiveDocument.Words.Count就是“当前文档的单词的总量”的意思;同理,ActiveDocument.Sentences.Count就是“当前文档的句子的总量”的意思;但是,Word在计算每个句子的单词总量的时候总是把句末标点也计算为一个单词呢,而且整个文件的最末尾的回车符号也要算作一个单词呢。所以,我推出的公式就是ActiveDocument.Words.Count - ActiveDocument.Sentences.Count - 1) / ActiveDocument.Sentences.Count“,而不是”ActiveDocument.Words.Count/ ActiveDocument.Sentences.Count

由此,我们可以看出,VBA编程语言具备Office的多个词库支持下的完整的字、词、句、段的完整的“对象模型”,寥寥一两句,足够其他的各种高级编程语言忙乎七八句以上了,因为英语句子的句末的判断挺复杂的,英语句号就是一个实心点,有可能在句子中是缩写单词或字母的末尾,也有可能是数字的小数点。如果对VBA很陌生或很有兴趣,可以看一眼,我在本站的另一个比较详细的帖子《学好VBA的门径与利弊》:
http://www.corpus4u.org/forum/showpost.php?p=44546&postcount=12
 
Back
顶部