Как проверить, присутствует ли токен в документе с spaCy? - PullRequest
1 голос
/ 24 марта 2020

У меня есть огромный список больших документов spaCy и список слов, которые я хочу найти в документе. Пример: я хочу найти слово «аспирин» в тексте веб-сайта, который был проанализирован с помощью spaCy. Список ключевых слов, которые я хочу найти, довольно длинный.

Наивный подход

Не используйте spacy, а просто используйте if keyword in website_text: в качестве простого сопоставителя. Конечно, у этого есть недостаток, что токены игнорируются, и поиск test приведет к ложным срабатываниям в таких словах, как tested, attested, et c.

Использование совпадений spaCy

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

Есть ли рекомендуемый способ решения этой задачи?

1 Ответ

1 голос
/ 24 марта 2020

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

Например, \b(test|aspirin)\b подхватывает слова «тест» и «аспирин», но не «устремленный», «аттестованный» или «тестирование». Вы можете добавить другие слова в скобках, разделенные трубками, чтобы подобрать больше ключевых слов.

Вот пример того, как это работает .

Чтобы применить это к коду Python, вы можете использовать модуль re .

...