mhan-ch/alchemyapi_php

使用 PHP 的 AlchemyAPI 软件开发工具包(SDK)

安装: 14

依赖项: 0

建议者: 0

安全: 0

星标: 0

关注者: 1

分支: 52

类型:sdk

dev-master 2017-02-10 20:02 UTC

This package is not auto-updated.

Last update: 2024-09-23 13:53:50 UTC


README

使用 PHP 的 AlchemyAPI 软件开发工具包(SDK) - 请注意,这个旧的 AlchemyAPI SDK 已经不再由 IBM 支持。请使用 Watson SDKs https://github.com/watson-developer-cloud?utf8=✓&query=sdk

AlchemyAPI

AlchemyAPI 提供人工智能服务。我们教会计算机如何阅读和观察,并通过基于云的 API 将我们的技术应用于文本分析和图像识别。我们的客户使用 AlchemyAPI 将他们的非结构化内容,如博客文章、新闻文章、社交媒体帖子以及图像,转化为更有用的结构化数据。

AlchemyAPI 是位于科罗拉多州丹佛市中心的一个技术初创公司。作为世界上最受欢迎的文本分析服务,AlchemyAPI 为超过 35,000 名开发者提供每月超过 35 亿次 API 请求。为了使我们的服务得以实现,我们使用人工智能、机器学习、神经网络、自然语言处理和大规模网络爬虫。我们的技术被广泛应用于多个行业领域,包括社交媒体监控、商业智能、内容推荐、金融交易和定向广告。

更多信息请访问:http://www.alchemyapi.com

API 密钥

要使用 AlchemyAPI,您需要获取一个 API 密钥并将其附加到所有请求中。如果您还没有密钥,请访问:http://www.alchemyapi.com/api/register.html

演示

要使用我们的交互式网络演示,该演示包括对 AlchemyAPI 所有文本分析功能的访问,请访问:http://www.alchemyapi.com/products/demo。您可以使用演示来更好地了解文本分析功能的工作方式,并将一些示例数据运行通过它以查看您可以期望得到什么样的结果。该演示调用的 API 函数与 SDK 完全相同。

开始使用 PHP SDK

要开始并运行示例,只需

git clone https://github.com/AlchemyAPI/alchemyapi_php.git
cd alchemyapi_php
php alchemyapi.php YOUR_API_KEY
php example.php

只需将 YOUR_API_KEY 替换为您从 AlchemyAPI 获取的 40 位 API 密钥,然后您就可以开始了。

使用 PHP SDK

此 SDK 使您能够轻松地使用 PHP 访问 AlchemyAPI 的所有文本分析功能。以下是一个可用函数列表以及如何在您的应用程序中使用它们。有关这些函数的工作代码示例,请查看上面的“开始使用 PHP SDK”部分中的示例代码并按说明运行示例。

创建 AlchemyAPI 对象

要使用每个功能,您必须首先创建一个 AlchemyAPI 对象。最简单的方法是

<?php
	require_once 'alchemyapi.php';
	$alchemyapi = new AlchemyAPI();
?>

您现在可以使用此对象来访问 AlchemyAPI 的文本分析功能。

图像关键词

Image Keywords API 使用 URL 或通过 HTML 请求体中发布的数据识别图像。有关 AlchemyAPI 图像关键词 API 的更多信息,请访问:http://www.alchemyapi.com/products/features/image-tagging。有关更多信息,请参阅文档:http://www.alchemyapi.com/api/image-tagging

要提取实体,使用

<?php
	$response = $alchemyapi->image_keywords(FLAVOR, DATA, OPTIONS);
?>

FLAVOR可以是'url'或'image'时,DATA是你的URL或uri-argument编码的图像数据,OPTIONS是一个数组,包含用于修改调用行为的可选参数。

选项

以下选项可用于此调用。要使用,请将所需的选项包含到一个数组中,并在调用中将它作为OPTIONS参数传递。

  • imagePostMode -> (仅适用于image flavor)
  •   not-raw :  pass an unencoded image file with "image=URI_ENCODED_DATA"
    
  •   raw     :  pass an unencoded image file using POST
    
  • extractMode ->
  • always-infer    :  (more CPU intensive, more accurate)
    
  • trust-metadata  :  (less CPU intensive, less accurate) (default)
    
  • only-metadata   :  (even less CPU intensive, less accurate)
    

解析

要解析结果,只需按照文档中详细说明的响应结构逐步进行即可。例如,以下是打印每个标记图像的关键词和分数的方法

<?php
	$response = $alchemyapi->image_keywords('url','http://www.lolcats.com/images/u/08/50/lolcatsdotcomur5dhkw464f8hb16.jpg', null);
	foreach ($response['imageKeywords'] as $imagekeyword) {
		echo 'keyword: ', $imagekeyword['text'], PHP_EOL;
		echo 'score: ', $imagekeyword['score'], PHP_EOL;
	}
?>

这将打印出

keyword: cat
score: 0.999697
keyword: kitten
score: 0.942676

实体

实体提取API识别您文本、HTML或URL内容中的专有名词。这些是命名的个人、公司、组织和地点。有关AlchemyAPI实体提取API的更多高级信息,请访问:http://www.alchemyapi.com/products/features/entity-extraction。有关更多技术信息,请参阅文档:http://www.alchemyapi.com/api/entity-extraction

要提取实体,使用

<?php
	$response = $alchemyapi->entities(FLAVOR, DATA, OPTIONS);
?>

当FLAVOR可以是'text'、'html'或'url'时,DATA是您的文本、HTML或URL内容,OPTIONS是一个数组,包含用于修改调用行为的可选参数。

选项

以下选项可用于此调用。要使用,请将所需的选项包含到一个数组中,并在调用中将它作为OPTIONS参数传递。

  • disambiguate -> 区分实体(例如,公司Apple与水果apple)。0:禁用,1:启用(默认)
  • linkedData -> 在区分的实体中包含链接数据。0:禁用,1:启用(默认)
  • coreference -> 解决指代问题(例如,与命名实体对应的代词)。0:禁用,1:启用(默认)
  • quotations -> 通过实体提取引号。0:禁用(默认),1:启用。
  • sentiment -> 分析每个实体的情感。0:禁用(默认),1:启用。如果启用,则需要1次额外的API事务。
  • showSourceText -> 0:禁用(默认),1:启用
  • maxRetrieve -> 要检索的实体最大数量(默认:50)

解析

要解析结果,只需按照文档中详细说明的响应结构逐步进行即可。例如,以下是打印每个提取实体的文本和类型的方法

<?php
	$response = $alchemyapi->entities('text','I like Ford cars better than icecream.', null);
	foreach ($response['entities'] as $entity) {
		echo 'entity: ', $entity['text'], PHP_EOL;
		echo 'type: ', $entity['type'], PHP_EOL;
	}
?>

这将打印出

entity: Ford
type: Company

关键词

关键词提取API识别您文本、HTML或URL内容中的重要术语。这些术语有多个名称,但关键词、标签和术语是最常见的。有关AlchemyAPI关键词提取API的更多高级信息,请访问:http://www.alchemyapi.com/products/features/keyword-extraction。有关更多技术信息,请参阅文档:http://www.alchemyapi.com/api/keyword-extraction

要提取关键词,使用

<?php
	$response = $alchemyapi->keywords(FLAVOR, DATA, OPTIONS);
?>

当FLAVOR可以是'text'、'html'或'url'时,DATA是您的文本、HTML或URL内容,OPTIONS是一个数组,包含用于修改调用行为的可选参数。

选项

以下选项可用于此调用。要使用,请将所需的选项包含到一个数组中,并在调用中将它作为OPTIONS参数传递。

  • keywordExtractMode -> normal(默认),strict
  • sentiment -> 分析每个关键词的情感。0:禁用(默认),1:启用。如果启用,则需要1次额外的API事务。
  • showSourceText -> 0:禁用(默认),1:启用。
  • maxRetrieve -> 返回的关键词最大数量(默认:50)

解析

要解析结果,只需按照文档中详细说明的响应结构逐步进行即可。例如,以下是打印每个提取关键词的文本和相关性方法

<?php
	$response = $alchemyapi->keywords('text', 'Bunnies are nice but sometimes robots are evil', array('sentiment'=>1));
	foreach ($response['keywords'] as $keyword) {
		echo 'keyword: ', $keyword['text'], PHP_EOL;
		echo 'relevance: ', $keyword['relevance'], PHP_EOL;
		echo 'sentiment: ', $keyword['sentiment']['type'], PHP_EOL;
	}
?>

这将打印出

keyword: Bunnies
relevance: 0.981751
sentiment: positive
keyword: robots
relevance: 0.832378
sentiment: negative

概念

概念标记API识别您文本、HTML或URL内容中的高级主题。与关键词不同,概念不必在内容中特别提及。有关AlchemyAPI概念标记API的更多高级信息,请访问:http://www.alchemyapi.com/products/features/concept-tagging。有关更多技术信息,请参阅文档:http://www.alchemyapi.com/api/concept-tagging

要标记概念,使用

<?php
	$response = $alchemyapi->concepts(FLAVOR, DATA, OPTIONS);
?>

当FLAVOR可以是'text'、'html'或'url'时,DATA是您的文本、HTML或URL内容,OPTIONS是一个数组,包含用于修改调用行为的可选参数。

选项

以下选项可用于此调用。要使用,请将所需的选项包含到一个数组中,并在调用中将它作为OPTIONS参数传递。

  • maxRetrieve -> 要检索的最大概念数量(默认:8)
  • linkedData -> 包含链接数据,0:禁用,1:启用(默认)
  • showSourceText -> 0:禁用(默认),1:启用

解析

要解析结果,只需按照文档中详细说明的响应结构逐层进行即可。例如,以下是如何打印每个概念的文字和相关性。

<?php
	$response = $alchemyapi->concepts('text','Today for lunch I ate two apples and one strawberry.', null);
	foreach ($response['concepts'] as $concept) {
		echo 'concept: ', $concept['text'], PHP_EOL;
		echo 'relevance: ', $concept['relevance'], PHP_EOL;
	}
?>

这将打印出

concept: Fruit
relevance: 0.865419

情感分析

情感分析API计算您文本、HTML或URL内容的文档级情感。情感确定内容是正面还是负面,可以针对整个文档、用户指定的目标或关键词、实体或关系级别进行计算。此API调用仅用于文档情感。要获取关键词、实体或关系的情感,请将OPTION参数{'sentiment':1}设置在相应的调用中。针对目标的情感由另一个单独的调用处理。有关AlchemyAPI情感分析API的更多高级信息,请访问:http://www.alchemyapi.com/products/features/sentiment-analysis。有关更多技术信息,请参阅文档:http://www.alchemyapi.com/api/sentiment-analysis

要计算文档级情感,请使用

<?php
	$response = $alchemyapi->sentiment(FLAVOR, DATA, OPTIONS);
?>

当FLAVOR可以是'text'、'html'或'url'时,DATA是您的文本、HTML或URL内容,OPTIONS是一个数组,包含用于修改调用行为的可选参数。

选项

以下选项可用于此调用。要使用,请将所需的选项包含到一个数组中,并在调用中将它作为OPTIONS参数传递。

  • showSourceText -> 0:禁用(默认),1:启用

解析

要解析结果,只需按照文档中详细说明的响应结构逐层进行即可。例如,以下是如何打印文档情感的类型和分数。

<?php
	$response = $alchemyapi->sentiment('text','I really like chocolate cake.', null);
	echo 'sentiment: ', $response['docSentiment']['type'], PHP_EOL;
	echo 'score: ', $response['docSentiment']['score'], PHP_EOL;
?>

这将打印出

sentiment: positive
score: 0.631595

注意:情感类型可以是正面、负面或中性。分数仅针对正面和负面情感返回,中性情感的响应结构中不包括分数。

目标情感

目标情感分析API计算您的文本、HTML或URL内容相对于指定目标的文档级情感。目标通常是品牌名称、产品名称、特定功能等。有关情感分析更多信息,请参阅上述情感分析部分。

要计算整个文档的目标情感,请使用

<?php
	$response = $alchemyapi->sentiment_targeted(FLAVOR, DATA, TARGET, OPTIONS);
?>

其中FLAVOR可以是'text'、'html'或'url',DATA是您的文本、HTML或URL内容,TARGET是用户指定的目标,OPTIONS是包含修改调用行为的可选参数的数组。

选项

以下选项可用于此调用。要使用,请将所需的选项包含到一个数组中,并在调用中将它作为OPTIONS参数传递。

  • showSourceText -> 0: 禁用,1: 启用

解析

要解析结果,只需按照文档中详细说明的响应结构逐层进行即可。例如,以下是如何打印目标情感的类型和分数。

<?php
	$response = $alchemyapi->sentiment_targeted('text','My new phones screen is awesome, but the battery life is really bad.','battery life', null);
	echo 'sentiment: ', $response['docSentiment']['type'], PHP_EOL;
	echo 'relevance: ', $response['docSentiment']['score'], PHP_EOL;
?>

这将打印出

sentiment: negative
relevance: -0.128125

注意:情感类型可以是正面、负面或中性。分数仅针对正面和负面情感返回,中性情感的响应结构中不包括分数。

文本

文本提取API从您的HTML或URL内容中提取重要内容,并留下不重要的内容,如导航和广告。有关AlchemyAPI文本提取API的更多高级信息,请访问:http://www.alchemyapi.com/products/features/text-extraction。有关更多技术信息,请参阅文档:http://www.alchemyapi.com/api/text-extraction

要提取文本,请使用

<?php
	$response = $alchemyapi->text(FLAVOR, DATA, OPTIONS);
?>

其中FLAVOR可以是'html'或'url',DATA是您的HTML或URL内容,OPTIONS是包含修改调用行为的可选参数的数组。

选项

以下选项可用于此调用。要使用,请将所需的选项包含到一个数组中,并在调用中将它作为OPTIONS参数传递。

  • useMetadata -> 利用元描述数据,0: 禁用,1: 启用(默认)
  • extractLinks -> 包含链接,0: 禁用(默认),1: 启用。

解析

要解析结果,只需按照文档中详细说明的响应结构逐层进行即可。例如,以下是如何打印提取的文本。

<?php
	$response = $alchemyapi->text('url','http://www.alchemyapi.com/products/features/text-extraction/',null);
	echo 'text: ', $response['text'], PHP_EOL;
?>

这将打印出

text:  ... the text from the text extraction webpage ...

上述提取的是“清洁”文本。如果您想获取原始文本,请使用

<?php
	$response = $alchemyapi->text_raw(FLAVOR, DATA, OPTIONS);
?>

参数和解析与清洁文本调用相同。

作者

作者提取API识别您的HTML或URL内容的作者。有关AlchemyAPI作者提取API的更多高级信息,请访问:http://www.alchemyapi.com/products/features/author-extraction。有关更多技术信息,请参阅文档:http://www.alchemyapi.com/api/author-extraction

要提取作者,请使用

<?php
	$response = $alchemyapi->author(FLAVOR, DATA, OPTIONS);
?>

其中FLAVOR可以是'html'或'url',DATA是您的HTML或URL内容,OPTIONS是包含修改调用行为的可选参数的数组。

选项

此调用没有可用选项。

解析

要解析结果,只需按照文档中详细说明的响应结构进行遍历。例如,下面是如何打印作者的示例

<?php
	$response = $alchemyapi->author('url','http://www.grantland.com/story/_/id/9566213/bill-barnwell-puts-2013-detroit-vikings-numbers-test',null);

	echo 'author: ', $response['author'], PHP_EOL;
?>

这将打印出

author: Bill Barnwell

语言

语言检测API可以识别您的文本、HTML或URL内容的语言。它目前支持检测97种以上的语言。有关AlchemyAPI语言检测API的高级信息,请访问:http://www.alchemyapi.com/products/features/language-detection。有关更详细的技术信息,请参阅文档:http://www.alchemyapi.com/api/language-detection

要检测语言,请使用

<?php
	$response = $alchemyapi->language(FLAVOR, DATA, OPTIONS);
?>

其中FLAVOR可以是'text'、'html'或'url',DATA是您的文本、HTML或URL内容,OPTIONS是一个包含可选参数的数组,用于修改调用行为。

选项

此调用没有可用选项。

解析

要解析结果,只需按照文档中详细说明的响应结构进行遍历。例如,下面是如何打印语言和ISO-639-1代码的示例

<?php
	$response = $alchemyapi->language('text','donde estas el bano?', null);
	echo 'language: ', $response['language'], PHP_EOL;
	echo 'iso-639-1: ', $response['iso-639-1'], PHP_EOL;
?>

这将打印出

language: spanish
iso-639-1: es

标题

标题提取API可以识别您的HTML或URL内容的标题。有关AlchemyAPI标题提取API的高级信息,请访问:http://www.alchemyapi.com/products/features/text-extraction。有关更详细的技术信息,请参阅文档:http://www.alchemyapi.com/api/text-extraction

要提取标题,请使用

<?php
	$response = $alchemyapi->title(FLAVOR, DATA, OPTIONS);
?>

其中FLAVOR可以是'html'或'url',DATA是您的HTML或URL内容,OPTIONS是包含修改调用行为的可选参数的数组。

选项

以下选项可用于此调用。要使用,请将所需的选项包含到一个数组中,并在调用中将它作为OPTIONS参数传递。

  • useMetadata -> 利用元数据中嵌入的标题信息,0: 禁用,1: 启用(默认)

解析

要解析结果,只需按照文档中详细说明的响应结构进行遍历。例如,下面是如何打印标题的示例

<?php
	$response = $alchemyapi->title('url','http://www.bloomberg.com/news/2013-08-13/florida-to-sue-georgia-in-u-s-supreme-court-over-water.html', null);
	echo 'title: ', $response['title'], PHP_EOL;
?>

这将打印出

title: Florida to Sue Georgia in U.S. Supreme Court Over Water - Bloomberg

关系

关系提取API可以识别您的文本、HTML或URL内容中的主语、动作和宾语关系。除了情感分析,此调用还有很多选项,所以请务必查看文档。有关AlchemyAPI关系提取API的高级信息,请访问:http://www.alchemyapi.com/products/features/relation-extraction。有关更详细的技术信息,请参阅文档:http://www.alchemyapi.com/api/relation-extraction

要提取关系,请使用

<?php
	$response = $alchemyapi->relations(FLAVOR, DATA, OPTIONS);
?>

当FLAVOR可以是'text'、'html'或'url'时,DATA是您的文本、HTML或URL内容,OPTIONS是一个数组,包含用于修改调用行为的可选参数。

选项

以下选项可用于此调用。要使用,请将所需的选项包含到一个数组中,并在调用中将它作为OPTIONS参数传递。

  • sentiment -> 0: 禁用(默认),1: 启用。启用时需要额外的一次API事务。
  • keywords -> 从主语和宾语中提取关键词。0: 禁用(默认),1: 启用。启用时需要额外的一次API事务。
  • entities -> 从主语和宾语中提取实体。0: 禁用(默认),1: 启用。启用时需要额外的一次API事务。
  • requireEntities -> 仅提取包含实体的关系。0: 禁用(默认),1: 启用。
  • sentimentExcludeEntities -> 在情感分析中排除完整实体名称。0: 禁用,1: 启用(默认)
  • disambiguate -> 区分实体(例如,公司Apple与水果apple)。0:禁用,1:启用(默认)
  • linkedData -> 包含与去歧义实体关联的链接数据。0: 禁用,1: 启用(默认)。
  • coreference -> 解决实体指代。0: 禁用,1: 启用(默认)
  • showSourceText -> 0:禁用(默认),1:启用。
  • maxRetrieve -> 提取的最大关系数(默认:50,最大:100)

解析

要解析结果,只需按照文档中详细说明的响应结构进行遍历。例如,下面是如何打印每个提取关系的主题、动作和宾语的示例

<?php
	$response = $alchemyapi->relations('text','Bob broke my heart.',null);
	foreach ($response['relations'] as $relation) {
		if (array_key_exists('subject', $relation)) {
				echo 'Subject: ', $relation['subject']['text'], PHP_EOL;
		}

		if (array_key_exists('action', $relation)) {
				echo 'Action: ', $relation['action']['text'], PHP_EOL;
		}

		if (array_key_exists('object', $relation)) {
				echo 'Object: ', $relation['object']['text'], PHP_EOL;
		}
		echo PHP_EOL;
	}
?>

这将打印出

Subject: Bob
Action: broke
Object: my heart

类别

文本分类API可以识别您文本内容的顶级类别,包括HTML或URL内容。类别包括艺术与娱乐、商业和体育等值。有关AlchemyAPI文本分类API的更多高级信息,请访问:http://www.alchemyapi.com/products/features/text-categorization。有关更多技术信息,请参阅文档:http://www.alchemyapi.com/api/text-categorization

要检测类别,使用

<?php
	$response = $alchemyapi->category(FLAVOR, DATA, OPTIONS);
?>

其中FLAVOR可以是'text'、'html'或'url',DATA是您的文本、HTML或URL内容,OPTIONS是一个包含可选参数的数组,用于修改调用行为。

选项

以下选项可用于此调用。要使用,请将所需的选项包含到一个数组中,并在调用中将它作为OPTIONS参数传递。

  • showSourceText -> 0:禁用(默认),1:启用

解析

要解析结果,只需按照文档中详细说明的响应结构进行遍历。例如,这是如何打印类别的示例

<?php
	$response = $alchemyapi->category('url','http://www.washingtonpost.com/blogs/capital-weather-gang/wp/2013/08/14/d-c-area-forecast-ultra-nice-weather-dominates-next-few-days/', null);
	echo 'category: ', $response['category'], PHP_EOL;
?>

这将打印出

category: weather

Feeds

Feed检测API可以提取您HTML或URL内容中嵌入的RSS/ATOM源。有关AlchemyAPI Feed检测API的更多高级信息,请访问:http://www.alchemyapi.com/products/features/feed-detection。有关更多技术信息,请参阅文档:http://www.alchemyapi.com/api/feed-detection

要检测Feeds,使用

<?php
	$response = $alchemyapi->feeds(FLAVOR, DATA, OPTIONS);
?>

其中FLAVOR可以是'html'或'url',DATA是您的HTML或URL内容,OPTIONS是包含修改调用行为的可选参数的数组。

选项

此调用没有可用选项。

解析

要解析结果,只需按照文档中详细说明的响应结构进行遍历。例如,这是如何打印Feeds的示例

<?php
	$response = $alchemyapi->feeds('url','http://cnn.com', null);
	foreach ($response['feeds'] as $feed) {
		echo 'feed: ', $feed['feed'], PHP_EOL;
	}
?>

这将打印出

feed: http://rss.cnn.com/rss/cnn_topstories.rss
feed: http://rss.cnn.com/rss/cnn_latest.rss

Microformats

Microformat解析API可以提取您HTML或URL内容中嵌入的microformats。有关AlchemyAPI microformats解析API的更多高级信息,请访问:http://www.alchemyapi.com/products/features/microformats-parsing。有关更多技术信息,请参阅文档:http://www.alchemyapi.com/api/microformats-parsing

要检测microformats,使用

<?php
	$response = $alchemyapi->microformats(FLAVOR, DATA, OPTIONS);
?>

其中FLAVOR可以是'html'或'url',DATA是您的HTML或URL内容,OPTIONS是包含修改调用行为的可选参数的数组。

选项

此调用没有可用的选项。

解析

要解析结果,只需按照文档中详细说明的响应结构进行遍历。例如,这是如何打印microformats的示例

<?php
	$response = $alchemyapi->microformats('url','http://semanticweb.com/semanticweb-com-%E2%80%9Cinnovation-spotlight%E2%80%9D-interview-with-elliot-turner-ceo-of-alchemyapi_b30913', null);
	foreach ($response['microformats'] as $microformat) {
		echo 'field: ', $microformat['field'], PHP_EOL;
		echo 'data: ', $microformat['data'], PHP_EOL;
	}
?>

这将打印出

field: RelTagLink
data: http://semanticweb.com/tag/alchemyapi
field: RelTag
data: alchemyapi