Бота использовать PDF документы как источник

Я смотрю на создание простого бота, который может использовать PDF-файл как источник. Например, на вход бота можно условия банка и условий документа и бота бы ответить на вопрос, которые имеют отношение к содержанию данного документа.

Образец Q&А. Вопрос : в чем моя ежемесячная плата за мой счет? A : ваша ежемесячная плата составляет $5 на счет экономии, если нет депозита выше $2000, то бесплатно.

Я pdfminer читать документ в формате PDF и конвертировать его в обрабатываемых данных и бизнес-центр для определения Нер, поз и т. д.

Я узнал о расе и все ссылки, которые я видел, использует определенный текст ответа и не используя любой PDF-документ в качестве источника.

Кто-нибудь может предоставить любые рекомендации о том, какой подход я мог бы следовать?

Я не хочу использовать Dialogflow или Лекс и хотите быть в мире с открытым исходным кодом.

0
2019-09-19 03:12:09
источник
2 ответа

Используйте 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'])]
+0
2019-09-19 10:02:19

Мне нравится использовать в, гибкий и явный на мой взгляд.
Используя свои колонки чисел, как индекс не является обязательным, но я думаю, что есть смысл здесь, поэтому я добавил, что.

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()
+0
2019-09-19 10:02:19

Посмотрите другие вопросы по меткам