我是azure机器学习的新手。我们正在尝试使用azure machine 学习来实现问题相似度算法。我们有大量的问题和答案。我们的目标是确定新增问题是否重复?就像Stackoverflow在我们提出新问题时提出现有问题一样?我们可以使用azure机器学习服务来解决这个问题吗?有人可以指导我们正确的方向吗?
答案 0 :(得分:3)
是的,您可以使用Azure Machine Learning工作室,并可以使用Jennifer建议的方法。
但是,我认为对包含实验中所有当前问题的数据库运行R脚本要好得多,并为每次比较返回相似性度量标准。
请查看以下文章中的一些示例(从简单/基本到更高级)如何执行此操作: https://www.researchgate.net/publication/4314910_Question_Similarity_Calculation_for_FAQ_Answering
一种简单的启动方式就是实现一个简单的“词袋”比较。这将产生一个距离矩阵,您可以将其用于聚类或用于回馈类似的问题。下面的R代码就是这样的东西,实质上你构建一个大字符串,第一句话是新问题,然后用所有已知问题跟着它。显然,这种方法不会真正考虑到问题的含义,只会触发相同的词语使用。
library(tm)
library(Matrix)
x <- TermDocumentMatrix( Corpus( VectorSource( strings.with.all.questions ) ) )
y <- sparseMatrix( i=x$i, j=x$j, x=x$v, dimnames = dimnames(x) )
plot( hclust(dist(t(y))) )
答案 1 :(得分:2)
是的,您可以使用Azure机器学习完成此操作。听起来你有一个集群问题(你试图将类似的问题组合在一起)。
有一个&#34;聚类:找到类似的公司&#34;在https://gallery.cortanaanalytics.com/Experiment/60cf8e46935c4fafbf86f669121a24f0执行类似操作的示例。您可以阅读该页面上的说明,然后点击&#34;在Studio中打开&#34;右侧边栏中的按钮实际打开Azure Machine Learning Studio中的工作区。在该样本中,他们根据公司的维基百科文章(例如:微软和苹果公司是类似的公司)找到了类似的公司,因为“#34;计算机和#34”这两个词在两篇文章中都有很多内容。 。您的问题非常相似,除非您使用问题中的文本来查找类似的问题并相应地将它们分组。
在k-means聚类中,&#34; k&#34;是您要形成的群集数量,因此对于您的特定问题,此数字可能非常大。如果你有500个问题,也许从250个质心开始?但乱七八糟的这个数字,看看有什么作用。出于性能原因,您可能希望从一个小数据集开始进行测试,然后在它看起来很好地分组后通过模型运行所有数据。
此外,K-means聚类的文档是here。