小编vik*_*ing的帖子

在Java中基于模板提取网页信息

现在我使用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>
Run Code Online (Sandbox Code Playgroud)

现在这就是我想要做的,我想在本地保存这个网页(一个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>
Run Code Online (Sandbox Code Playgroud)

除了网页的实际URL之外,这些HTML模板将是Java程序的输入,它将找出这些预定义关键字的位置(例如{MOVIE_RATING},{MOVIE_DIRECTOR})并从实际网页中提取值.

这样我每次网页更改时都不必修改Java程序,我只保存网页的HTML并用这些关键字替换数据,其余的将由程序处理.例如,将来实际的HTML代码可能如下所示:

<div>
<div><b>Rating:</b>**1/2</div>
<div><i>Director:</i>Singer, Bryan</div>
</div>
Run Code Online (Sandbox Code Playgroud)

相应的模板如下所示:

<div>
<div><b>Rating:</b>{MOVIE_RATING}</div>
<div><i>Director:</i>{MOVIE_DIRECTOR}</div>
</div>
Run Code Online (Sandbox Code Playgroud)

创建这些模板也可以由非程序员,任何可以编辑文件的人完成.

现在的问题是,我如何在Java中实现这一点,是否有任何现有的和更好的方法来解决这个问题?

注意: 谷歌搜索时我发现了一些研究论文,但大多数都需要一些先前的学习数据,准确性也是一个值得关注的问题.

java text-extraction named-entity-extraction

13
推荐指数
1
解决办法
1438
查看次数

与单线程客户端相比,为什么MongoDB在多线程客户端上表现更好?

我们最近使用YCSB(https://github.com/brianfrankcooper/YCSB/wiki)对Oracle 10g和MongoDB进行了基准测试,当我们尝试增加1,000,000个数据集的线程数时,Oracle的性能在4个线程之后保持不变,但MongoDB继续执行更好,更好,直到8个线程,之后只有读取更好,写入和更新(操作/秒)保持不变.

我们在2个CPU Xeon四核(总共8个核心)+ 8 GB RAM上运行此基准测试.

我们观察到,与单线程客户端相比,MongoDB在多线程客户端上的表现更好,我的问题是:当MongoDB在更多负载下表现更好时,为什么不能以较少的负载执行相同操作(比如只需几个线程) )通过利用多核?

mongodb nosql ycsb

6
推荐指数
1
解决办法
8257
查看次数