小编Kri*_*lal的帖子

Gensim:KeyError:"词汇不在词汇中"

我使用Python的Gensim库训练有素的Word2vec模型.我有一个标记化列表如下.词汇大小是34,但我只是给出了34个中的一些:

b = ['let',
 'know',
 'buy',
 'someth',
 'featur',
 'mashabl',
 'might',
 'earn',
 'affili',
 'commiss',
 'fifti',
 'year',
 'ago',
 'graduat',
 '21yearold',
 'dustin',
 'hoffman',
 'pull',
 'asid',
 'given',
 'one',
 'piec',
 'unsolicit',
 'advic',
 'percent',
 'buy']
Run Code Online (Sandbox Code Playgroud)

模型

model = gensim.models.Word2Vec(b,min_count=1,size=32)
print(model) 
### prints: Word2Vec(vocab=34, size=32, alpha=0.025) ####
Run Code Online (Sandbox Code Playgroud)

如果我尝试通过model['buy']列表中的一个单词来获得相似性得分,我得到了

KeyError:"词'买'不在词汇中"

你们可以告诉我我做错了什么以及检查模型的方法有哪些可以进一步用于训练PCA或t-sne以便可视化形成主题的类似单词?谢谢.

python nlp gensim topic-modeling word2vec

14
推荐指数
2
解决办法
2万
查看次数

如何克服“OperationalError:SQL 变量过多”

我正在尝试将大小的数据框插入(8760, 1574)SQLite. 我的代码如下:

class DatabaseWorker(object):
    def __init__(self, db_name):
        self.db = db_name

    def create_table(self, table_name, column_names):
        conn = sqlite3.connect(self.db)
        cur = conn.cursor()
        q1 = 'DROP TABLE IF EXISTS %s' %(table_name)
        q2 = 'CREATE TABLE ' + table_name + ' ' + '(' + ', '.join(str(x) for x in column_names) + ')'
        cur.execute(q1)
        cur.execute(q2)
        conn.commit()
        conn.close()

    def insert_table(self, table_name, data):
        conn = sqlite3.connect(self.db)
        data.to_sql(table_name, conn, if_exists='append', index=False)
        conn.commit()
        conn.close()

cnx = DatabaseWorker("users")
cnx.create_table("user_activity", df_final.columns.values.tolist())
cnx.create_table("user_similarity_matrix", df_transformed.columns.values.tolist())
cnx.insert_table("user_activity", df_final) …
Run Code Online (Sandbox Code Playgroud)

python sqlite python-3.x

9
推荐指数
1
解决办法
3394
查看次数

DatabaseError: ('HY000', '[HY000] [Microsoft][ODBC SQL Server Driver]连接正忙于另一个 hstmt (0) (SQLExecDirectW) 的结果')

我正在尝试将 SQL Server 中的数据读取到 pandas 数据框中。下面是代码。

def get_data(size):
    con = pyodbc.connect(r'driver={SQL Server}; server=SPROD_RPT01; database=Reporting')
    cur = con.cursor()
    db_cmd = "select distinct top %s * from dbo.KrishAnalyticsAllCalls" %size
    res = cur.execute(db_cmd)
    sql_out = pd.read_sql_query(db_cmd, con, chunksize=10**6)
    frames = [chunk for chunk in sql_out]
    df_sql = pd.concat(frames)
    return df_sql

df = get_data(5000000)
Run Code Online (Sandbox Code Playgroud)

我收到以下错误:

pandas.io.sql.DatabaseError:执行失败 sql 'select different top 500000 * from dbo.KrishAnalyticsAllCalls': ('HY000', '[HY000] [Microsoft][ODBC SQL Server Driver]连接正忙于另一个 hstmt 的结果(0) (SQLExecDirectW)')

我之前已经执行过该函数并中断了执行,ctrl+k因为我想对函数进行更改。现在,在进行更改后,当我尝试执行该函数时,我收到了上述错误。

由于我不知道有任何 IPython 内核正在运行并在函数中执行查询,因此如何终止该连接/IPython 内核?

python sql-server pyodbc pandas

8
推荐指数
2
解决办法
3万
查看次数

Pyodbc:登录超时错误

我正在尝试pyodbc从运行Ubuntu 16.04的远程计算机连接到MS SQL Server 。

import pyodbc 

conn = pyodbc.connect(r'DRIVER=ODBC Driver 17 for SQL Server; SERVER=xxxTest-SRV; PORT=51333; DATABASE=TestDB; UID=xxxx; PWD=xxxx;')
Run Code Online (Sandbox Code Playgroud)

我收到以下错误:

pyodbc.OperationalError:('HYT00','[HYT00] [unixODBC] [Microsoft] [SQL Server的ODBC驱动程序17]登录超时已过期(0)(SQLDriverConnect)')

我尝试IP在连接字符串中使用服务器,但还是没有运气。

但是,我可以sqlcmd从终端连接到使用
以下作品:

sqlcmd -S xxxTest-SRV, 51333 -d TestDB -U xxxx -P xxxx
Run Code Online (Sandbox Code Playgroud)

我没有找到任何可以解决我问题的问题。

odbcinst.ini

[ODBC Driver 17 for SQL Server]
Description=Microsoft ODBC Driver 17 for SQL Server
Driver=/opt/microsoft/msodbcsql/lib64/libmsodbcsql-17.1.so.1.1
UsageCount=1
Run Code Online (Sandbox Code Playgroud)

pyodbc从Linux机器使用MS SQL Server连接似乎总是存在问题。有没有一种方法可以从Python连接到SQL Server。感谢您在解决此错误方面的帮助。谢谢。

[更新]

按照下面的答案,我更新了连接字符串。但是,现在我得到以下错误:

pyodbc.Error:('01000',“ [01000] [unixODBC] [驱动程序管理器]无法打开lib'/opt/microsoft/msodbcsql17/lib64/libmsodbcsql-17.0.so.1.1':找不到文件(0) (SQLDriverConnect)“)

我的odbcinst.ini文件驱动程序定义:

[ODBC Driver 17 …
Run Code Online (Sandbox Code Playgroud)

sql-server pyodbc python-3.x ubuntu-16.04

7
推荐指数
3
解决办法
1万
查看次数

使用cURL POST CSV /文本文件

如何将带有csv或文本文件的POST请求发送到在localhostusing 上运行的服务器cURL

我已经尝试过curl -X POST -d @file.csv http://localhost:5000/upload但是我得到了

{“ message”:“浏览器(或代理)发送了该服务器无法理解的请求。” }

我的服务器是flask_restful API。非常感谢。

curl flask python-3.x flask-restful

7
推荐指数
1
解决办法
7156
查看次数

使用 Imblearn 管道和 GridSearchCV 进行交叉验证

我正在尝试使用Pipeline来自的类imblearnGridSearchCV获得用于对不平衡数据集进行分类的最佳参数。由于每答案提到这里,我要离开了验证集的重采样,只有重新采样训练集,其中imblearnPipeline似乎是在做。但是,在实施已接受的解决方案时出现错误。请让我知道我做错了什么。下面是我的实现:

def imb_pipeline(clf, X, y, params):

    model = Pipeline([
        ('sampling', SMOTE()),
        ('classification', clf)
    ])

    score={'AUC':'roc_auc', 
           'RECALL':'recall',
           'PRECISION':'precision',
           'F1':'f1'}

    gcv = GridSearchCV(estimator=model, param_grid=params, cv=5, scoring=score, n_jobs=12, refit='F1',
                       return_train_score=True)
    gcv.fit(X, y)

    return gcv

for param, classifier in zip(params, classifiers):
    print("Working on {}...".format(classifier[0]))
    clf = imb_pipeline(classifier[1], X_scaled, y, param) 
    print("Best parameter for {} is {}".format(classifier[0], clf.best_params_))
    print("Best `F1` for {} is {}".format(classifier[0], clf.best_score_))
    print('-'*50)
    print('\n')
Run Code Online (Sandbox Code Playgroud)

参数:

[{'penalty': ('l1', 'l2'), 'C': (0.01, …
Run Code Online (Sandbox Code Playgroud)

pipeline python-3.x scikit-learn imblearn

7
推荐指数
1
解决办法
5362
查看次数

从目录重新加载 Keras-Tuner Trials

我正在尝试在之后重新加载或访问Keras-Tuner TrialsTuner以检查结果。我无法找到与此问题相关的任何文档或答案。

例如,我设置BayesianOptimization搜索最佳超参数如下:

## Build Hyper Parameter Search
tuner = kt.BayesianOptimization(build_model,
                     objective='val_categorical_accuracy',
                     max_trials=10,
                     directory='kt_dir',
                     project_name='lstm_dense_bo')

tuner.search((X_train_seq, X_train_num), y_train_cat,
             epochs=30,
             batch_size=64,
             validation_data=((X_val_seq, X_val_num), y_val_cat),
             callbacks=[callbacks.EarlyStopping(monitor='val_loss', patience=3, 
                                                restore_best_weights=True)])
Run Code Online (Sandbox Code Playgroud)

kt_dir我看到这会在项目名称的目录中创建试用文件,lstm_dense_bo如下所示: 调谐器对象

现在,如果我重新启动 Jupyter 内核,如何将这些试验重新加载到Tuner对象中,然后检查最佳模型或最佳超参数或最佳试验?

我非常感谢你的帮助。谢谢

keras tensorflow tf.keras tensorflow2.0 keras-tuner

6
推荐指数
2
解决办法
4805
查看次数

Python:Gensim Word2vec模型类中的"size"参数是什么

我一直在努力理解size参数的使用gensim.models.Word2Vec

从Gensim文档中,size是向量的维数.现在,据我所知,word2vec为每个单词创建一个与句子中其他单词紧密相关概率的向量.那么,假设我的vocab尺寸是30,那么它如何创建尺寸大于30的矢量?任何人都可以向我介绍Word2Vec尺寸的最佳值吗?

谢谢.

python gensim word2vec

5
推荐指数
1
解决办法
5655
查看次数

使用 pymssql 将数据插入 SQL Server 表

我正在尝试将数据框写入 SQL Server 表。我的代码:

conn = pymssql.connect(host="Dev02", database="DEVDb")
cur = conn.cursor()
query = "INSERT INTO dbo.SCORE_TABLE VALUES (%s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s)"
cur.executemany(query, df_sql)
conn.commit()
cur.close()
conn.close()
Run Code Online (Sandbox Code Playgroud)

的尺寸df_sql(5860, 20)在所述数据帧的列即数目是相同的列在SQL Server表中的数字。我仍然收到以下错误:

ValueError:sql 中的占位符多于可用的参数

更新如下

根据评论之一,我尝试使用turbodbc如下:

conn = turbodbc.connect(driver="{SQL Server}", server="Dev02", Database="DEVDb")
conn.use_async_io = True
cur = conn.cursor()
query = "INSERT INTO dbo.STG_CONTACTABILITY_SCORE VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)"
cur.executemany(query, df_sql.values)
cur.commit()
cur.close()
conn.close()
Run Code Online (Sandbox Code Playgroud)

我收到以下错误: …

python sql-server pymssql pandas

5
推荐指数
1
解决办法
2万
查看次数

Keras:文本摘要的注意机制

我正在尝试通过从此GitHub线程中获取大量帮助的方式来实现Attention使用抽象文本摘要的机制,在Keras该线程中有大量有关实现的有益讨论。我正在努力理解代码的某些非常基本的位以及为成功获得输出而需要修改的内容。我知道这是通过所有先前时间戳的所有隐藏状态生成的上下文向量的加权总和,这就是我们在下面尝试做的事情。attention

数据:

我得到了BBC新闻数据集,该新闻数据集由新闻文本和政治,娱乐和体育等各种类别的标题组成。

参数:

n_embeddings = 64
vocab_size = len(voabulary)+1
max_len = 200
rnn_size = 64
Run Code Online (Sandbox Code Playgroud)

码:

_input = Input(shape=(max_len,), dtype='int32')

embedding = Embedding(input_dim=vocab_size, output_dim=n_embeddings, input_length=max_len)(_input)
activations = LSTM(rnn_size, return_sequences=True)(embedding)

# compute importance for each step
attention = Dense(1, activation='tanh')(activations) 
attention = Flatten()(attention)
attention = Activation('softmax')(attention)
attention = RepeatVector(units)(attention)
attention = Permute([2, 1])(attention)

# apply the attention
sent_representation = merge([activations, attention], mode='mul')
sent_representation = Lambda(lambda xin: K.sum(xin, axis=1))(sent_representation)

probabilities = Dense(max_len, activation='softmax')(sent_representation)

model …
Run Code Online (Sandbox Code Playgroud)

python-3.x keras-2

5
推荐指数
1
解决办法
960
查看次数