Статья-справка для разработчиков с кратким описанием процесса настройки итоговых вероятностей для фактов, извлеченных правилами.
Путь по умолчанию:
"C:\inetpub\Ario\FactExtractorService\probability\custom_probability"
Примечание. Сумма значений для всех применяемых в списке функций должна равняться 100.
Критерий | Python | Описание |
---|---|---|
Выше всех | AboveAll() |
Факт находится выше всех остальных фактов данного типа. (AboveAll(), 100) |
Ниже всех | BelowAll() |
Факт находится ниже всех остальных фактов данного типа. (BelowAll(), 100) |
Рядом(Факт) | Near() |
Факт находятся в рядом с другим Фактом. Аргументы:
Пример: дата и номер входящего документа находятся рядом Исх. № 1234 от 25.12.2017 (Near('ResponseToNumber', distance=5), 100) |
НаходитсяДо(Факт[,Факт, Факт]) | Before() |
Находится в тексте документа до Факта [и до Фактов] Аргументы:
Пример:
(Before({'Addressee': 100}), 100) |
НаходитсяПосле(Факт) | After() |
Находится в тексте документа после Факта Аргументы:
(After({'Date': 50, 'Number': 50}), 100) |
Расположен в(Факт) | PlacedIn() |
Факт расположен в конкретной части страницы. Аргументы:
(PlacedIn(4, [1, 2], 'first', probability.pages), 100) |
СхлопнутСДругим() | IsCollapsed() |
Факт был получен объединением нескольких фактов в один на постобработке. Пример:
(IsCollapsed(), 100) |
Пример кода для расчета вероятности для класса документа "Письмо входящее":
def get_custom_rules(probability):
return {
'letter': {
# Дата "в ответ на"
'ResponseToDate': [
(AboveAll(), 20),
(Near('ResponseToNumber', distance=5), 20),
(Before({
'Addressee': 100
}), 30),
(After({
'Date': 50,
'Number': 50
}), 30),
],
# Номер "в ответ на"
'ResponseToNumber': [
(AboveAll(), 15),
(PlacedIn(4, [1, 2], 'first', probability.pages), 5)
(Near('ResponseToDate', distance=5), 20),
(Before({
'Addressee': 10
}
), 30),
(After({
'Date': 50,
'Number': 50,
}
), 30)
],
}
}
Авторизуйтесь, чтобы написать комментарий