我有一个我必须处理的功能。项目的要求是将文件转换为pdf并存储这些文件。其主要功能是用户能够搜索文件内容中的单词,例如用户正在寻找任何针对“生物风险”的书籍,该软件必须对每个pdf文件内容进行研究。所以我的想法是,每当用户上传一本新书或文件时,软件就会读取它的内容并将其存储在一个表格中,所以当用户查找任何内容时,就会得到所有有这些单词的书。
但问题是,数据库的规模将非常大。还有其他方法可以做到这一点吗?
发布于 2018-06-01 17:27:01
我希望你已经解决了,但万一有用的话:
我不会把所有的PDF都放在桌子上。我宁愿接受一个固定的(或变量,但有限的)数量的关键字。当用户上传PDF时,这个过程分两个阶段:
1:将整个文本提取为明文。如果PDF是一种可读格式,那么可以使用任何库来实现这一点。例:https://github.com/spatie/pdf-to-text
如果只有文本图像,比如一本扫描过的书,事情就会变得更有趣。我会首先使用Google从图像中提取文本。
Google链接:https://cloud.google.com/vision/docs/ocr
2:从文本中提取关键词。最后,我会使用谷歌的自然语言API。它是人工智能驱动的,接受文本作为输入,并返回关键字,主题,类别,让你知道它是什么,每个标签的置信度。
链接:https://cloud.google.com/natural-language/
DB设计:我将使用一个pdf_contents表,其中包含两个或三个列: pdf_path ( VARCHAR您的下载链接)、关键字(文本字段)类别(如果Google能够对文本进行分类的话)。
那么查询就会是:
SELECT UNIQUE path FROM pdf_contents WHERE keywords LIKE %{searchword}% OR categories LIKE %{search word}% LIMIT N;
编辑:忘记将指向pdf的链接放到PHP上的文本示例库中
https://softwareengineering.stackexchange.com/questions/333452
复制相似问题