Понимание того, как встраивание слов с помощью Fasttext работает для моего случая - PullRequest
0 голосов
/ 01 октября 2019

Я ищу некоторые рекомендации с Fasttext и NLP, чтобы помочь понять, как модель продолжает вычислять вектор предложения.

Контекст:

IЯ использую метод fasttext get_sentence_vector () для вычисления вектора предложения запроса, которое я назову P1, а также для набора предложений (P2, P3, P4, P5, ..., Pn). Предложения могут иметь одно или несколько слов. Затем я вычисляю расстояние между вектором предложения P1 и вектором каждого из других предложений, чтобы в итоге получить список предложений, ближайших к P1. Обратите внимание, что я делаю предварительную обработку только на P1 (удаление чисел и пунктуации + токенизация и лемматизация с SpaCy). Цель состоит в том, чтобы получить предложения, наиболее близкие по смыслу


Проблема в том, что я не понимаю результаты, полученные для разных случаев:

case 1: P1 = "биоудобрения"

  • расстояние между векторами "биоудобрения" и "химические удобрения": 0,48
  • расстояние между векторами "биоудобрения" и "биоудобрения":0,49

Здесь я не понимаю, как вектор, рассчитанный с помощью быстрого текста "биоудобрений", ближе к "химическим удобрениям", чем "биоудобрениям". Тире учитывается при расчете вектора? Биоудобрения должны быть логически ближе, не правда ли?

случай 2: P1 = "ноутбук"

  • расстояние между векторами "ноутбук" и "зарядные устройства для ноутбуков ": 0,16
  • расстояние между векторами" ноутбук "и" планшетный компьютер ": 0,27

Это неверно, поскольку" планшетный компьютер "находится ближе всего к" ноутбуку "«в смысле, чем« зарядные устройства для ноутбуков ». Это потому, что последние содержат слово «ноутбук», что расстояние меньше?

case 3: P1 = "ножи":

Расстояние между "ножами"и «посуда, кроме вилок, ножей и ложек» низка, и эти два предложения считаются близкими. Это не должно иметь место, потому что их значения противоположны. Поэтому я предполагаю, что Fasttext не ассимилирует слова отрицания, такие как «Кроме» или «Нет» во время вычисления вектора?


Как Fasttext достигает этих результатов при расчете расстояний между векторами?

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

...