我正在创建一个脚本来从扫描的 pdf 中提取文本,以创建一个 JSON 字典,以便稍后在 MongoDB 中实现。我遇到的问题是,通过 Textract 模块使用 tesseract-ocr 成功提取了所有文本,但它正在被 python 读取,因此 PDF 上的所有空白都被转换为 '\n' 使得提取文本变得非常困难必要的信息。
我试过用一堆代码来清理它,但它仍然不是很可读。它摆脱了所有冒号,我认为这将使识别键和值更容易。
stringedText = str(text)
cleanText = rmStop.replace('\n','')
splitText = re.split(r'\W+', cleanText)
caseingText = [word.lower() for word in splitText]
cleanOne = [word for word in caseingText if word != 'n']
dexStop = cleanOne.index("od260")
dexStart = cleanOne.index("sheet")
clean = cleanOne[dexStart + 1:dexStop]
我仍然留下相当多的不干净几乎处理过的数据。所以在这一点上,我知道如何使用它。
这就是我提取数据的方式
text = textract.process(filename, method="tesseract", language="eng")
我也试过 nltk,它取出了一些数据,让它更容易阅读,但仍有很多 \n 混淆了数据。
这是 nltk 代码:
stringedText = str(text)
stop_words = set(stopwords.words('english'))
tokens = word_tokenize(stringedText)
rmStop = [i for i in tokens if not i in ENGLISH_STOP_WORDS]
这是我从我尝试的第一次清理中得到的:
['n21', 'feb', '2019', 'nsequence', 'lacz', 'rp', 'n5', 'gat', 'ctc', 'tac', 'cat', 'ggc', 'gca', 'cat', 'ttc', 'ccc', 'gaa', 'aag', 'tgc', '3', 'norder', 'no', '15775199', 'nref', 'no', '207335463', 'n25', 'nmole', 'dna', 'oligo', '36', 'bases', 'nproperties', 'amount', 'of', 'oligo', 'shipped', 'to', 'ntm', '50mm', 'nacl', '66', '8', 'xc2', 'xb0c', '11', '0', '32', '6', 'david', 'cook', 'ngc', 'content', '52', '8', 'd260', 'mmoles', 'kansas', 'state', 'university', 'biotechno', 'nmolecular', 'weight', '10', '965', '1', 'nnmoles']
从那我需要一个 JSON 数组,它看起来像:
"lacz-rp" : {
"Date" : "21-feb-2019",
"Sequence" : "gatctctaccatggcgcacatttccccgaaaagtgc"
"Order No." : "15775199"
"Ref No." : "207335463"
}
守着一只汪
相关分类