perf: не звать legal-модель на каждое слово текста
LEGAL_CANDIDATE сужен до цифровых кластеров (ИНН, СНИЛС, паспорт, телефон, банковский счёт) и email. Раньше в него входили и слова, из-за чего модель LLAIM Legal NER вызывалась на каждое слово до maxCandidates раз. Имена (PER) размечает модель имён, email — правила, поэтому слова из кандидата убраны.
This commit is contained in:
@@ -93,14 +93,16 @@ public class NameCascade {
|
|||||||
Pattern.UNICODE_CHARACTER_CLASS | Pattern.UNICODE_CASE);
|
Pattern.UNICODE_CHARACTER_CLASS | Pattern.UNICODE_CASE);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Кандидат для LLAIM Legal NER: одиночное слово или цифровой кластер (10–19 цифр с
|
* Кандидат для LLAIM Legal NER: цифровой кластер (10–19 цифр с разделителями) или
|
||||||
* разделителями). Юридические реквизиты (ИНН, СНИЛС, паспорт) не являются словами с заглавной
|
* адрес электронной почты. Юридические реквизиты (ИНН, СНИЛС, паспорт, телефон,
|
||||||
* буквы, поэтому для них нужен отдельный проход, не влияющий на кандидатов моделей имён и
|
* банковский счёт) — это цифры, а не слова с заглавной буквы, поэтому отдельный
|
||||||
* адресов.
|
* проход не влияет на кандидатов моделей имён и адресов. Имена (PER) размечает
|
||||||
|
* модель имён, email — правила, так что слова сюда не включаются: иначе модель
|
||||||
|
* звалась бы на каждое слово текста.
|
||||||
*/
|
*/
|
||||||
private static final Pattern LEGAL_CANDIDATE =
|
private static final Pattern LEGAL_CANDIDATE =
|
||||||
Pattern.compile(
|
Pattern.compile(
|
||||||
"(?:\\p{Lu}[\\p{L}-]+|\\p{Ll}[\\p{L}-]+|\\d(?:[\\s.\\-/()]?\\d){9,18})",
|
"(?:\\d(?:[\\s.\\-/()]?\\d){9,18}|[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\\.[A-Za-z]{2,})",
|
||||||
Pattern.UNICODE_CHARACTER_CLASS | Pattern.UNICODE_CASE);
|
Pattern.UNICODE_CHARACTER_CLASS | Pattern.UNICODE_CASE);
|
||||||
|
|
||||||
/** Приоритет находок второй ступени: ниже правил, у которых больше оснований. */
|
/** Приоритет находок второй ступени: ниже правил, у которых больше оснований. */
|
||||||
|
|||||||
Reference in New Issue
Block a user