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

发布于 2024-11-07 13:26:26 字数 132 浏览 3 评论 0原文

我有一些 html 文档,我需要返回文档中的字数。该计数应该只包括实际文本(因此没有 html 标签,例如 html、br 等)。

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

谢谢,

阿萨夫

I have some html documents for which I need to return the number of words in the document. This count should only include actual text (so no html tags e.g. html, br, etc).

Any ideas how to do this? Naturally, I would prefer to re-use some code.

Thanks,

Assaf

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

羁〃客ぐ 2024-11-14 13:26:26
  • 去掉HTML标签,获取文本内容,复用 Jsoup

  • 逐行读取文件,持有一个MapwordToCountMap并对Map

    逐行读取

  • Strip out the HTML tags , get the text content , reuse Jsoup

  • Read file line by line , hold a Map<String, Integer> wordToCountMap and read through and operate on the Map

﹂绝世的画 2024-11-14 13:26:26

使用jsoup解决方案

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

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

Solution with jsoup

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

    return text.split(" ").length;
}
那小子欠揍 2024-11-14 13:26:26

我会在 Jigar 的答案中添加一个额外的步骤:

  • 来解析文档文本
  • 使用 JSoup 或 Jericho 或 Dom4j

    Tokenise 结果文本 。这取决于你对“词”的定义。它不太可能像按空白分割那么简单。并且您需要处理标点符号等。因此请查看各种可用的 Tokeniser,例如来自 Lucene 或斯坦福 NLP 项目的。以下是您会遇到的一些简单示例:

    “今天我要去纽约!” - “我”是一两个词吗? “纽约”怎么样?

    “我们在分析中应用了两个元过滤器” - “元过滤器”是一个单词还是两个单词?

格式错误的文本怎么办,例如句子末尾缺少空格:

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

标记化很棘手...

  • 迭代您的标记并对其进行计数,例如使用 HashMap。

I would add an extra step to Jigar's answer:

  • Parse out the document text using JSoup or Jericho or Dom4j
  • Tokenise the resulting text. This depends on your definition of a "word". It is unlikely to be as simple as splitting on white-space. And you'll need to deal with punctuation etc. So take a look at the various Tokeniser's available e.g from the Lucene or Stanford NLP projects. Here are some simple examples you will encounter:

    "Today I'm going to New York!" - Is "I'm" one word or two? What about "New York"?

    "We applied two meta-filters in the analysis" - Is "meta-filter" one word or two?

And what about badly formatted text, e.g missing of a space at the end of a sentence:

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

Tokenising is tricky...

  • Iterate through your tokens and count them up, e.g using a HashMap.
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文