问题标签 [google-natural-language]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
1197 浏览

java - com.google.common.base.Preconditions.checkArgument(ZLjava/lang/String;CLjava/lang/Object;)V

我正在使用 google BETA API:AutoML Natural Language,在训练 API 之后,我在 Java SE 项目中进行了测试,获得了令人满意的结果,但是,当我将其迁移到 Java EE 项目时,我遇到了不同的问题。关于:

-Java -版本: 1.8.0_201
-Payara 版本:5.191
-google-cloud-automl 依赖:0.97.0-beta

当我尝试运行实体提取服务(PredictionServiceClient 类)时,它返回错误java.lang.NoSuchMethodError: com.google.common.base.Preconditions.checkArgument (ZLjava / lang / String; CLjava / lang / Object;) V,根据不同的来源,此错误是由不同版本的番石榴库之间的冲突引起的。我认为我的特定错误是因为番石榴在 payara 中的版本是 19.0.0 而 google-cloud-automl 需要版本> 20。

要解决此错误,payara 建议在此处修改文件 glassfish-application.xml,“这样,EAR 的 lib / 目录中包含的库将优先”,但这对我不起作用。

代码是在本文档的帮助下编写的

glassfish-application.xml

pom[EJB].xml

方法 AutoML Extraction.xml

还有另一种方法可以做到这一点吗?我的应用程序真的不可能在 pom 中使用番石榴版本而不是 payara 服务器吗?在 maven mvn 依赖中测试命令行之后;tree -Dverbose在我的项目路径中我没有收到任何依赖项错误。那么番石榴真的可以成为这个错误的原因吗?我觉得我已经尝试了一切,但我找不到解决我问题的可能方法,提前谢谢你。

0 投票
2 回答
148 浏览

google-natural-language - 如何为 Google 自然语言实体 api 响应计算 beginoffset?

我正在使用谷歌的自然语言analyzeEntitiesapi,在响应中,有一个嵌套EntityMention.TextSpan对象,有 2 个字段:内容和 beginOffset。我想利用 beginOffset 进行进一步分析。所以我试图映射原始文本中的单词索引并将它们与 beginOffset 进行比较,但我注意到索引不同。

我正在使用一种相当幼稚的方法来构建这个索引:

结果是:

我从 analyzeEntities api 得到的结果是:

我了解非字母数字字符具有特殊含义和处理方式,我希望偏移量能够代表真实索引。

因为,解析查询文本的规则不是什么,beginOffset 是如何计算的?

谢谢!

0 投票
1 回答
728 浏览

authentication - Google Cloud Natural Language API 的 IAM 角色

我想将 Google Cloud Natural Language API 与它的 Node.js 库一起使用。对于身份验证,我使用文档建议的服务帐户Docs 建议使用角色“所有者”,但对于生产“更细化”权限。不幸的是,他们没有提到可用的角色。我也没有在IAM docs找到角色,我通常在其中查找角色/权限。

NLP API 可以使用哪些角色?有 AutoML 角色,并且 AutoML 与 NLP 相关,也许它们适合?

我的测试表明,我使用哪个角色实际上并不重要。甚至像“BigQuery MetadataViewer”这样的东西也会授予对 NLP API 的访问权限?!但是,我想使用正确的角色而不是随机的角色,有时以后的东西会中断。

更令人困惑的是,API 密钥文档说 NLP API 只能通过 API 密钥访问,但 NLP 文档本身告诉您使用服务帐户。我猜API密钥是遗留信息..

0 投票
1 回答
109 浏览

automl - 部署 AUTOML NL 训练模型失败

我正在使用 Google Auto ML 自然语言 API。

我已经有一个训练有素的模型。

一开始,当我训练模型时,它被部署了,一切都很好。根据谷歌从 2019 年 1 月 22 日起的新规定,7 周或更长时间没有预测流量的模型将被静默地取消部署和归档。

目前,我无法预测该训练模型的任何结果,因为它尚未部署,因为它可能有 7 周未使用。

同样根据谷歌,如果我想继续使用该模型,我应该使用 Deploy API 重新部署它。 https://cloud.google.com/natural-language/automl/docs/models#deploying_or_undeploying_a_model

我尝试重新部署模型,但出现错误,因此无法做出任何预测。

为了开始预测结果,我怎样才能部署一个没有错误的模型?

因此,我将展示我为尝试解决此问题而采取的步骤:

  1. 使用正确的数据运行部署请求。
  2. 运行操作请求
  3. 等待部署完成
  4. 再次运行操作请求
  5. 显示我拥有的模型列表(未部署)

1 https://automl.googleapis.com/v1beta1/projects/ {project}/locations/{location}/models/{Model ID}:deploy

2 和 4 https://automl.googleapis.com/v1beta1/projects/{project}/locations/{location}/operations

5 https://automl.googleapis.com/v1beta1/projects/{project}/locations/{location}/models

因此,当模型完成部署进度时,我期望操作请求中出现 0 个错误,但它显示错误代码 4。我在此提供的枚举中搜索了此错误代码 4:https ://github.com/googleapis/googleapis /blob/master/google/rpc/code.proto

对于错误代码 4:

我不知道为什么会发生这种超时。

我已经在配额限制中搜索,但一切都很好。

0 投票
3 回答
217 浏览

google-cloud-platform - Google Cloud 分层计费 - 项目 v 计费帐户

问题:在 Google Cloud 中,是否提供基于数量的分层定价的服务,例如“Google Natural Language API”,其层级基于按项目 ID 或帐单帐户汇总的使用情况?

示例:实体分析定价在 100 万次请求后首次中断。如果在给定月份中,如果一个帐户在单个 PROJECT ID 下对该资源发出 500 万次请求,而与同一个 BILLING ACCOUNT 绑定的 5 个不同的 PROJECT IDS 分别发出 100 万次请求,那么总成本是否存在差异?总共 5 毫米的请求?

用于实体分析的 Google 自然语言定价 来源:https ://cloud.google.com/natural-language/pricing

背景:我们有一个使用多个谷歌云服务的大型项目。这些服务在概念上可以分为: 1. 身份验证服务 2. 地理定位服务 3. 自然语言服务

我们的项目也部署在多个环境(开发/暂存/生产)中,我们使用的服务还不支持标签。

理想情况下,我们希望将它们组织成 9 个不同的 GCP 项目,因为它会提供许多安全和报告优势,但如果分层计费的使用是在 PROJECT ID 级别计算的,则会导致更高的总体成本。

0 投票
1 回答
273 浏览

google-bigquery - gcp NL api 情绪分析 - 如何将结果存储在 BigQuery 中

我正在使用 gcp bigquery 通过 google 函数存储新闻流并将其保存在 bigquery 中。

如何运行使用来自 bigquery 的数据的 python 脚本,并最终将分数和幅度的结果写回相关数据集?

我在谷歌文档中找不到任何关于它的内容,只是如何运行情绪分析,而不是如何从 bigquery 获取数据并将结果返回到 bigquery。

非常感谢您的支持。

0 投票
1 回答
94 浏览

google-cloud-platform - 谷歌云自然语言 API:analyzeSyntax API 是否有一个令牌参数在 partOfSpeech 结果中不包含“*_UNKNOWN”值属性

我想知道 API 端点是否有任何方式允许analyzeSyntaxAPI响应 JSON 不包含字典的子属性(partOfSpeech如果它们是)*_UNKNOWN?在查看文档输入partOfSpeech详细信息时,我找不到任何方法来限制.

这是只有在响应后清理数据时才会处理的事情吗?

每个 API 文档的示例查询在一个名为的文件中request.json

执行的命令:

回复样本:

此响应 JSON 为819行,其中314行(接近响应的 40%!)是属性*_UNKNOWNpartOfSpeech。因此,完全无用,但显着增加了响应中的数据量。

该文档似乎没有提供可以帮助解决此问题的参数。我是否遗漏了什么,或者这个 API 是否不支持删除这些密钥的参数*_UNKNOWN?这是否只能通过数据清理在响应后进行管理?

0 投票
1 回答
65 浏览

machine-learning - 表情符号和 hashags 如何影响 Google Natural Language Classify Text 的准确性?

我有一个项目,我必须使用谷歌自然语言分类文本来查找文本类别。

https://cloud.google.com/natural-language/docs/reference/rest/v1/documents/classifyText

我的文本文档将包含表情符号和主题标签。谁能告诉我这些将如何影响分数?我应该在调用 API 之前摆脱它们还是让它们消失?

我自己尝试了多个文档,但结果相互矛盾。任何人都可以指导我吗?

0 投票
1 回答
50 浏览

google-cloud-platform - 有没有办法在 Google Natural Language API 情感分析中明确设置句子的开头和结尾?

我正在使用 Google Natural Language API 进行情绪分析。我有一组字符串文本,我将它们连接起来并发送给谷歌以获取每种情感的情感值,但谷歌对句子的开始和结束位置有自己的想法,因此得到加扰的情感结果和不同的情感分数计数,然后发送句子。

如果您只能<sentence> </sentence>为您希望将其视为单独句子的每个短语设置一个标志 - 那会很棒,但文档没有关于它的信息。

PS我正在使用它(发送一个块而不是为每个句子做一个单独的API请求)方式,因为我有数千个句子并且延迟很重要。

0 投票
1 回答
190 浏览

python - 调用 Google 的自然语言 API 时打开的文件过多:“/home/USER/PATH/SERVICE_ACCOUNT.json”

我正在使用Google Cloud Natural Language API和 Python 进行情绪分析项目,这个问题可能与另一个问题类似,我正在做的事情如下:

  1. 从 Google Cloud Storage 读取 CSV 文件,文件有大约 7000 条记录。
  2. 将 CSV 转换为 Pandas DataFrame。
  3. 遍历数据框并调用自然语言 API 以对数据框的列之一执行情感分析,在同一个for 循环中,我从结果中提取分数幅度,并将这些值添加到数据框的新列中。
  4. 将结果数据帧存储回 GCS。

我将我的代码放在下面,但在此之前,我只想提一下,我已经使用少于 100 条记录的示例 CSV 对其进行了测试,并且效果很好,我也知道每分钟 600 个请求的配额限制,为什么我延迟每次迭代的原因,仍然,我得到了我在标题中指定的错误。我也知道增加 ulimit 的建议,但我认为这不是一个好的解决方案。

这是我的代码:

'analyze_sentiment' 功能与我们在Google 文档中的功能非常相似,我只是对其进行了一些修改,但它的作用几乎相同。

现在,程序在达到 550 和 700 之间的记录时引发该错误并崩溃,但我没有看到服务帐户 JSON 和调用自然语言 API 之间的相关性,所以我也认为当我调用API,它会打开帐户凭据 JSON 文件,但之后不会关闭它。

我目前遇到这个问题并且没有想法,所以任何帮助将不胜感激,在此先感谢=)!

[更新]

我已经通过从“ analyze_sentiment ”方法中提取“ client ”并将其作为参数传递来解决了这个问题,如下所示:

看起来每次它到达这条线:

它会打开帐户凭据 JSON 文件,但不会关闭,因此将其提取到全局变量即可完成这项工作 =)。