【发布时间】:2013-02-18 13:30:10
【问题描述】:
现在我使用Jsoup 从一些第三方网页中提取某些信息(不是所有文本),我会定期这样做。这工作正常,直到某些网页的 HTML 发生变化,这种变化会导致现有 Java 代码发生变化,这是一项繁琐的工作,因为这些网页变化非常频繁。它还需要程序员来修复 Java 代码。这是我在网页上感兴趣的 HTML 代码示例:
<div>
<p><strong>Score:</strong>2.5/5</p>
<p><strong>Director:</strong> Bryan Singer</p>
</div>
<div>some other info which I dont need</div>
现在这是我想做的,我想在本地保存这个网页(一个 HTML 文件)并从中创建一个模板,例如:
<div>
<p><strong>Score:</strong>{MOVIE_RATING}</p>
<p><strong>Director:</strong>{MOVIE_DIRECTOR}</p>
</div>
<div>some other info which I dont need</div>
连同网页的实际 URL,这些 HTML 模板将成为 Java 程序的输入,Java 程序将找出这些预定义关键字的位置(例如 {MOVIE_RATING}、{MOVIE_DIRECTOR }) 并从实际网页中提取值。
这样我就不必在每次网页更改时都修改Java程序,我只需保存网页的HTML并用这些关键字替换数据,其余的将由程序处理。例如,将来实际的 HTML 代码可能如下所示:
<div>
<div><b>Rating:</b>**1/2</div>
<div><i>Director:</i>Singer, Bryan</div>
</div>
相应的模板将如下所示:
<div>
<div><b>Rating:</b>{MOVIE_RATING}</div>
<div><i>Director:</i>{MOVIE_DIRECTOR}</div>
</div>
也可以由非程序员、任何可以编辑文件的人来创建此类模板。
现在的问题是,我如何在 Java 中实现这一点,是否有任何现有的更好的方法来解决这个问题?
注意: 在谷歌上搜索时我发现了一些研究论文,但其中大多数都需要一些事先的学习数据,准确性也是一个问题。
【问题讨论】:
标签: java text-extraction named-entity-extraction