是不是复读机
题号:NC24553
时间限制:C/C++/Rust/Pascal 1秒,其他语言2秒
空间限制:C/C++/Rust/Pascal 256 M,其他语言512 M
64bit IO Format: %lld

题目描述

在复读纪元2140年,复读机(们)已经放弃了如下所示的低级复读方式:

“哟,小伙汁,想不到你也是个复读机”

“哟,小伙汁,想不到你也是个复读机”

而是进化出了一种新的复读技巧:语义复读,即能复读出字面上高度相似的句子(单词顺序不一定一样)。譬如,在发生以下对话时,我们可以认为,参与对话的两人中存在复读机:

I am not a repeater

I am not a repeater too

   现在我就来教你如何辨认复读机.
1.  提取出所有的单词,并统计每一句中的词频。
2.  通过余弦相似度算法进行相似度分析。

我们知道,在二维向量中,假设a向量是(x1, y1),b向量是(x2, y2),那么可以将余弦定理改写成下面的形式:

将我们之前提取出的词频看成2n维向量,可得到(1,1,1,1,1,0)和(1,1,1,1,1,1)两个向量,进行余弦计算,可得到

我们认为其相似度为0.912,当相似度不小于90%时,我们就认为对话的两人中,存在复读机。

输入描述:

输入包括两行由数字(0-9)、英文字符(a-z、A-Z)和空格组成的字符串。其中单词之间通过空格分隔且不区分大小写,即我们认为“At”、“at”、“AT”、“aT”为同一个单词。每个字符串总长度不超过2000.

输出描述:

在一行中输出结果,如果存在复读机,则输出“Yes”,否则输出“No”,不包含双引号。
示例1

输入

复制
I am not a reapter
I am not a reapter too

输出

复制
Yes
示例2

输入

复制
Excuse me Can you tell me how much the shirt is
Yes it is nine fifteen

输出

复制
No