Бота использовать PDF документы как источник
Я смотрю на создание простого бота, который может использовать PDF-файл как источник. Например, на вход бота можно условия банка и условий документа и бота бы ответить на вопрос, которые имеют отношение к содержанию данного документа.
Образец Q&А. Вопрос : в чем моя ежемесячная плата за мой счет? A : ваша ежемесячная плата составляет $5 на счет экономии, если нет депозита выше $2000, то бесплатно.
Я pdfminer читать документ в формате PDF и конвертировать его в обрабатываемых данных и бизнес-центр для определения Нер, поз и т. д.
Я узнал о расе и все ссылки, которые я видел, использует определенный текст ответа и не используя любой PDF-документ в качестве источника.
Кто-нибудь может предоставить любые рекомендации о том, какой подход я мог бы следовать?
Я не хочу использовать Dialogflow или Лекс и хотите быть в мире с открытым исходным кодом.
Используйте map
Экс:
mylist = [[9, ["nuts", "fruits"]], [12, ["france", "italy", "rome", "paris"]], [18, ["cat", "dog", "parrot", "rabbit", "cow"]], [19, ["ebay", "wish"]]]
d = dict(mylist)
df = pd.DataFrame({"ID": [12, 19, 18, 9],
"Category": [["places", "locations"], ["online", "customer"], ["pets"], ["food"]]})
df["D"] = df["ID"].map(d)
print(df)
Выход:
ID Category D
0 12 [places, locations] [france, italy, rome, paris]
1 19 [online, customer] [ebay, wish]
2 18 [pets] [cat, dog, parrot, rabbit, cow]
3 9 [food] [nuts, fruits]
print(list(zip(df.ID, df.Category, df.D)))
Выход:
[(12, ['places', 'locations'], ['france', 'italy', 'rome', 'paris']), (19, ['online', 'customer'], ['ebay', 'wish']), (18, ['pets'], ['cat', 'dog', 'parrot', 'rabbit', 'cow']), (9, ['food'], ['nuts', 'fruits'])]
Мне нравится использовать в, гибкий и явный на мой взгляд.
Используя свои колонки чисел, как индекс не является обязательным, но я думаю, что есть смысл здесь, поэтому я добавил, что.
import pandas as pd
l = [[1, ['first', 'F']], [2, ['second', 'S']], [3, ['third']]]
dfl = pd.DataFrame(l)
dfl.set_index(0, inplace=True)
dfl.columns=['l']
r = [[1, ['first', 'F']], [4, ['fourth', 'F']], [3, ['third']]]
dfr = pd.DataFrame(r)
dfr.set_index(0, inplace=True)
dfr.columns=['r']
dfc = pd.merge(dfl, dfr, left_index=True, right_index=True, how='outer') # change how to meet your needs
print(dfc)
lc = dfc.reset_index().values.tolist()