小编Poe*_*dit的帖子

在Dialogflow上没有错误时,Google智能助理出错

我创建了一个聊天机器人,告知用户我(扩展)家庭的成员以及他们住在哪里.我已经创建了一个包含MySQL的小型数据库,其中存储了这些数据,并且只要这是合适的,我就会使用PHP脚本来获取它们,具体取决于用户与聊天机器人的交互.

我的聊天机器人包含两个意图此外,对于Default Fallback Intent和到Default Welcome Intent:

  • Names
  • Location_context

第一个意图(Names)由诸如"谁是约翰史密斯?"之类的短语训练.并有一个输出上下文(调用context持续时间为10个问题).这个问题的一个可能答案是"约翰是我的叔叔." 第二个意图(Location_context)由诸如"他住在哪里?"之类的短语训练.并有一个输入上下文(从Names).对这个问题的一个可能的答案是"约翰住在纽约."

该Names意图包含两个参数:

  • 参数名称:给定名称,姓氏.
  • 实体:@sys.given-name,@ sys.last-name.
  • value:$ given-name,$ last-name.

这两个参数表示用户给出的全名.该Location_context意图不包含任何参数.

PHP脚本如下:

<?php

$dbServername = '******************';
$dbUsername = '******************';
$dbPassword = '******************';
$dbName = '******************';
$conn = mysqli_connect($dbServername, $dbUsername, $dbPassword, $dbName);

// error_reporting(E_ALL);
// ini_set('display_errors', 'on');

header('Content-Type: application/json');
$method = $_SERVER['REQUEST_METHOD'];

if($method == 'POST'){
    $requestBody = file_get_contents('php://input');
    $json = json_decode($requestBody);

    $action = $json->result->action;
    $first_name = $json->result->contexts[0]->parameters->{'given-name'};
    $last_name …
Run Code Online (Sandbox Code Playgroud)

php json actions-on-google api-ai dialogflow-es

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

无法交换访问令牌的授权码(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 Linking为Actions on Google以Auth0作为是在帖子中描述,如下面的:

因此,现在我在对话期间询问用户手机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
查看次数

SkLearn 调用嵌套交叉验证

我正在阅读有关嵌套交叉验证的 SkLearn 文档,我在此SkLearn 页面上发现了以下嵌套交叉验证示例:

from sklearn.datasets import load_iris
from matplotlib import pyplot as plt
from sklearn.svm import SVC
from sklearn.model_selection import GridSearchCV, cross_val_score, KFold
import numpy as np

print(__doc__)

# Number of random trials
NUM_TRIALS = 30

# Load the dataset
iris = load_iris()
X_iris = iris.data
y_iris = iris.target

# Set up possible values of parameters to optimize over
p_grid = {"C": [1, 10, 100],
          "gamma": [.01, .1]}

# We will use a Support Vector Classifier with …
Run Code Online (Sandbox Code Playgroud)

python machine-learning scikit-learn cross-validation

5
推荐指数
0
解决办法
833
查看次数

Googletrans API 错误 - 每日限制或封锁 IP?

我正在使用该googletrans包。

我今天一整天都使用它翻译了很多文本。

正如文档所暗示的那样,我已将文本拆分为少于 15k 个字符的标记,并且我Translator()在每种情况下都重新实例化了它们。

(实际上只是提一下,如果我没有遗漏某些内容,我必须将文本分割成小于 15k 字符的令牌,例如 2k,因为我认为即使使用 10k 字符令牌之类的东西,该包也会返回错误 - 我不知道为什么会发生这种情况)。

现在我执行以下操作:

from googletrans import Translator

translator = Translator()      
response = translator.translate('Is this working?', dest='fr')

print(response.text)
Run Code Online (Sandbox Code Playgroud)

我直接得到以下错误:

JSONDecodeError: Expecting value: line 1 column 1 (char 0)
Run Code Online (Sandbox Code Playgroud)

为什么会发生这种情况?

是因为(不成文的 - 我没有在文档中看到)该软件包的每日使用限制还是我的 IP 被永久阻止?

我在这里看到了相关讨论:GoogleTrans API Error - Expecting value: line 1 column 1 (char 0)。

python google-translate python-3.x

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

查找每类 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
查看次数

为什么 GCP Vision API 在 Python 中返回的结果比在其在线演示中更差

我编写了一个基本的 Python 脚本来调用和使用 GCP Vision API。我的目标是向它发送产品图像并检索(使用 OCR)写在这个盒子上的文字。我有一个预定义的品牌列表,因此我可以在从 API 返回的文本中搜索品牌并检测它是什么。

我的python脚本如下:

import  io
from google.cloud import vision
from google.cloud.vision import types
import os
import cv2
import numpy as np

os.environ["GOOGLE_APPLICATION_CREDENTIALS"] = "**************************"


def detect_text(file):
    """Detects text in the file."""
    client = vision.ImageAnnotatorClient()

    with io.open(file, 'rb') as image_file:
        content = image_file.read()

    image = types.Image(content=content)

    response = client.text_detection(image=image)
    texts = response.text_annotations
    print('Texts:')

    for text in texts:
        print('\n"{}"'.format(text.description))

        vertices = (['({},{})'.format(vertex.x, vertex.y)
                    for vertex in text.bounding_poly.vertices])

        print('bounds: {}'.format(','.join(vertices)))


file_name = "Image.jpg"
img = cv2.imread(file_name) …
Run Code Online (Sandbox Code Playgroud)

python ocr google-cloud-vision

4
推荐指数
1
解决办法
831
查看次数

OneHotEncoder-仅编码一些分类变量列

假设我有一个带有以下列名称的pandas数据框:

  • 'age' (例如33、26、51等)
  • 'seniority' (例如“初级”,“高级”等)
  • 'gender' (例如“男”,“女”)
  • 'salary' (例如32000、40000、64000等)

我想将seniority分类变量转换为一个热编码值。因此,我正在执行以下操作:

from sklearn.preprocessing import LabelEncoder
label_encoder = LabelEncoder()
data['seniority'] = label_encoder.fit_transform(data['seniority'])

from sklearn.preprocessing import OneHotEncoder
one_hot_encoder = OneHotEncoder(categorical_features=[1])
data = one_hot_encoder.fit_transform(data.values)
Run Code Online (Sandbox Code Playgroud)

但是然后我得到这个错误

ValueError: could not convert string to float: 'gender'
Run Code Online (Sandbox Code Playgroud)

在线

data = one_hot_encoder.fit_transform(data.values)
Run Code Online (Sandbox Code Playgroud)

但是,我已经明确指定了,categorical_features=[1]因此seniority对于这一热编码,仅应考虑列1()。

如何解决此错误(例如,删除“性别”列除外)?

我pandas.get_dummies过去使用过,但没有这个问题。

python scikit-learn one-hot-encoding

4
推荐指数
1
解决办法
2209
查看次数

删除特殊字符,但不删除重音字母

我执行以下操作:

\n\n
re.sub(r'[^ \\nA-Za-z0-9/]+', '', document)\n
Run Code Online (Sandbox Code Playgroud)\n\n

删除除字母数字、空格、换行符或正斜杠之外的所有字符。

\n\n

所以我基本上想删除除换行符和正斜杠之外的所有特殊字符。

\n\n

但是,我不想删除各种语言(例如法语、德语等)中的重音字母。

\n\n

但是如果我运行上面的代码,那么例如这个词

\n\n

Mot\xc3\xb6rhead

\n\n

变成

\n\n

Motrhead

\n\n

我不想这样做。

\n\n

那么如何运行上面的代码而不删除重音字母呢?

\n\n

更新:

\n\n

下面的@MattM提出了一个解决方案,该解决方案适用于英语、法语、德语等语言,但它肯定不适用于波兰语等语言,因为波兰语中所有重音字母仍被删除。

\n

python nlp diacritics

4
推荐指数
1
解决办法
4282
查看次数

str.translate 与 str.replace - 何时使用哪一个?

何时以及为什么使用前者而不是后者,反之亦然?

尚不完全清楚为什么有些人使用前者而有些人使用后者。

python replace python-3.x

4
推荐指数
1
解决办法
737
查看次数

隐蔽到稀疏矩阵 - 类型错误:不支持类型转换:(dtype('0'),)

我正在尝试这样做:

  features = csr_matrix(features)
Run Code Online (Sandbox Code Playgroud)

这里features是一个<class 'numpy.ndarray'>看起来像如下:

[[51 1]
 [49 2]
 [47 2]
 ...
 [2 6]
 [20 2]
 [16 1]]
Run Code Online (Sandbox Code Playgroud)

但我收到以下错误:

TypeError: no supported conversion for types: (dtype('O'),)
Run Code Online (Sandbox Code Playgroud)

这个错误是关于什么的,我该如何解决?

python numpy scipy sparse-matrix

4
推荐指数
1
解决办法
2978
查看次数