Объединение НЛП (текстовых) и числовых данных для построения модели - PullRequest
0 голосов
/ 15 октября 2019

У меня есть набор данных со следующими функциями

data = {
description:'the tea was amazing, had great taste.'
country:'Chile'
year: 1980
designation:'random'
points: 80
}

Я ищу способ использовать эти функции для построения модели для прогнозирования точек.

Описание, по-видимому, содержит много информации о точках.

Как передать эти данные в модель, а также в какую модель?

1 Ответ

1 голос
/ 15 октября 2019

Поскольку текстовые данные не могут быть переданы модели напрямую, я предлагаю вам использовать вложения для преобразования описания во вложения. Если в вашем наборе данных есть уникальные значения обозначений в целом, вы можете быстро кодировать обозначения. Для стран вы также можете горячо их кодировать или использовать символьные вложения для генерации встраивания на основе слов. Год и баллы не требуют предварительной обработки. Как я могу предположить по вашей проблеме, ваша проблема является проблемой регрессии. Вы можете попробовать регрессор повышения градиента Склеарна или регрессор случайных лесов или любой другой регрессор для получения значений.

def loadGloveModel(gloveFile):
    print("Loading Glove Model")
    f = open(gloveFile,'r')
    model = {}
    for line in f:
        splitLine = line.split()
        word = splitLine[0]
        embedding = np.array([float(val) for val in splitLine[1:]])
        model[word] = embedding
    print("Done.",len(model)," words loaded!")
    return model

Вы можете использовать это как (Этот файл можно загрузить с сайта перчаток.) ​​

model=loadGloveModel("glove.6B.300d.txt")
def averagewEmbeddings(line):

    line=str(line)
    average=model['x']
    length=0
    line=line.split(' ')
    for word in line:
        #for alphabet in word:
        length=length+1
        try:
            embed=model[word]
            average=average+embed
        except:
            average=average

    return ((average-model['x'])/length)
embeddings=[]
for index,sen in enumerate(data.description):
    embeddings.append(averagewEmbeddings(sen))

будут иметь вложения всех ваших наборов данных, которые вы сможете позже добавить в свой фрейм данных и удалить столбец описания

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