Jak to robię.
1. Ściągam całą jednąstkę z szukajwarchiwach (opcja "wszystkie" i pobierz w widoku skanów jednostki)
2. Kiedy mam już wszystkie skany w danym folderze używam tego:
Kod: Zaznacz cały
import os
from google.cloud import vision
def detect_document(path):
client = vision.ImageAnnotatorClient()
file_list = os.listdir(path)
with open(path + ".txt", "a") as file:
for filename in file_list:
if filename.endswith(".jpg"):
number_str = ''.join(filter(str.isdigit, filename))
number = int(number_str)
if (number > 0):
print(f"Przetwarzam plik {filename}")
with open(path + "/" + filename, "rb") as image_file:
content = image_file.read()
image = vision.Image(content=content)
response = client.document_text_detection(image=image)
strona = ""
for page in response.full_text_annotation.pages:
for block in page.blocks:
for paragraph in block.paragraphs:
if paragraph.confidence > 0.7:
for word in paragraph.words:
word_text = "".join([symbol.text for symbol in word.symbols])
strona += word_text + " "
file.write('\n\nStrona ' + filename + '\n\n')
file.write(strona)
if response.error.message:
raise Exception(
"{}\nFor more info on error messages, check: "
"https://cloud.google.com/apis/design/errors".format(response.error.message)
)
# Nazwa folderu z plikami od 1.jpg do n.jpg
detect_document('AG15')
Ten skrypt otwiera folder ze skami (w tym przykładzie AG15) i po kolei wysyła skany do google vision. Wyniki zapisuje w pliku tekstowym o takiej samej nazwie jak nazwa folderu (AG15.txt).
Efekt powinien być taki sam jak w pliku T1 ROS.txt który wrzuciłem w tym wątku. Skryp ignoruje dane słowo jeśli współczynnik pewności co do przetłumaczonego słowa jest niższy niż 0.7. Kiedy przetwarzałem AKM w zeszłym roku po prostu metodą prób i błędów ta wartość dawała zadowalające efekty.
Jeśli chodzi o przetwarzanie danych w układzie tabelrycznym, poszczególne obszary tekstowe będą w różny sposób wymieszane ze sobą.
Przykład:
https://www.szukajwarchiwach.gov.pl/ska ... b6aa8dfa6b
Efekt:
Kod: Zaznacz cały
1 Имя , фамилья и В обвиняетск Korda представлено дило u sanivorenie Kosinuiciu . ныхъ медалей литыхъ изъ слова iz bu ikin прочихь дитских игрушек одноглавины хорлами . не для какой либо политической цили то впершить сну , any , чтобы таких медалей будущее время не дѣлалъ , вмѣнивь смер А наказание содержаніе его подъ apečlonk bor 18 Прусскій подданный Арестованк во Кеви на поддержнию , 20 % Октября 1833года ли № 564 . въ Mapmunt Позловский не есть ли онх мното Позловский рядовой « Позлований объяснялах , что онх вы 6 пахотного полка бывиться Польскимъ шель uso dhimpia въ и для отыска Abempice войска , который въ шайки блоумышленно , най себя спржбина суконних фабрикам на Залесского вошаль , въ Царство Помской , не на опроверженію объяснения вы види сего Ты ничего ныть . Показани это представи Bapuaberony Bocuno.sy Fydepramopy 19. Служившій въ мятежни Произнесь дерогих выражения про recruxs bouckass be sbanių mube Jocydapx Usnepamepa , Odpuyepa Jocupr Hobanz 20 Сынъ обывателя г Bapwaber Tocups . Hab . He donecuu Harasemby a repousuele Варшавы Не донесли . Начальству проманесе ловичь ніи въ присутств иль Новакомъ , иль , Новокомъ дерним выраженій противъ особы Государя Императора 24. Обыватем г. Варша bu Kaper Doprobeniu 1833 20 Октября 1859 года ва F563 . pedant ceo boennoniy Cydy . Предять военному Ajudemnabueno Suazoya companio Bap Представлено благоусмотрѣнію шавскаго Росннаго Губернатора 20 - октября 1833 года Чѣмъ дѣло рѣшено на года 18.33 " 2 : 22. Подпоручикк б . Польские Подозриваемя быль въ свяями св дѣйствовать мятежнику мятежнику Завишт войств Украситя Махвиць злоумышленниками въ готовности 20. Октября 1835 года за № 563 . Подозрине это по изглядованію подтвердилось ?
Akurat dla mnie nie był to duży problem, ponieważ kluczowym było dla mnie szukanie konkretnych nazwisk, nazw miejscowości. Jeśli taki się pojawiały zawsze wracałem to skanu źródłowego.
Google Vision w trakcie przetwarzania skanów zwraca sporo więcej informacji których ja akurat nie zapisuje bo nie są dla mnie istotne np. położenie wykrytych bloków tekstowych. Myślę że jakby tkoś zainwestował trochę swojego czasu mógłby z powodzeniem przetwarzać informację nie gubiąc kontekstu wynikającego z układu tabeli.