Замена пустых текстов - встраивание текста - PullRequest
0 голосов
/ 28 апреля 2019

Я пытаюсь встраивать тексты, используя предварительно обученные модели fastText. Некоторые пусты. Как заменить их, чтобы сделать возможным встраивание? Я думал о замене их фиктивными словами, вот так (документы, являющиеся объектом DataFrame pandas): docs = docs.replace(np.nan, 'unknown', regex=True)

Однако на самом деле это не имеет смысла, так как выбор этого слова является произвольным и не эквивалентен наличию пустой строки.

В противном случае я мог бы связать вложение вектора 0 с пустыми строками или усредненный вектор, но я не уверен, что это имело бы смысл, так как операция вложения нелинейна.

1 Ответ

1 голос
/ 28 апреля 2019

В FastText встраивание предложения представляет собой среднее значение векторов слов, как показано в одной из статей FastText :

FastText figure

Учитывая этот факт, нули могут быть логичным выбором. Но ответ зависит от того, что вы хотите сделать с вложениями.

Если вы используете их в качестве входных данных для классификатора, было бы хорошо выбрать произвольный вектор в качестве представления пустой строки, и классификатор узнает, что это значит. FastText также изучает специальное вложение для </s>, то есть конец предложения. Это еще один естественный кандидат для встраивания пустой строки, особенно если вы выполняете поиск по сходству.

...