【发布时间】:2016-07-01 01:04:38
【问题描述】:
哪种 Microsoft 认知服务(或 Azure 机器学习服务?)最适合用于解决在给定文章中查找类似文章的问题。文章是一串文本。假设我没有关于文章的用户交互数据。
Microsoft 认知服务中是否有任何东西可以开箱即用地解决这个问题?似乎我无法使用 Recommendations API,因为我没有交互/用户数据。
安东尼
【问题讨论】:
哪种 Microsoft 认知服务(或 Azure 机器学习服务?)最适合用于解决在给定文章中查找类似文章的问题。文章是一串文本。假设我没有关于文章的用户交互数据。
Microsoft 认知服务中是否有任何东西可以开箱即用地解决这个问题?似乎我无法使用 Recommendations API,因为我没有交互/用户数据。
安东尼
【问题讨论】:
我不确定文本分析 API 是否适合这种情况,至少现在还没有。
实际上有两种相似之处:
1.表面相似度(词法)- 单词/字母的相似度
如果我们正在寻找表面相似性,请尝试模糊匹配/查找(SQL Server Integration Services – 为此提供了一个组件。)或近似相似性函数(Jaro-Winkler distance,Levenshtein distance)等。这会更容易,因为它不需要您创建自定义机器学习模型。
2。语义相似度——词义相似度
如果我们正在寻找语义相似度,那么您需要进行语义聚类、词嵌入、DSSM(深度语义相似度模型)等。 这更难做到,因为它需要您根据带注释的语料库训练自己的机器学习模型。
路易斯·卡布雷拉 |文本分析项目经理 |云人工智能平台,微软
【讨论】:
是的,您可以使用文本分析 API。
此处提供示例。 https://www.microsoft.com/cognitive-services/en-us/text-analytics-api
【讨论】:
我建议您按照@Narasimha 的建议使用文本分析 API [1]。您可以通过 主题检测 API 输入字符串,然后提出一个指标(例如,Similarity = count(Matching topics) - count(Non Matching topics)),该指标可以针对每个字符串排序其他的相似之处。这只需要一个 API 调用和一点 JSON 解析。
[1]https://www.microsoft.com/cognitive-services/en-us/text-analytics-api
【讨论】:
句子相似度或语义文本相似度衡量两段文本的相似程度,或它们表达相同含义的程度。
此 Microsoft 的 NLP GitHub 存储库提供了一些可用于 Azure VM 和 Azure ML 的示例:https://github.com/microsoft/nlp/tree/master/examples/sentence_similarity
此文件夹包含用 Jupyter 笔记本编写的示例和最佳实践,用于构建句子相似性模型。 gensen 和预训练嵌入实用程序脚本用于加快笔记本中的模型构建过程。 句子相似度得分可用于各种应用,例如搜索/检索、最近邻或基于内核的分类方法、推荐和排名任务。
【讨论】: