Создание вектора с использованием предложения - PullRequest
0 голосов
/ 26 марта 2020

Я хочу провести анализ настроений и создал модель SVM в python, которая использует точки (координаты) для построения вектора, но работает только со значениями чисел c. Я хочу сопоставить предложение с вектором. Пример: «Еда очень вкусная», преобразованная в (a, b) координату, которая показывает, является ли предложение + ve или -ve. Есть ли способ преобразовать предложение в вектор.

1 Ответ

0 голосов
/ 26 марта 2020

Посмотрите на NLTK


from nltk.tokenize import sent_tokenize, word_tokenize

data = "All work and no play makes jack a dull boy, all work and no play"
print(word_tokenize(data))

Это выдаст:

['All', 'work', 'and', 'no', 'play', 'makes', 'jack', 'dull', 'boy', ',', 'all', 'work', 'and', 'no', 'play']

Более подробную информацию можно найти здесь: https://pythonspot.com/tokenizing-words-and-sentences-with-nltk/

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

tokens = (word_tokenize(data))
indexes = [idx for idx in range(len(tokens))]

Нет, нам нужно нормализовать, чтобы числа находились в диапазоне от 0 до 1.

indexes = indexes / Len(indexes)

Теперь мы можем использовать тензор потока для преобразования этих индексов в вектор.

vector = tf.convert_to_tensor(
    indexes, dtype=tf.float)
)

Обратите внимание, что после использования тензора вам нужно денормализовать ваши данные следующим образом:

Indexes = indexes * Len(indexes)

Чтобы превратить это обратно в слово:

tokens[x]

Где X - индекс слова, которое вы хотите получить.

...