Нормализовать вектор встраивания в текст Fasttext, сгенерированный моделью - PullRequest
0 голосов
/ 02 октября 2018

В настоящее время я использую FastText, чтобы получить вложения слов для некоторых входных текстовых данных, чтобы уловить сходство между ними и передать их в качестве входных данных для нейронной сети для задачи NER.Сначала я попытался использовать файл fastText .vec и смог получить от них хороший результат сходства, затем я попытался использовать файл модели .bin, чтобы получить вложения также из словарных терминов.но я заметил, что векторы, сгенерированные из .vec и .bin файла, разные.Файл .vec содержит вложения, ограниченные диапазоном [-1,1], хотя это не относится к встраиваниям, содержащимся в файле .bin.Используя файл .bin, я получаю очень плохие результаты, поэтому я пытаюсь понять, связано ли это с тем, что эти векторы (.bin) не нормализованы.

Есть ли хороший способ нормализовать эти векторыв диапазоне [-1, 1] с использованием Python?

Заранее спасибо.

1 Ответ

0 голосов
/ 02 октября 2018

Просто измените масштаб данных в диапазон [-1, 1].Жаль, что это может помочь.

def norm(data):
    min_v, max_v = min(data), max(data)
    mid_v = (max_v + min_v) >> 1
    len_v = float((max_v - min_v) >> 1)
    return [(v-mid_v)/len_v for v in data]
...