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