Использование PhraseMatcher в SpaCy для поиска нескольких типов совпадений

Документация и примеры SpaCy показывают, что класс PhraseMatcher полезен для сопоставления последовательностей токенов в документах. Нужно предоставить словарь последовательностей, которые будут сопоставлены.

В моем приложении у меня есть документы, которые представляют собой наборы токенов и фраз. Существуют сущности разных типов. Данные на удаленном естественном языке (документы представляют собой набор ключевых слов с полуслучайным порядком). Я пытаюсь найти совпадения нескольких типов.

Например:

yellow boots for kids

Как найти совпадения по цветам (например, желтый), по типам товаров (например, ботинки) и по возрасту (например, дети), используя SpaCy's PhraseMatches? Это хороший вариант использования? Если разные объекты совпадают (например, цвета совпадают в списке цветов и в списке материалов), возможно ли создать все уникальные случаи?

Я не могу действительно использовать метку последовательности, поскольку данные слабо структурированы и пронизан неясностями. У меня есть список сущностей (например, цвета, цвета, типы продуктов) и соответствующие списки значений.

Одной из идей было бы создать несколько объектов PhraseMatcher, по одному для каждой сущности, выполнить сопоставления отдельно и затем объединить результаты. Каждый тип сущности получит свой собственный словарь. Это звучит просто, но может быть неэффективно, особенно слияние. Списки значений довольно велики. Прежде чем идти по этому пути, я хотел бы знать, является ли это хорошей идеей или, возможно, есть более простые способы сделать это с SpaCy.

8
задан Vladislavs Dovgalecs 4 December 2017 в 17:40
поделиться