2016-12-09 3 views
0

Im вычисляет сходство с косинусом с использованием NLTK и экспортирует значения подобия косинуса в SQL Server, которые я хотел бы использовать для других целей отчетности.Ограничение столбца Pandas to SQL Server для сходства с косинусом

У меня около 4773 столбцов с примерно 2 тыс. Строк, а SQL Server не поддерживает это количество столбцов? что было бы лучшей альтернативой? существует ли еще одна база данных с открытым исходным кодом, которая поддерживает этот масштаб данных?

У меня есть 2 набора данных, которые я вызываю как набор поезда (документы 2k) и набор тестовых данных (4773 документа), и во время процесса все записи тестовых данных станут столбцами, которые составляют около 4773 столбцов, и это не поддерживается Сервер SQl.

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

Любой совет будет полезным - Спасибо

вот код, который я использую для расчета косинус Сходства

from sklearn.metrics.pairwise import cosine_similarity 
df = pd.DataFrame(cosine_similarity(trainVectorizerArray,testVectorizerArray)) 
панд в SQL Server
import sqlalchemy 
import pypyodbc 
engine = sqlalchemy.create_engine("mssql+pyodbc://<user>:<password>@<DSN>") 
write the DataFrame to a table in the sql database 
df.to_sql("Cosine", engine) 

Пример вывода

  0   1 2   3   4   5 
    0 0.428519 0.000000 0.0 0.541096 0.250099 0.345604 
    1 0.056650 0.000000 0.0 0.000000 0.000000 0.000000 
    2 0.000000 0.000000 0.0 0.000000 0.000000 0.000000 
    3 0.849066 0.559117 0.0 0.374447 0.424247 0.586254 
    4 0.317644 0.000000 0.0 0.271171 0.586686 0.424560 
+0

Что о другой схеме: TrainSetId, DataSetId, Value? Это дает 3 столбца и 9,5 миллионов строк. Предполагая, что все эти документы имеют один и тот же тип данных ... – SMM

+0

OK! я вижу, что вы говорите, и да, возможно, это может быть, но я не уверен, как я смогу использовать эту схему позже. Мне может понадобиться помощь в этом процессе, я обновил свой вопрос с помощью своего кода. – RData

+0

Как вы собираетесь сравнить? Если вы собираетесь сравнить все документы по столбцам 2500 и получить самое ближайшее по TrainSetId, теперь вы сравните все документы DataSetId = 2500 и получите самое ближайшее по TrainSetId. Я не знаю, как выглядят эти документы. Я просто угадываю ваши требования здесь :-) – SMM

ответ

Смежные вопросы