如何计算HTML源中的单词(文本)数

时间:2011-05-17 10:06:45

标签: java html count

我有一些html文档,我需要返回文档中的单词数。此计数应仅包括实际文本(因此没有html标记,例如html,br等)。

任何想法如何做到这一点?当然,我更愿意重用一些代码。

谢谢,

阿萨弗

3 个答案:

答案 0 :(得分:11)

  • 删除HTML标记,获取文本内容,重用Jsoup

  • 逐行阅读文件,按住Map<String, Integer> wordToCountMap并阅读并操作Map

答案 1 :(得分:4)

使用jsoup解决方案

private int countWords(String html) throws Exception {
    org.jsoup.nodes.Document dom = Jsoup.parse(html);
    String text = dom.text();

    return text.split(" ").length;
}

答案 2 :(得分:0)

我会为Jigar的答案增加一个额外的步骤:

  • 使用JSoup或Jericho或Dom4j
  • 解析文档文本
  • 对生成的文本进行标记。这取决于您对“单词”的定义。它不太可能像分裂白色空间那么简单。并且您需要处理标点符号等。因此,请查看各种Tokeniser,例如Lucene或Stanford NLP项目。以下是您将遇到的一些简单示例:

    "Today I'm going to New York!" - “我是”一两个字?那么“纽约”呢?

    "We applied two meta-filters in the analysis" - “元过滤器”是一个字还是两个字?

那么格式错误的文本怎么样,例如在句子末尾缺少一个空格:

"So we went there.And on arrival..."

令牌化很棘手......

  • 遍历您的令牌并计算它们,例如使用HashMap。