我有一些html文档,我需要返回文档中的单词数。此计数应仅包括实际文本(因此没有html标记,例如html,br等)。
任何想法如何做到这一点?当然,我更愿意重用一些代码。
谢谢,
阿萨弗
答案 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的答案增加一个额外的步骤:
对生成的文本进行标记。这取决于您对“单词”的定义。它不太可能像分裂白色空间那么简单。并且您需要处理标点符号等。因此,请查看各种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..."
令牌化很棘手......