Ruby 不同单词计数器之间的差异原因是什么

Ruby 不同单词计数器之间的差异原因是什么,ruby,word-count,Ruby,Word Count,我用Ruby创建了一个单词计数器,作为学习Ruby的一个小练习 我使用了JavaScriptKit.com和WordCountTool.com上的单词计数器,以及OpenOfficeWriter中的一个 一些文本产生了以下结果 OpenOffice: 458 words JavaScriptKit: 453 words WordCountTool: 455 words Mine: 461 words 我的问题是:为什么所有计数器中相同的精确摘录的计数不同 脚本中有哪些问题可能导致计数不准确,但

我用Ruby创建了一个单词计数器,作为学习Ruby的一个小练习

我使用了JavaScriptKit.com和WordCountTool.com上的单词计数器,以及OpenOfficeWriter中的一个

一些文本产生了以下结果

OpenOffice: 458 words
JavaScriptKit: 453 words
WordCountTool: 455 words
Mine: 461 words
我的问题是:为什么所有计数器中相同的精确摘录的计数不同

脚本中有哪些问题可能导致计数不准确,但仍然接近计数


有哪些方法可以改进我的脚本以使其更准确?

根据WC作者的决定,您将得到不同的结果。根据计数器以及空格、换行符等,某些类型的标点符号可以归类为分词符

维基百科关于WC的文章中的一些信息

不同的字数计算程序可能给出不同的结果,具体取决于 论“词”的定义


你会得到不同的结果,这取决于WC的作者决定成为什么“单词”。根据计数器以及空格、换行符等,某些类型的标点符号可以归类为分词符

维基百科关于WC的文章中的一些信息

不同的字数计算程序可能给出不同的结果,具体取决于 论“词”的定义


你真的在问“单词”的定义,为了计算的目的,它可能意味着非常不同的东西。让我们以你原来的帖子为例

最简单的计数工具是

text.split.count                      #=> 111
然而,如果你把
“为什么相同[…]的计数不同/变化”
?很明显,“difference/change”是两个单词,所以我们可能应该将前斜杠作为单词分隔符。事实上,仅仅因为我忘了在句号和下一个单词之间加空格,并不能使它们成为同一个单词,所以让我们也把句号作为分隔符。然而,我不想费心去检查它是否是一个URL,所以你提到的那些网站必须算作两个词:

text.split(/[\s\.\/\?]+/).count       #=> 113
好的,这很酷,但实际上数字从技术上来说不是单词——如果说数字,458就是“458”,实际上是5个单词。所以我们也给他们打折吧

text.split(/[\s\.\/\?0-9]+/).count    #=> 109

你明白了。你得到的结果只有8个词不同,所以很明显他们对一个词的定义并没有那么大的不同。但是字数统计只是一个粗略的指南,所以不要担心差异。

你真的是在问一个“单词”的定义,为了计算的目的,它可能意味着非常不同的东西。让我们以你原来的帖子为例

最简单的计数工具是

text.split.count                      #=> 111
然而,如果你把
“为什么相同[…]的计数不同/变化”
?很明显,“difference/change”是两个单词,所以我们可能应该将前斜杠作为单词分隔符。事实上,仅仅因为我忘了在句号和下一个单词之间加空格,并不能使它们成为同一个单词,所以让我们也把句号作为分隔符。然而,我不想费心去检查它是否是一个URL,所以你提到的那些网站必须算作两个词:

text.split(/[\s\.\/\?]+/).count       #=> 113
好的,这很酷,但实际上数字从技术上来说不是单词——如果说数字,458就是“458”,实际上是5个单词。所以我们也给他们打折吧

text.split(/[\s\.\/\?0-9]+/).count    #=> 109

你明白了。你得到的结果只有8个词不同,所以很明显他们对一个词的定义并没有那么大的不同。但是字数只是一个粗略的指南,所以不要担心差异。

你能发布一个给出不同字数的示例文本吗?我猜这可能是因为一些小的差异,比如连字符的单词是否算作一个或两个,以及它如何处理某些缩写s.a.这一个。我认为这基本上是由于一些小的不准确之处,比如-一些程序在看到空格时会计算一个新词,但这是不正确的,因为它们会看到类似的东西“然后…我意识到”然后看到“然后…我作为一个单词,或将连字符的单词作为一个单词计算。如果某些程序不能正确处理字符集问题,字符集问题也可能会导致差异。您的文本是什么字符集?@serabe,这不是关于特定代码的问题。。但究竟是什么导致了不同脚本之间的计数差异——如何解释这些差异,如何避免“错误”,等等@Melanie,对不起,我误解了你。你能发布一个给出不同计数的示例文本吗?我猜这可能是因为一些小的差异,比如连字符的单词是否算作一个或两个,以及它如何处理某些缩写s.a.这一个。我认为这基本上是由于一些小的不准确之处,比如-一些程序在看到空格时会计算一个新词,但这是不正确的,因为它们会看到类似的东西“然后…我意识到”然后看到“然后…我作为一个单词,或将连字符的单词作为一个单词计算。如果某些程序不能正确处理字符集问题,字符集问题也可能会导致差异。您的文本是什么字符集?@serabe,这不是关于特定代码的问题。。但究竟是什么导致了不同脚本之间的计数差异——如何解释这些差异,如何避免“错误”,等等@Melanie,对不起,我误解了你。