我有一个用例,在这个用例中,我需要用Java以编程方式以给定网页的格式呈现一个未格式化的文本。也就是说,文本应该像网页一样自动格式化,包含样式、段落、项目符号等。
正如我首先看到的,我必须分析这段未格式化的文本,以找出段落、项目符号、标题等的候选者。我打算使用Lucene analyze /tokenizer来完成这项任务。还有别的选择吗?
第二个问题是将格式化的网页转换成某种类型的模板(例如速度模板),其中包含标题、项目符号等各种实体的占位符。
Java中有没有文本分析/模板库可以帮助我做到这一点?最好是开源的。
对于用Java更好地完成这类任务,还有什么其他建议吗?
谢谢你的帮助。
发布于 2011-07-08 10:11:05
在你正在做的事情中有很多困难的部分。
user input
如果你不要求你的用户提供任何上下文,你永远也猜不到文本的结构。至少,您应该要求他们在您的GUI中提供一个标题和一系列段落。
理想情况下,您可以要求他们遵循一种众所周知的标记语言(Markdown、Textile等)。并使用开源解析器来提取结构。
外部页面
如果使用任何页面,您唯一可以依赖的就是“结构化标记”。因此,假设您知道页面的标题应该是"Hello World",并且页面中的某个地方有一个"h1“元素,那么您可能会认为这就是标题所在的位置。
但是,如果页面是一个div标签汤,并且只使用CSS来区分标题的呈现,而不是文本的大部分,那么您将不得不猜测样式是如何完成的:如果您不知道页面是如何制作的,这显然是不可能的。
我认为Lucene不会对此有所帮助(据我所知,Lucene是用来为大量文本中使用的单词创建索引的;我不认为它可以帮助您猜测文本的哪一部分是标题、副标题等)。
从外部页面生成模板的
假设您“猜对了”,您可以通过以下方式生成内容
choice
这当然会带来可怕的法律问题,因为您的模板将包含原始网站作者的作品(最有可能是受版权保护的材料)
更现实的解决方案
我建议你把你的问题限制在:
使用具有一些可用结构信息的输入的
的结构(并且可以非常容易地重新使用
请注意,这些点都与模板系统无关。
否则,我担心你的工作量是不合理的……
https://stackoverflow.com/questions/6621935
复制相似问题