我正在研究语言学,并试图计算平均句子长度以及该平均值的变化程度。我努力做到每行只留下一句话
例如:
La dernière fois qu'on, la dernière fois on l'a pas fait
瓦埃
有 14 个单词,平均每个句子 7 个单词,方差为 (7-13)^2/2 + 36/2 = 36,这非常高。
我使用该gedit
命令并复制了我过去的工作:例如文件的开头phrasesAntoine
:
Allumlalum...Elal...
Allume sinon sinon non,mais au moins pour verifier。
丝丝
La dernière fois qu'on, la dernière fois on l'a pas fait
Les amis j'vous présente Bob,Bob le gri-gri。
向朋友们致敬,嘿
天狮,在 grigri 路上,有 le grigri 和 le parler 权利
这就是假释
伊尔 a dû…
我正在寻找一个脚本,它能够将文本文件的每一行放入一个数组中,以便了解它们的长度并找到平均值和方差或任何允许我找到此方差的想法。实际上“Qu'est-ce que c'est”是 6 个单词,每个单词之间用 分隔空白的或者'或者-
我首先想到的是:
file wc -l >stat
要获取每一行的此信息,但我对脚本编写相当陌生...然后我想到创建另一个名为calculator
将统计信息作为变量的参数的文件$file
:
file
int number_of_phrases = $file wc -l;
int mean = /*number of words divided by number of phrases*/
int sum = 0;
int variance =0 ;
for i=0 to number_of_phrases{
/* here is the calculation of xi-m
sum = sum + (number of words at line i divided - mean)^2*/
}
variance = sum/number_of_phrase
这是我最好的猜测。你有更好的主意吗?
答案1
珀尔可能是此类工作的最佳语言。 Perl 的主要作者,拉里·沃尔,既是一名unix程序员,又是一名语言学家,该语言强烈体现了他对语言学的兴趣。有无数perl
模块用于语言处理以及简单的文本处理。
例如,语言::句子这是一个perl
将段落分割成句子的模块。以及许多其他Lingua::
模块。事实上,Lingua::Sentence
并且相关模块是为与您现在正在做的任务非常相似的任务而编写的,即文本统计分析(在本例中,欧洲帕尔语料库,摘自欧洲议会会议记录的文本)
例如,您可以将Lingua::Sentence
每个段落拆分为句子,计算每个句子中的单词数,将计数存储在数组中,然后对数组执行所需的任何统计分析。
Perl 还有许多用于统计分析的模块,您也可以在以下位置找到它们:CPAN(综合 Perl 存档网络)或者您可以将原始数据输出到文件并使用右或其他一些统计工具。