shell:句子的数量是多少

时间:2014-01-11 17:06:54

标签: shell unix

我需要计算句子和段落的数量,但我不明白如何从文本文件中执行此操作。

我可以使用wc命令计算行数和单词数,但我不理解文本文件中句子和段落的含义。 shell中有任何命令吗?

以下是我们如何计算文本文件中的单词和行数:

wc -w filename

wc -l filename

对于句子和段落,这是我尝试过的:

 grep -c \\. #to count number of sentences.
 grep -o [.'\n'] #to count number of paragraph.

我不明白如何计算文本文件中句子和段落的数量。

任何想法都会有所帮助。

例如:

主要文章:SSID #SSID隐藏的安全性。

尝试保护无线网络的一种简单但无效的方法是SSID(服务集标识符)。[12] [13]除了最随意的入侵努力之外,这几乎没有提供任何保护......

2段,3句。

2 个答案:

答案 0 :(得分:2)

可以在以下假设下获得第一近似值:

  1. 句子以句号结束,句号仅用于句号(不 十进制数,无省略号等。)
  2. 段落用一个空行分隔
  3. (当然,这些都没有在现实中得到满足,但它应该让你开始)

    grep -oc \\.
    

    将计算句子数量,

    grep -c "^$"
    

    将计算段落数量。如果你的文字格式很强,你可能会找到有用的东西,否则你可以考虑使用自然语言处理工具,例如NLTK

答案 1 :(得分:2)

要计算句子数,您可以计算peroids,问号和感叹号的数量。但是你遇到了省略号(...)的问题。我想如果之后有空格,你只能计算它。

段落是另一回事。它们是缩进的吗?怎么用标签?算一算吧。

最大的问题是“句子和段落之间的分隔符是什么?”

如果您知道这一点,请定义分隔符正则表达式,并使用您选择的工具计算文件中的数量。