设为n边形 漏掉的内角为x 0<x<180
内角和=180(n-2)
180(n-2)-x=1680
180n=2040+x
因为 0<x<180
2040<180n<2220
n=12
180×12=2040+x
x=120
答这个内角是120 求的是12边形的内角和
如何计算基于特征的相似度
如何计算句子的语义相似度,很容易想到的是向量空间模型(VSM)和编辑距离的方法,比如A:“我爸是李刚”,B:“我儿子是李刚”,利用VSM方法A(我,爸,是,李刚)B(我,儿子,是,李刚),计算两个向量的夹角余弦值,不赘述;编辑距离就更好说了将“爸”,“儿子”分别替换掉,D(A,B)= replace_cost;这是两种相当呆的方法,属于baseline中的baseline,换两个例子看一下就知道A:“楼房如何建造?”,B:“高尔夫球怎么打?”,C:“房子怎么盖?”,如果用VSM算很明显由于B,C中有共同的词“怎么”,所以BC相似度高于AC;编辑距离同理;解决这种问题方法也不难,只要通过同义词词典对所有句子进行扩展,“如何”、“怎么”,“楼房”、“房子”都是同义词或者近义词,扩展后再算vsm或者edit distance对这一问题即可正解.这种方法一定程度上解决了召回率低的问题,但是扩展后引入噪声在所难免,尤其若原句中含有多义词时.例如:“打酱油”、“打毛衣”.在汉字中有些单字词表达了相当多的意义,在董振东先生的知网(hownet)中对这种类型汉字有很好的语义关系解释,通过hownet中词语到义元的树状结构可以对对词语粒度的形似度进行度量.问题到这里似乎得到了不错的解答,但实际中远远不够.VSM的方法把句子中的词语看做相互独立的特征,忽略了句子序列关系、位置关系对句子语义的影响;Edit Distance考虑了句子中词语顺序关系,但是这种关系是机械的置换、移动、删除、添加,实际中每个词语表达了不同的信息量,同样的词语在不同词语组合中包含的信息量或者说表达的语义信息大不相同.What about 句法分析,计算句法树的相似度?这个比前两种方法更靠谱些,因为句法树很好的描述了词语在句子中的地位.实际效果要待实验证实.对了,还有一种方法translation model,IBM在机器翻译领域的一大创举,需要有大量的语料库进行训练才能得到理想的翻译结果.当然包括中间词语对齐结果,如果能够利用web资源建立一个高质量的语料库对两两相似句对通过EM迭代词语对齐,由词语对齐生成句子相似度,这个.想想还是不错的方法!
如何计算两个文档的相似度
最近正好组内做了一个文档相似度的分享。
决定回答一发。
首先,如果不局限于NN的方法,可以用BOW+tf-idf+LSI/LDA的体系搞定,也就是俗称的01或one hot representation。
其次,如果楼主指定了必须用流行的NN,俗称word-embedding的方法,当然首推word2vec(虽然不算是DNN)。
然后得到了word2vec的词向量后,可以通过简单加权/tag加权/tf-idf加权等方式得到文档向量。
这算是一种方法。
当然,加权之前一般应该先干掉stop word,词聚类处理一下。
还有,doc2vec中的paragraph vector也属于直接得到doc向量的方法。
特点就是修改了word2vec中的cbow和skip-gram模型。
依据论文《Distributed Representations of Sentences and Documents》(ICML 2014)。
还有一种根据句法树加权的方式,是ICML2011提出的,见论文《Parsing Natural Scenes and Natural Language with Recursive Neural Networks》,后续也有多个改编的版本。
当然,得到词向量的方式不局限于word2vec,RNNLM和glove也能得到传说中高质量的词向量。
ICML2015的论文《From Word Embeddings To Document Distances, Kusner, Washington University》新提出一种计算doc相似度的方式,大致思路是将词之间的余弦距离作为ground distance,词频作为权重,在权重的约束条件下,求WMD的线性规划最优解。
最后,kaggle101中的一个word2vec题目的tutorial里作者如是说:他试了一下简单加权和各种加权,不管如何处理,效果还不如01,归其原因作者认为加权的方式丢失了最重要的句子结构信息(也可以说是词序信息),而doc2vec的方法则保存了这种信息。
在刚刚结束的ACL2015上,似乎很多人提到了glove的方法,其思想是挖掘词共现信息的内在含义,据说是基于全局统计的方法(LSI为代表)与基于局部预测的方法(word2vec为代表)的折衷,而且输出的词向量在词聚类任务上干掉了word2vec的结果,也可以看看。
《GloVe: Global Vectors forWord Representation》
怎么用sql语句来判断两条短信的相似度,也就是两个字符串的相似度,...
如表格A中字段a1有一条字符串记录Rec1内容为 “我的家在哪里?”;然后要从B表中找出一条字符串记录Rec2内容与Rec1最相似的,如:“我的家在浙江?” select A.a1, max(DIFFERENCE(A.a1,B.相应字段)) from A cross join B group by A.a1
机器学习句子相似度计算,最后怎么根据相似度高低排序返回原来的句...
先说一个还是从词的角度出发考虑的,最后的效果非常好,就是怎么样从词的向量得到句子的向量,首先选出一个词库,比如说10万个词,然后用w2v跑出所有词的向量,然后对于每一个句子,构造一个10万维的向量,向量的每一维是该维对应的词和该句子中每一个词的相似度的最大值。
这种方法实际上是bag of words的一个扩展,比如说对于 我喜欢用苹果手机 这么一句话,对应的向量,会在三星,诺基亚,小米,电脑等词上也会有比较高的得分。
这种做法对于bag of words的稀疏性问题效果非常好。
还做过一个直接训练句子的相似度的一个query2vec模型,效果也不错,就不细说了。
两个函数相似度怎么计算?比如sin(x)和cos(x),除了做差之外,取绝对...
linux环境下,没有首先安装python_Levenshtein,用法如下:重点介绍几个该包中的几个计算字串相似度的几个函数实现。
1. Levenshtein.hamming(str1, str2)计算汉明距离。
要求str1和str2必须长度一致。
是描述两个等长字串之间对应位置上不同字符的个数。
如2. Levenshtein.distance(str1, str2)计算编辑距离(也成Levenshtein距离)。
是描述由一个字串转化成另一个字串最少的操作次数,在其中的操作包括插入、删除、替换。
如算法实现 参考动态规划整理:http://www.cnblogs.com/kaituorensheng/archive/2013/05/15/3080990.html。
3. Levenshtein.ratio(str1, str2)计算莱文斯坦比。
计算公式 r = (sum - ldist) / sum, 其中sum是指str1 和 str2 字串的长度总和,ldist是类编辑距离注意:这里的类编辑距离不是2中所说的编辑距离,2中三种操作中每个操作+1,而在此处,删除、插入依然+1,但是替换+2这样设计的目的:ratio('a', 'c'),sum=2,按2中计算为(2-1)/2 = 0.5,'a','c'没有重合,显然不合算,但是替换操作+2,就可以解决这个问题。
4. Levenshtein.jaro(s1, s2)计算jaro距离,其中的m为s1, s2的匹配长度,当某位置的认为匹配 当该位置字符相同,或者在不超过t是调换次数的一半5. Levenshtein.jaro_winkler(s1, s2)计算Jaro–Winkler距离
转载请注明出处句子大全网 » 涓悓瀛﹀湪璁$畻涓