Как кодировать большой текст, используя BERT для эластичного поиска? - PullRequest
0 голосов
/ 06 марта 2020

Вот моя проблема: я хотел бы получить вложения для некоторых документов, которые у меня есть. Эти документы содержат более 9000 слов. Как я понимаю, BERT имеет жесткий предел в 510 слов. Из того, что я прочитал, я также понимаю, что время выполнения будет увеличиваться в квадрате с увеличением длины ввода.

Сценарий использования: я делаю механизм поиска упругого поиска, специально для юридических решений. Я планировал использовать функцию dense vectors. То, чего я хотел достичь, заключается в следующем. Допустим, кто-то ищет Cases of person robbed. Теперь этот запрос должен возвращать суждения, в которых мужчина / женщина / человек был ограблен / ограблен, вещи забраны и т. Д. c.

Я пытался использовать подход, основанный на синонимах, но это дало плохие результаты. Вот несколько способов, которые, по моему мнению, могут решить проблему:

1) Подведите итог текста, используя алгоритм глубокого обучения или что-то простое, например, TF-IDF, и затем закодируйте их. Это может быть сделано для каждого суждения.

2) Разделите суждения на более мелкие части. Например, случай с 8 000 слов разбивается на 16 частей, каждая из которых затем кодируется и индексируется в ElasticSearch отдельно.

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

Спасибо,

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...