Я пытаюсь извлечь 3 части информации из набора данных из нескольких тысяч предложений в python. В частности, для каждого предложения я хотел бы выделить 1) временной интервал («interval»), 2) какой временной интервал относительно («relative_to»), 3) имя элемента или действия, на которое ссылается временной интервал. to ("элемент").
Пример использования состоит в том, что я пытаюсь создать что-то, чтобы пометить эти 3 элемента, чтобы я мог использовать это в качестве обучающих данных, чтобы научить модель NER делать это хорошо.
Здесь это 2 примера предложений и 3 части информации, которую я бы хотел от них:
Пример 1:
sentence = "Not more than five (5) days following the Opening of Escrow, Seller covenants and agrees to conduct a review of its files and deliver to Buyer copies of any pertinent and material Due Diligence Materials (as defined in Section 13.2.4) in Seller's possession relating to the Property."
// expected extractions
interval = "five (5) days following"
relative_to = "the Opening of Escrow"
item = "Due Diligence Materials"
Пример 2:
sentence = "The foregoing representations and warranties shall survive Closing for a period of one hundred eighty (180) days"
# expected extractions
interval = "one hundred eighty (180) days"
relative_to = "Closing"
item = "representations and warranties"
Я могу довольно надежно извлеките интервал, используя правила регулярных выражений, чтобы искать слова вокруг цифр и единиц. Однако мне труднее извлекать сущности «relative_to» и «item».
Ранее при переполнении стека я видел подобные сообщения, в которых используется обученная модель NLP для пометки частей речи, зависимостей и имен объекты в данных, чтобы сообщить, как один раз их извлечь: - Извлечение троек из предложения в Python - Извлечение сущностей из пассивного предложения Multiple Subject с помощью Spacy - извлечение имени сущности и соответствующие им числовые значения из предложения
Однако тегирование с использованием spacy кажется неточным для поиска информации, которую я хочу из этих предложений.
Это все еще тот подход, который люди рекомендовали бы для моей проблемы? Есть ли какие-нибудь другие подходы, которые вы пробовали, которые сработают?
Спасибо за любые идеи, которыми вы можете поделиться.