小编Poe*_*dit的帖子

Textblob - HTTPError:HTTP 错误 429:请求过多

我有一个数据框,其中一列在每一行都有一个字符串列表。

平均而言,每个列表有 150 个单词,每个单词大约 6 个字符。

数据框的 700 行中的每一行都与一个文档有关,每个字符串都是该文档的一个单词;所以基本上我已经标记了文档的文字。

我想检测每个文档的语言,为此我首先尝试检测文档中每个单词的语言。

为此,我执行以下操作:

from textblob import TextBlob

def lang_detect(document):

    lang_count = {}
    for word in document:

        if len(word) >= 4:

            word_textblob = TextBlob(word)
            lang_result = word_textblob.detect_language()

            response = lang_count.get(lang_result)

            if response is None:  
                lang_count[f"{lang_result}"] = 1
            else:
                lang_count[f"{lang_result}"] += 1

    return lang_count

df_per_doc['languages_count'] = df_per_doc['complete_text'].apply(lambda x: lang_detect(x))
Run Code Online (Sandbox Code Playgroud)

当我这样做时,我收到以下错误:

---------------------------------------------------------------------------
HTTPError                                 Traceback (most recent call last)
<ipython-input-42-772df3809bcb> in <module>
     25 
---> 27 df_per_doc['languages_count'] = df_per_doc['complete_text'].apply(lambda x: lang_detect(x))
     28 
     29 
.
.
.

    647 …
Run Code Online (Sandbox Code Playgroud)

python language-detection textblob

12
推荐指数
1
解决办法
8662
查看次数

如何在Google和Auth0上的操作之间取消关联帐户

我正在使用Actions on Google(在手机上Google Assistant)并使用它Account Linking登录Auth0(登录窗口: 图像).

但是,我想从我想要的地方注销,Auth0这样我就可以从头开始测试整个过程.

我写了下面的源代码PythonFlask下面的Auth0文档(https://auth0.com/docs/logout).

from flask import Flask, render_template, request, jsonify
import requests

app = Flask(__name__)
@app.route("/", methods=['GET', 'POST'])
def index():

    session['user'] = 'Poete_Maudit'

    data = request.get_json()

    if data is not None:
        action = data["queryResult"]["action"]
    else:
        return 'HERE'

    # Triggers actions.intent.SIGN_IN which leads to Auth0
    if (action == 'sign'):

        return jsonify({"payload": {
                    "google": {
                        "expectUserResponse": …
Run Code Online (Sandbox Code Playgroud)

python flask ngrok auth0 actions-on-google

8
推荐指数
1
解决办法
631
查看次数

TF-IDF 和非 TF-IDF 功能的准确性

我运行具有 TF-IDF 和非 TF-IDF 特征的随机森林算法。

总共特征数量约为 130k(在对 TF-IDF 特征进行特征选择之后),训练集的观察数量约为 120k。

其中大约 500 个是非 TF-IDF 功能。

问题是随机森林在同一测试集上的准确性等

- 只有非 TF-IDF 的特征是 87%

- TF-IDF 和非 TF-IDF 特征为 76%

准确性的显着恶化在我的脑海中引发了一些问题。

我与模型训练的相关代码如下:

drop_columns = ['labels', 'complete_text_1', 'complete_text_2']

# Split to predictors and targets
X_train = df.drop(columns=drop_columns).values
y_train = df['labels'].values


# Instantiate, train and transform with tf-idf models
vectorizer_1 = TfidfVectorizer(analyzer="word", ngram_range=(1,2), vocabulary=tf_idf_feature_names_selected)
X_train_tf_idf_1 = vectorizer_1.fit_transform(df['complete_text_1'])

vectorizer_2 = TfidfVectorizer(analyzer="word", ngram_range=(1,2), vocabulary=tf_idf_feature_names_selected)
X_train_tf_idf_2 = vectorizer_2.fit_transform(df['complete_text_2'])


# Covert the general features to sparse array
X_train = …
Run Code Online (Sandbox Code Playgroud)

python machine-learning tf-idf random-forest

8
推荐指数
1
解决办法
635
查看次数

如何使用 Scikit Learn 获得绝对可重复的结果?

关于使用 运行机器学习算法时的播种系统Scikit-Learn,通常提到三种不同的事情:

  • random.seed
  • np.random.seed
  • random_stateat SkLearn(交叉验证迭代器、ML 算法等)

我已经在我的脑海这个常见问题SkLearn有关如何解决全球直播系统和物品,其指出,这不应该是一个简单的常见问题。

我的最终问题是在运行 ML 算法时如何获得绝对可重现的结果SkLearn

更详细地说,

  • 如果我只使用np.random.seed并且不指定任何random_stateSkLearn那么我的结果是否绝对可重现?

至少为了知识而提出一个问题:

  • 如何准确np.random.seedrandom_stateSkLearn是内部关系吗?如何np.random.seed影响播种系统 ( random_state)SkLearn并使其(至少在假设上)重现相同的结果?

python scikit-learn random-seed

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

GridSearchCV - FitFailedWarning:估计器拟合失败

我正在运行这个:

# Hyperparameter tuning - Random Forest #

# Hyperparameters' grid
parameters = {'n_estimators': list(range(100, 250, 25)), 'criterion': ['gini', 'entropy'], 
              'max_depth': list(range(2, 11, 2)), 'max_features': [0.1, 0.2, 0.3, 0.4, 0.5], 
              'class_weight': [{0: 1, 1: i} for i in np.arange(1, 4, 0.2).tolist()], 'min_samples_split': list(range(2, 7))}


# Instantiate random forest
from sklearn.ensemble import RandomForestClassifier
classifier = RandomForestClassifier(random_state=0)


# Execute grid search and retrieve the best classifier
from sklearn.model_selection import GridSearchCV
classifiers_grid = GridSearchCV(estimator=classifier, param_grid=parameters, scoring='balanced_accuracy',
                                   cv=5, refit=True, n_jobs=-1)
classifiers_grid.fit(X, y)
Run Code Online (Sandbox Code Playgroud)

我收到此警告:

.../anaconda/lib/python3.7/site-packages/sklearn/model_selection/_validation.py:536: …
Run Code Online (Sandbox Code Playgroud)

python scikit-learn grid-search

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

GridSearchCV - 如何限制内存使用

我正在使用GridSearchCV( scikit-learn)Spark和执行网格搜索Linux。出于这个原因,我nohup ./spark_python_shell.sh > output.log &在我的bashshell 中运行以点燃 Spark 集群,并且我还运行了我的 python 脚本(见下文spark-submit \ --master yarn 'grid_search.py'):

    SPARK_HOME=/u/users/******/spark-2.3.0 \
    Q_CORE_LOC=/u/users/******/q-core \
    ENV=local \
    HIVE_HOME=/usr/hdp/current/hive-client \
    SPARK2_HOME=/u/users/******/spark-2.3.0 \
    HADOOP_CONF_DIR=/etc/hadoop/conf \
    HIVE_CONF_DIR=/etc/hive/conf \
    HDFS_PREFIX=hdfs:// \
    PYTHONPATH=/u/users/******/q-core/python-lib:/u/users/******/three-queues/python-lib:/u/users/******/pyenv/prod_python_libs/lib/python2.7/site-packages/:$PYTHON_PATH \
    YARN_HOME=/usr/hdp/current/hadoop-yarn-client \
    SPARK_DIST_CLASSPATH=$(hadoop classpath):$(yarn classpath):/etc/hive/conf/hive-site.xml \
    PYSPARK_PYTHON=/usr/bin/python2.7 \
    QQQ_LOC=/u/users/******/three-queues \
    spark-submit \
    --master yarn 'grid_search.py' \
    --executor-memory 10g \
    --num-executors 8 \
    --executor-cores 10 \
    --conf spark.port.maxRetries=80 \
    --conf spark.dynamicAllocation.enabled=False \
    --conf spark.default.parallelism=6000 \ …
Run Code Online (Sandbox Code Playgroud)

python linux memory-management scikit-learn grid-search

6
推荐指数
0
解决办法
838
查看次数

还有比 pandas fillna() 更快的方法吗?

Pandas fillna()速度非常慢,尤其是在数据框中存在大量丢失数据的情况下。

还有比它更快的方法吗?

(我知道如果我简单地删除一些包含 NA 的行和/或列会有帮助)

python missing-data pandas

6
推荐指数
1
解决办法
4206
查看次数

无法交换访问令牌的授权码(feacft)

我想用Dialogflow和Google智能助理以及Google Transactions API创建一个聊天机器人,以便用户订购一些商品.现在我的代理包含以下四个意图:

  • Default Welcome Intent (文字回复:你好,你想买一个巧克力盒吗?)
  • Default Fallback Intent
  • Int3 (培训短语:"是的,我想登录",履行:启用webhook)
  • Int4(事件:actions_intent_SIGN_IN,履行:启用webhook)

我使用Dialogflow Json而不是Node.js将我的代理与Transactions API连接起来.我实现了所有必要的步骤来设置Account LinkingActions on GoogleAuth0作为是在帖子中描述,如下面的:

因此,现在我在对话期间询问用户手机Google智能助理 "你想登录吗?" 然后用户回答"是的,我想登录"哪个触发器Int3.在这种情况下,从我的后端通过webhook我发送以下json:

{
    "payload": {
        "google": {
            "expectUserResponse": true,
            "isSsml": false,
            "noInputPrompts": [],
            "systemIntent": {
                "data": {
                    "@type": "type.googleapis.com/google.actions.v2.SignInValueSpec",
                    "optContext": "To make the order easier"
                },
                "intent": "actions.intent.SIGN_IN"
            }
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

然后,这会使以下窗口出现在用户的屏幕上:登录窗口

所以我正在按下LOG IN WITH GOOGLE并选择我的一个Gmail帐户.但是,我在Google智能助理上收到以下错误:Sorry, something went wrong. Please …

auth0 actions-on-google dialogflow-es

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

查找每类 TF-IDF 分数最高的前 n 个术语

假设我有一个包含两列的数据框,其中pandas类似于以下一列:

    text                                label
0   This restaurant was amazing         Positive
1   The food was served cold            Negative
2   The waiter was a bit rude           Negative
3   I love the view from its balcony    Positive
Run Code Online (Sandbox Code Playgroud)

然后我在这个数据集上使用TfidfVectorizerfrom sklearn

找到每类 TF-IDF 得分词汇量前 n 名的最有效方法是什么?

显然,我的实际数据框包含比上面 4 行更多的数据行。

我的帖子的重点是找到适用于任何类似于上面的数据框的代码;4 行数据帧或 1M 行数据帧。

我认为我的帖子与以下帖子有很多相关性:

python python-3.x scikit-learn tfidfvectorizer

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

Group by 返回空数据帧并且没有错误

我尝试groupbyagg收到一个空数据帧并且没有错误。

当我这样做时:

  df_temp = df.groupby('Col1')['InfoType', 'InfoLabel1', 'InfoLabel2'].agg(lambda x: ', '.join(x))
Run Code Online (Sandbox Code Playgroud)

然后我收到按预期聚合的数据帧。

当我这样做时:

  df_temp = df.groupby('Col1', 'Col2')['InfoType', 'InfoLabel1', 'InfoLabel2'].agg(lambda x: ', '.join(x))
Run Code Online (Sandbox Code Playgroud)

然后我收到按预期聚合的数据帧。

当我这样做时:

  df_temp = df.groupby('Col1', 'Col2', 'Col3')['InfoType', 'InfoLabel1', 'InfoLabel2'].agg(lambda x: ', '.join(x))
Run Code Online (Sandbox Code Playgroud)

然后我收到按预期聚合的数据帧。

但是当我这样做时:

  df_temp = df.groupby('Col1', 'Col2', 'Col3', 'Col4')['InfoType', 'InfoLabel1', 'InfoLabel2'].agg(lambda x: ', '.join(x))
Run Code Online (Sandbox Code Playgroud)

然后我收到一个空数据帧并且没有错误。

但是,我不认为问题是Col4因为当我删除Col2并仍然保留Col4时,我收到了按预期聚合的数据帧。

为什么会发生这种情况?

'Col1'、'Col2'、'Col3'、'Col4' 属于不同类型,但我不认为这是问题,因为例如 Col1'、'Col2'、'Col3' 也属于不同类型,但聚合当我仅对这些进行分组时有效。

是否与这些列中的 NA 有关?

聚苯乙烯

我知道最好有我的数据的具体示例,但将它们发布在这里太耗时,而且我根本不想公开我的数据。

PS2

我做了以下事情。在之前groupby,我用值填充了np.nan(例如 -1 代表浮点数,'NA' 代表对象)并且代码有效,所以我对 NA 的最初假设可能是正确的。请随意分享为什么会发生这种情况。

pandas

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