import nltk import re from tika import parser #einleitung = False #raw = parser.from_file('iso_documents/ISO286-2.PDF') #raw = parser.from_file('iso_documents/ISO286-2.PDF') #print(raw['content']) #text = raw['content'] #sent_text = nltk.sent_tokenize(text) #tokenized_text = nltk.word_tokenize(sent_text.split) #tagged = nltk.pos_tag(tokenized_text) #match = text.concordance('Toleranz') #for text in sent_text: # if "Toleranz" in text and einleitung is True: # print(text) # if "Einleitung" in text: # einleitung = True import subprocess #subprocess.check_output(['ls','-l']) #all that is technically needed... cmd = 'pdftotext -layout "home/bscheibel/PycharmProjects/dxf_reader/iso_documents/ISO8015.PDF"' print(subprocess.Popen(cmd, shell=True)) #convert iso document to text text = "iso_documents/ISO8015.txt" #search for table of content with regex contents = [] regex = r"(.*?)[\W]+(\d+)(?=\n|$)" r"([^\.]\d\.?\d?\.?\d?\.?\d?)\s([a-zA-Z]*)\s([a-zA-Z]*)\s*([a-zA-Z]*)\W?\s*([a-zA-Z]+)\s*\.{10,}([\d]+)" matches = re.finditer(regex, text, re.MULTILINE) #contents = re.findall(r"(.*?)[\W]+(\d+)(?=\n|$)", text, flags=re.M) #print(contents) for matchNum, match in enumerate(matches, start=1): print("Match {matchNum} was found at {start}-{end}: {match}".format(matchNum=matchNum, start=match.start(), end=match.end(), match=match.group())) for groupNum in range(0, len(match.groups())): groupNum = groupNum + 1 print("Group {groupNum} found at {start}-{end}: {group}".format(groupNum=groupNum, start=match.start(groupNum), end=match.end(groupNum), group=match.group(groupNum))) #only search for sections with toleranzen/abmaße